aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/sys
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/sys')
-rw-r--r--lib/libc/sys/Makefile.inc536
-rw-r--r--lib/libc/sys/POSIX2x_Fork.c4
-rw-r--r--lib/libc/sys/Symbol.map978
-rw-r--r--lib/libc/sys/__vdso_gettimeofday.c199
-rw-r--r--lib/libc/sys/_exit.2125
-rw-r--r--lib/libc/sys/_umtx_op.21531
-rw-r--r--lib/libc/sys/abort2.2113
-rw-r--r--lib/libc/sys/accept.2239
-rw-r--r--lib/libc/sys/accept.c8
-rw-r--r--lib/libc/sys/accept4.c8
-rw-r--r--lib/libc/sys/access.2272
-rw-r--r--lib/libc/sys/acct.2133
-rw-r--r--lib/libc/sys/adjtime.2109
-rw-r--r--lib/libc/sys/aio_cancel.2117
-rw-r--r--lib/libc/sys/aio_error.2105
-rw-r--r--lib/libc/sys/aio_fsync.2188
-rw-r--r--lib/libc/sys/aio_mlock.2138
-rw-r--r--lib/libc/sys/aio_read.2263
-rw-r--r--lib/libc/sys/aio_return.2110
-rw-r--r--lib/libc/sys/aio_suspend.2117
-rw-r--r--lib/libc/sys/aio_suspend.c9
-rw-r--r--lib/libc/sys/aio_waitcomplete.2137
-rw-r--r--lib/libc/sys/aio_write.2258
-rw-r--r--lib/libc/sys/bind.2141
-rw-r--r--lib/libc/sys/bindat.2108
-rw-r--r--lib/libc/sys/brk.2190
-rw-r--r--lib/libc/sys/brk.c5
-rw-r--r--lib/libc/sys/cap_enter.2164
-rw-r--r--lib/libc/sys/cap_fcntls_limit.2132
-rw-r--r--lib/libc/sys/cap_ioctls_limit.2165
-rw-r--r--lib/libc/sys/cap_rights_limit.2161
-rw-r--r--lib/libc/sys/chdir.2134
-rw-r--r--lib/libc/sys/chflags.2359
-rw-r--r--lib/libc/sys/chmod.2360
-rw-r--r--lib/libc/sys/chown.2301
-rw-r--r--lib/libc/sys/chroot.2165
-rw-r--r--lib/libc/sys/clock_gettime.2196
-rw-r--r--lib/libc/sys/clock_nanosleep.c9
-rw-r--r--lib/libc/sys/close.2144
-rw-r--r--lib/libc/sys/close.c7
-rw-r--r--lib/libc/sys/closefrom.294
-rw-r--r--lib/libc/sys/closefrom.c5
-rw-r--r--lib/libc/sys/compat-ino64.h101
-rw-r--r--lib/libc/sys/compat-stub.c3
-rw-r--r--lib/libc/sys/connect.2185
-rw-r--r--lib/libc/sys/connect.c8
-rw-r--r--lib/libc/sys/connectat.2109
-rw-r--r--lib/libc/sys/copy_file_range.2212
-rw-r--r--lib/libc/sys/cpuset.2302
-rw-r--r--lib/libc/sys/cpuset_getaffinity.2179
-rw-r--r--lib/libc/sys/cpuset_getdomain.2191
-rw-r--r--lib/libc/sys/creat.c (renamed from lib/libc/sys/fstat.c)44
-rw-r--r--lib/libc/sys/dup.2171
-rw-r--r--lib/libc/sys/eventfd.2208
-rw-r--r--lib/libc/sys/execve.2382
-rw-r--r--lib/libc/sys/extattr_get_file.2292
-rw-r--r--lib/libc/sys/fcntl.2793
-rw-r--r--lib/libc/sys/fcntl.c9
-rw-r--r--lib/libc/sys/fdatasync.c7
-rw-r--r--lib/libc/sys/ffclock.2177
-rw-r--r--lib/libc/sys/fhlink.2250
-rw-r--r--lib/libc/sys/fhopen.2147
-rw-r--r--lib/libc/sys/fhreadlink.294
-rw-r--r--lib/libc/sys/flock.2173
-rw-r--r--lib/libc/sys/fork.2271
-rw-r--r--lib/libc/sys/fork.c7
-rw-r--r--lib/libc/sys/fspacectl.2205
-rw-r--r--lib/libc/sys/fsync.2134
-rw-r--r--lib/libc/sys/fsync.c7
-rw-r--r--lib/libc/sys/getdents.c10
-rw-r--r--lib/libc/sys/getdirentries.2210
-rw-r--r--lib/libc/sys/getdirentries.c116
-rw-r--r--lib/libc/sys/getdtablesize.262
-rw-r--r--lib/libc/sys/getfh.2226
-rw-r--r--lib/libc/sys/getfsstat.2132
-rw-r--r--lib/libc/sys/getfsstat.c64
-rw-r--r--lib/libc/sys/getgid.285
-rw-r--r--lib/libc/sys/getgroups.2107
-rw-r--r--lib/libc/sys/getitimer.2195
-rw-r--r--lib/libc/sys/getlogin.2204
-rw-r--r--lib/libc/sys/getloginclass.299
-rw-r--r--lib/libc/sys/getpeername.298
-rw-r--r--lib/libc/sys/getpgrp.2142
-rw-r--r--lib/libc/sys/getpid.290
-rw-r--r--lib/libc/sys/getpriority.2150
-rw-r--r--lib/libc/sys/getrandom.2133
-rw-r--r--lib/libc/sys/getrlimit.2238
-rw-r--r--lib/libc/sys/getrusage.2186
-rw-r--r--lib/libc/sys/getsid.282
-rw-r--r--lib/libc/sys/getsockname.298
-rw-r--r--lib/libc/sys/getsockopt.2625
-rw-r--r--lib/libc/sys/gettimeofday.2131
-rw-r--r--lib/libc/sys/getuid.291
-rw-r--r--lib/libc/sys/interposing_table.c94
-rw-r--r--lib/libc/sys/intro.2768
-rw-r--r--lib/libc/sys/ioctl.2155
-rw-r--r--lib/libc/sys/issetugid.298
-rw-r--r--lib/libc/sys/jail.2414
-rw-r--r--lib/libc/sys/kenv.2193
-rw-r--r--lib/libc/sys/kevent.c11
-rw-r--r--lib/libc/sys/kill.2159
-rw-r--r--lib/libc/sys/kldfind.286
-rw-r--r--lib/libc/sys/kldfirstmod.276
-rw-r--r--lib/libc/sys/kldload.296
-rw-r--r--lib/libc/sys/kldnext.289
-rw-r--r--lib/libc/sys/kldstat.2133
-rw-r--r--lib/libc/sys/kldsym.2121
-rw-r--r--lib/libc/sys/kldunload.294
-rw-r--r--lib/libc/sys/kqueue.2860
-rw-r--r--lib/libc/sys/ktrace.2206
-rw-r--r--lib/libc/sys/link.2319
-rw-r--r--lib/libc/sys/lio_listio.2237
-rw-r--r--lib/libc/sys/listen.2193
-rw-r--r--lib/libc/sys/lockf.c82
-rw-r--r--lib/libc/sys/lseek.2246
-rw-r--r--lib/libc/sys/lstat.c16
-rw-r--r--lib/libc/sys/madvise.2186
-rw-r--r--lib/libc/sys/mincore.2152
-rw-r--r--lib/libc/sys/minherit.2151
-rw-r--r--lib/libc/sys/mkdir.2182
-rw-r--r--lib/libc/sys/mkfifo.2183
-rw-r--r--lib/libc/sys/mknod.2184
-rw-r--r--lib/libc/sys/mknod.c3
-rw-r--r--lib/libc/sys/mlock.2179
-rw-r--r--lib/libc/sys/mlockall.2146
-rw-r--r--lib/libc/sys/mmap.2568
-rw-r--r--lib/libc/sys/modfind.286
-rw-r--r--lib/libc/sys/modnext.297
-rw-r--r--lib/libc/sys/modstat.2127
-rw-r--r--lib/libc/sys/mount.2403
-rw-r--r--lib/libc/sys/mprotect.2131
-rw-r--r--lib/libc/sys/mq_close.2105
-rw-r--r--lib/libc/sys/mq_getattr.2127
-rw-r--r--lib/libc/sys/mq_notify.2165
-rw-r--r--lib/libc/sys/mq_open.2334
-rw-r--r--lib/libc/sys/mq_receive.2217
-rw-r--r--lib/libc/sys/mq_send.2236
-rw-r--r--lib/libc/sys/mq_setattr.2123
-rw-r--r--lib/libc/sys/mq_unlink.2121
-rw-r--r--lib/libc/sys/msgctl.2208
-rw-r--r--lib/libc/sys/msgget.2154
-rw-r--r--lib/libc/sys/msgrcv.2222
-rw-r--r--lib/libc/sys/msgsnd.2184
-rw-r--r--lib/libc/sys/msync.2126
-rw-r--r--lib/libc/sys/msync.c8
-rw-r--r--lib/libc/sys/munmap.278
-rw-r--r--lib/libc/sys/nanosleep.2222
-rw-r--r--lib/libc/sys/nanosleep.c8
-rw-r--r--lib/libc/sys/nfssvc.2258
-rw-r--r--lib/libc/sys/ntp_adjtime.2315
-rw-r--r--lib/libc/sys/open.2680
-rw-r--r--lib/libc/sys/open.c7
-rw-r--r--lib/libc/sys/openat.c7
-rw-r--r--lib/libc/sys/pathconf.2269
-rw-r--r--lib/libc/sys/pdfork.2188
-rw-r--r--lib/libc/sys/pdfork.c7
-rw-r--r--lib/libc/sys/pipe.2178
-rw-r--r--lib/libc/sys/pipe.c3
-rw-r--r--lib/libc/sys/poll.2294
-rw-r--r--lib/libc/sys/poll.c8
-rw-r--r--lib/libc/sys/posix_fadvise.2143
-rw-r--r--lib/libc/sys/posix_fallocate.2152
-rw-r--r--lib/libc/sys/posix_openpt.2140
-rw-r--r--lib/libc/sys/ppoll.c9
-rw-r--r--lib/libc/sys/procctl.2853
-rw-r--r--lib/libc/sys/profil.2122
-rw-r--r--lib/libc/sys/pselect.2123
-rw-r--r--lib/libc/sys/pselect.c9
-rw-r--r--lib/libc/sys/ptrace.21354
-rw-r--r--lib/libc/sys/ptrace.c49
-rw-r--r--lib/libc/sys/quotactl.2263
-rw-r--r--lib/libc/sys/rctl_add_rule.2220
-rw-r--r--lib/libc/sys/read.2310
-rw-r--r--lib/libc/sys/read.c8
-rw-r--r--lib/libc/sys/readlink.2160
-rw-r--r--lib/libc/sys/readv.c8
-rw-r--r--lib/libc/sys/reboot.2164
-rw-r--r--lib/libc/sys/recv.2374
-rw-r--r--lib/libc/sys/recv.c (renamed from lib/libc/sys/fstatat.c)43
-rw-r--r--lib/libc/sys/recvfrom.c10
-rw-r--r--lib/libc/sys/recvmsg.c8
-rw-r--r--lib/libc/sys/rename.2342
-rw-r--r--lib/libc/sys/revoke.2110
-rw-r--r--lib/libc/sys/rfork.2205
-rw-r--r--lib/libc/sys/rmdir.2120
-rw-r--r--lib/libc/sys/rtprio.2206
-rw-r--r--lib/libc/sys/sched_get_priority_max.2123
-rw-r--r--lib/libc/sys/sched_setparam.2174
-rw-r--r--lib/libc/sys/sched_setscheduler.2166
-rw-r--r--lib/libc/sys/sched_yield.258
-rw-r--r--lib/libc/sys/sctp_generic_recvmsg.274
-rw-r--r--lib/libc/sys/sctp_generic_sendmsg.286
-rw-r--r--lib/libc/sys/sctp_peeloff.276
-rw-r--r--lib/libc/sys/select.2228
-rw-r--r--lib/libc/sys/select.c8
-rw-r--r--lib/libc/sys/semctl.2202
-rw-r--r--lib/libc/sys/semget.2156
-rw-r--r--lib/libc/sys/semop.2289
-rw-r--r--lib/libc/sys/send.2295
-rw-r--r--lib/libc/sys/send.c (renamed from lib/libc/sys/clock_gettime.c)44
-rw-r--r--lib/libc/sys/sendfile.2445
-rw-r--r--lib/libc/sys/sendmsg.c8
-rw-r--r--lib/libc/sys/sendto.c10
-rw-r--r--lib/libc/sys/setcontext.c8
-rw-r--r--lib/libc/sys/setfib.2107
-rw-r--r--lib/libc/sys/setgroups.2104
-rw-r--r--lib/libc/sys/setpgid.2110
-rw-r--r--lib/libc/sys/setregid.290
-rw-r--r--lib/libc/sys/setresuid.294
-rw-r--r--lib/libc/sys/setreuid.290
-rw-r--r--lib/libc/sys/setsid.281
-rw-r--r--lib/libc/sys/setuid.2189
-rw-r--r--lib/libc/sys/shm_open.2473
-rw-r--r--lib/libc/sys/shm_open.c98
-rw-r--r--lib/libc/sys/shmat.2156
-rw-r--r--lib/libc/sys/shmctl.2141
-rw-r--r--lib/libc/sys/shmget.2142
-rw-r--r--lib/libc/sys/shutdown.2171
-rw-r--r--lib/libc/sys/sigaction.2795
-rw-r--r--lib/libc/sys/sigaction.c8
-rw-r--r--lib/libc/sys/sigaltstack.2162
-rw-r--r--lib/libc/sys/sigfastblock.2166
-rw-r--r--lib/libc/sys/sigpending.277
-rw-r--r--lib/libc/sys/sigprocmask.2131
-rw-r--r--lib/libc/sys/sigprocmask.c8
-rw-r--r--lib/libc/sys/sigqueue.2163
-rw-r--r--lib/libc/sys/sigreturn.289
-rw-r--r--lib/libc/sys/sigstack.250
-rw-r--r--lib/libc/sys/sigsuspend.285
-rw-r--r--lib/libc/sys/sigsuspend.c8
-rw-r--r--lib/libc/sys/sigtimedwait.c9
-rw-r--r--lib/libc/sys/sigwait.2124
-rw-r--r--lib/libc/sys/sigwait.c24
-rw-r--r--lib/libc/sys/sigwaitinfo.2215
-rw-r--r--lib/libc/sys/sigwaitinfo.c8
-rw-r--r--lib/libc/sys/socket.2351
-rw-r--r--lib/libc/sys/socketpair.2107
-rw-r--r--lib/libc/sys/stat.2492
-rw-r--r--lib/libc/sys/stat.c16
-rw-r--r--lib/libc/sys/statfs.2240
-rw-r--r--lib/libc/sys/statfs.c49
-rw-r--r--lib/libc/sys/swapcontext.c7
-rw-r--r--lib/libc/sys/swapon.2162
-rw-r--r--lib/libc/sys/symlink.2206
-rw-r--r--lib/libc/sys/sync.277
-rw-r--r--lib/libc/sys/sysarch.281
-rw-r--r--lib/libc/sys/syscall.277
-rw-r--r--lib/libc/sys/thr_exit.295
-rw-r--r--lib/libc/sys/thr_kill.2140
-rw-r--r--lib/libc/sys/thr_new.2250
-rw-r--r--lib/libc/sys/thr_self.295
-rw-r--r--lib/libc/sys/thr_set_name.299
-rw-r--r--lib/libc/sys/thr_suspend.2134
-rw-r--r--lib/libc/sys/thr_wake.2117
-rw-r--r--lib/libc/sys/timer_create.2200
-rw-r--r--lib/libc/sys/timer_delete.280
-rw-r--r--lib/libc/sys/timer_settime.2265
-rw-r--r--lib/libc/sys/trivial-vdso_tc.c48
-rw-r--r--lib/libc/sys/truncate.2170
-rw-r--r--lib/libc/sys/umask.288
-rw-r--r--lib/libc/sys/undelete.2107
-rw-r--r--lib/libc/sys/unlink.2284
-rw-r--r--lib/libc/sys/utimensat.2310
-rw-r--r--lib/libc/sys/utimes.2264
-rw-r--r--lib/libc/sys/utrace.280
-rw-r--r--lib/libc/sys/uuidgen.2142
-rw-r--r--lib/libc/sys/vadvise.c3
-rw-r--r--lib/libc/sys/vfork.2145
-rw-r--r--lib/libc/sys/wait.2689
-rw-r--r--lib/libc/sys/wait.c (renamed from lib/libc/sys/__error.c)42
-rw-r--r--lib/libc/sys/wait3.c (renamed from lib/libc/sys/gettimeofday.c)41
-rw-r--r--lib/libc/sys/wait4.c8
-rw-r--r--lib/libc/sys/wait6.c9
-rw-r--r--lib/libc/sys/waitid.c (renamed from lib/libc/sys/fstatfs.c)56
-rw-r--r--lib/libc/sys/waitpid.c50
-rw-r--r--lib/libc/sys/write.2314
-rw-r--r--lib/libc/sys/write.c8
-rw-r--r--lib/libc/sys/writev.c8
278 files changed, 343 insertions, 47134 deletions
diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc
index 5e2c3da198b0..ee761ce5ff55 100644
--- a/lib/libc/sys/Makefile.inc
+++ b/lib/libc/sys/Makefile.inc
@@ -1,512 +1,38 @@
-# @(#)Makefile.inc 8.3 (Berkeley) 10/24/94
-# $FreeBSD$
+# libc-specific portion of the system call interface
-# sys sources
-.PATH: ${LIBC_SRCTOP}/${LIBC_ARCH}/sys ${LIBC_SRCTOP}/sys
+.PATH: ${LIBC_SRCTOP}/sys
-# Include the generated makefile containing the *complete* list
-# of syscall names in MIASM.
-.include "${SRCTOP}/sys/sys/syscall.mk"
+# Most of the implementation is shared with libsys:
+.include "${LIBSYS_SRCTOP}/Makefile.sys"
-# Include machine dependent definitions.
-#
-# MDASM names override the default syscall names in MIASM.
-# NOASM will prevent the default syscall code from being generated.
-# PSEUDO generates _<sys>() and __sys_<sys>() symbols, but not <sys>().
-#
-# While historically machine dependent, all architectures have the following
-# declarations in common:
-#
-NOASM= exit.o \
- getlogin.o \
- sstk.o \
- yield.o
-PSEUDO= _exit.o \
- _getlogin.o
-.sinclude "${LIBC_SRCTOP}/${LIBC_ARCH}/sys/Makefile.inc"
-
-SRCS+= clock_gettime.c gettimeofday.c __vdso_gettimeofday.c
-NOASM+= clock_gettime.o gettimeofday.o
-PSEUDO+= _clock_gettime.o _gettimeofday.o
-
-# Sources common to both syscall interfaces:
-SRCS+= \
- __error.c \
- interposing_table.c
-
-SRCS+= getdents.c lstat.c mknod.c stat.c
-
-NOASM+= sched_getcpu.o
-PSEUDO+= _sched_getcpu.o
-
-SRCS+= fstat.c fstatat.c fstatfs.c getfsstat.c statfs.c
-NOASM+= fstat.o fstatat.o fstatfs.o getfsstat.o statfs.o
-PSEUDO+= _fstat.o _fstatat.o _fstatfs.o _getfsstat.o _statfs.o
-
-SRCS+= getdirentries.c
-NOASM+= getdirentries.o
-PSEUDO+= _getdirentries.o
-
-SRCS+= brk.c
-SRCS+= closefrom.c
-SRCS+= pipe.c
-SRCS+= shm_open.c
-SRCS+= vadvise.c
-SRCS+= POSIX2x_Fork.c
-
-SRCS+= compat-stub.c
-
-INTERPOSED = \
- accept \
- accept4 \
- aio_suspend \
- clock_nanosleep \
- close \
- connect \
- fcntl \
- fdatasync \
- fsync \
- fork \
- kevent \
- msync \
- nanosleep \
- open \
- openat \
- pdfork \
- poll \
- ppoll \
- pselect \
- ptrace \
- read \
- readv \
- recvfrom \
- recvmsg \
- select \
- sendmsg \
- sendto \
- setcontext \
- sigaction \
- sigprocmask \
- sigsuspend \
- sigtimedwait \
- sigwait \
- sigwaitinfo \
- swapcontext \
- wait4 \
- wait6 \
- write \
- writev
-
-SRCS+= ${INTERPOSED:S/$/.c/}
-NOASM+= ${INTERPOSED:S/$/.o/}
-PSEUDO+= ${INTERPOSED:C/^.*$/_&.o/}
-
-# Add machine dependent asm sources:
-SRCS+=${MDASM}
-
-# Look though the complete list of syscalls (MIASM) for names that are
-# not defined with machine dependent implementations (MDASM) and are
-# not declared for no generation of default code (NOASM). Add each
-# syscall that satisfies these conditions to the ASM list.
-.for _asm in ${MIASM}
-.if (${MDASM:R:M${_asm:R}} == "")
-.if (${NOASM:R:M${_asm:R}} == "")
-ASM+=$(_asm)
-.endif
-.endif
-.endfor
-
-SASM= ${ASM:S/.o/.S/}
-
-SPSEUDO= ${PSEUDO:S/.o/.S/}
-
-SRCS+= ${SASM} ${SPSEUDO}
+# emit empty assembly stubs for syscalls in dynamic libc
+SHARED_CFLAGS+= -D'_SYSCALL_BODY(name)='
SYM_MAPS+= ${LIBC_SRCTOP}/sys/Symbol.map
-# Generated files
-CLEANFILES+= ${SASM} ${SPSEUDO}
-
-.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
- ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_ARCH:Marmv[67]*}
-NOTE_GNU_STACK='\t.section .note.GNU-stack,"",%%progbits\n'
-.else
-NOTE_GNU_STACK=''
-.endif
-
-${SASM}:
- printf '/* %sgenerated by libc/sys/Makefile.inc */\n' @ > ${.TARGET}
- printf '#include "compat.h"\n' >> ${.TARGET}
- printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' >> ${.TARGET}
- printf ${NOTE_GNU_STACK} >>${.TARGET}
-
-${SPSEUDO}:
- printf '/* %sgenerated by libc/sys/Makefile.inc */\n' @ > ${.TARGET}
- printf '#include "compat.h"\n' >> ${.TARGET}
- printf '#include "SYS.h"\nPSEUDO(${.PREFIX:S/_//})\n' \
- >> ${.TARGET}
- printf ${NOTE_GNU_STACK} >>${.TARGET}
-
-MAN+= abort2.2 \
- accept.2 \
- access.2 \
- acct.2 \
- adjtime.2 \
- aio_cancel.2 \
- aio_error.2 \
- aio_fsync.2 \
- aio_mlock.2 \
- aio_read.2 \
- aio_return.2 \
- aio_suspend.2 \
- aio_waitcomplete.2 \
- aio_write.2 \
- bind.2 \
- bindat.2 \
- brk.2 \
- cap_enter.2 \
- cap_fcntls_limit.2 \
- cap_ioctls_limit.2 \
- cap_rights_limit.2 \
- chdir.2 \
- chflags.2 \
- chmod.2 \
- chown.2 \
- chroot.2 \
- clock_gettime.2 \
- close.2 \
- closefrom.2 \
- connect.2 \
- connectat.2 \
- copy_file_range.2 \
- cpuset.2 \
- cpuset_getaffinity.2 \
- cpuset_getdomain.2 \
- dup.2 \
- eventfd.2 \
- execve.2 \
- _exit.2 \
- extattr_get_file.2 \
- fcntl.2 \
- ffclock.2 \
- fhlink.2 \
- fhopen.2 \
- fhreadlink.2 \
- flock.2 \
- fork.2 \
- fspacectl.2 \
- fsync.2 \
- getdirentries.2 \
- getdtablesize.2 \
- getfh.2 \
- getfsstat.2 \
- getgid.2 \
- getgroups.2 \
- getitimer.2 \
- getlogin.2 \
- getloginclass.2 \
- getpeername.2 \
- getpgrp.2 \
- getpid.2 \
- getpriority.2 \
- getrandom.2 \
- getrlimit.2 \
- getrusage.2 \
- getsid.2 \
- getsockname.2 \
- getsockopt.2 \
- gettimeofday.2 \
- getuid.2 \
- intro.2 \
- ioctl.2 \
- issetugid.2 \
- jail.2 \
- kenv.2 \
- kill.2 \
- kldfind.2 \
- kldfirstmod.2 \
- kldload.2 \
- kldnext.2 \
- kldstat.2 \
- kldsym.2 \
- kldunload.2 \
- kqueue.2 \
- ktrace.2 \
- link.2 \
- lio_listio.2 \
- listen.2 \
- lseek.2 \
- madvise.2 \
- mincore.2 \
- minherit.2 \
- mkdir.2 \
- mkfifo.2 \
- mknod.2 \
- mlock.2 \
- mlockall.2 \
- mmap.2 \
- modfind.2 \
- modnext.2 \
- modstat.2 \
- mount.2 \
- mprotect.2 \
- mq_close.2 \
- mq_getattr.2 \
- mq_notify.2 \
- mq_open.2 \
- mq_receive.2 \
- mq_send.2 \
- mq_setattr.2 \
- mq_unlink.2 \
- msgctl.2 \
- msgget.2 \
- msgrcv.2 \
- msgsnd.2 \
- msync.2 \
- munmap.2 \
- nanosleep.2 \
- nfssvc.2 \
- ntp_adjtime.2 \
- open.2 \
- pathconf.2 \
- pdfork.2 \
- pipe.2 \
- poll.2 \
- posix_fadvise.2 \
- posix_fallocate.2 \
- posix_openpt.2 \
- procctl.2 \
- profil.2 \
- pselect.2 \
- ptrace.2 \
- quotactl.2 \
- rctl_add_rule.2 \
- read.2 \
- readlink.2 \
- reboot.2 \
- recv.2 \
- rename.2 \
- revoke.2 \
- rfork.2 \
- rmdir.2 \
- rtprio.2 \
- sched_get_priority_max.2 \
- sched_setparam.2 \
- sched_setscheduler.2 \
- sched_yield.2 \
- sctp_generic_recvmsg.2 \
- sctp_generic_sendmsg.2 \
- sctp_peeloff.2 \
- select.2 \
- semctl.2 \
- semget.2 \
- semop.2 \
- send.2 \
- setfib.2 \
- sendfile.2 \
- setgroups.2 \
- setpgid.2 \
- setregid.2 \
- setresuid.2 \
- setreuid.2 \
- setsid.2 \
- setuid.2 \
- shmat.2 \
- shmctl.2 \
- shmget.2 \
- shm_open.2 \
- shutdown.2 \
- sigaction.2 \
- sigaltstack.2 \
- sigfastblock.2 \
- sigpending.2 \
- sigprocmask.2 \
- sigqueue.2 \
- sigreturn.2 \
- sigstack.2 \
- sigsuspend.2 \
- sigwait.2 \
- sigwaitinfo.2 \
- socket.2 \
- socketpair.2 \
- stat.2 \
- statfs.2 \
- swapon.2 \
- symlink.2 \
- sync.2 \
- sysarch.2 \
- syscall.2 \
- thr_exit.2 \
- thr_kill.2 \
- thr_new.2 \
- thr_self.2 \
- thr_set_name.2 \
- thr_suspend.2 \
- thr_wake.2 \
- timer_create.2 \
- timer_delete.2 \
- timer_settime.2 \
- truncate.2 \
- umask.2 \
- undelete.2 \
- unlink.2 \
- utimensat.2 \
- utimes.2 \
- utrace.2 \
- uuidgen.2 \
- vfork.2 \
- wait.2 \
- write.2 \
- _umtx_op.2
+# Add the interposer wrappers
+SRCS+= ${INTERPOSED:S/$/.c/}
-MLINKS+=aio_read.2 aio_readv.2
-MLINKS+=aio_write.2 aio_writev.2
-MLINKS+=accept.2 accept4.2
-MLINKS+=access.2 eaccess.2 \
- access.2 faccessat.2
-MLINKS+=brk.2 sbrk.2
-MLINKS+=cap_enter.2 cap_getmode.2
-MLINKS+=cap_fcntls_limit.2 cap_fcntls_get.2
-MLINKS+=cap_ioctls_limit.2 cap_ioctls_get.2
-MLINKS+=chdir.2 fchdir.2
-MLINKS+=chflags.2 chflagsat.2 \
- chflags.2 fchflags.2 \
- chflags.2 lchflags.2
-MLINKS+=chmod.2 fchmod.2 \
- chmod.2 fchmodat.2 \
- chmod.2 lchmod.2
-MLINKS+=chown.2 fchown.2 \
- chown.2 fchownat.2 \
- chown.2 lchown.2
-MLINKS+=clock_gettime.2 clock_getres.2 \
- clock_gettime.2 clock_settime.2
-MLINKS+=closefrom.2 close_range.2
-MLINKS+=nanosleep.2 clock_nanosleep.2
-MLINKS+=cpuset.2 cpuset_getid.2 \
- cpuset.2 cpuset_setid.2
-MLINKS+=cpuset_getaffinity.2 cpuset_setaffinity.2
-MLINKS+=cpuset_getdomain.2 cpuset_setdomain.2
-MLINKS+=dup.2 dup2.2
-MLINKS+=eventfd.2 eventfd_read.3 \
- eventfd.2 eventfd_write.3
-MLINKS+=execve.2 fexecve.2
-MLINKS+=extattr_get_file.2 extattr.2 \
- extattr_get_file.2 extattr_delete_fd.2 \
- extattr_get_file.2 extattr_delete_file.2 \
- extattr_get_file.2 extattr_delete_link.2 \
- extattr_get_file.2 extattr_get_fd.2 \
- extattr_get_file.2 extattr_get_link.2 \
- extattr_get_file.2 extattr_list_fd.2 \
- extattr_get_file.2 extattr_list_file.2 \
- extattr_get_file.2 extattr_list_link.2 \
- extattr_get_file.2 extattr_set_fd.2 \
- extattr_get_file.2 extattr_set_file.2 \
- extattr_get_file.2 extattr_set_link.2
-MLINKS+=ffclock.2 ffclock_getcounter.2 \
- ffclock.2 ffclock_getestimate.2 \
- ffclock.2 ffclock_setestimate.2
-MLINKS+=fhlink.2 fhlinkat.2
-MLINKS+=fhopen.2 fhstat.2 fhopen.2 fhstatfs.2
-MLINKS+=fsync.2 fdatasync.2
-MLINKS+=getdirentries.2 getdents.2
-MLINKS+=getfh.2 lgetfh.2 \
- getfh.2 getfhat.2
-MLINKS+=getgid.2 getegid.2
-MLINKS+=getitimer.2 setitimer.2
-MLINKS+=getlogin.2 getlogin_r.3
-MLINKS+=getlogin.2 setlogin.2
-MLINKS+=getloginclass.2 setloginclass.2
-MLINKS+=getpgrp.2 getpgid.2
-MLINKS+=getpid.2 getppid.2
-MLINKS+=getpriority.2 setpriority.2
-MLINKS+=getrlimit.2 setrlimit.2
-MLINKS+=getsockopt.2 setsockopt.2
-MLINKS+=gettimeofday.2 settimeofday.2
-MLINKS+=getuid.2 geteuid.2
-MLINKS+=intro.2 errno.2
-MLINKS+=jail.2 jail_attach.2 \
- jail.2 jail_get.2 \
- jail.2 jail_remove.2 \
- jail.2 jail_set.2
-MLINKS+=kldunload.2 kldunloadf.2
-MLINKS+=kqueue.2 kevent.2 \
- kqueue.2 EV_SET.3
-MLINKS+=link.2 linkat.2
-MLINKS+=madvise.2 posix_madvise.2
-MLINKS+=mkdir.2 mkdirat.2
-MLINKS+=mkfifo.2 mkfifoat.2
-MLINKS+=mknod.2 mknodat.2
-MLINKS+=mlock.2 munlock.2
-MLINKS+=mlockall.2 munlockall.2
-MLINKS+=modnext.2 modfnext.2
-MLINKS+=mount.2 nmount.2 \
- mount.2 unmount.2
-MLINKS+=mq_receive.2 mq_timedreceive.2
-MLINKS+=mq_send.2 mq_timedsend.2
-MLINKS+=ntp_adjtime.2 ntp_gettime.2
-MLINKS+=open.2 openat.2
-MLINKS+=pathconf.2 fpathconf.2
-MLINKS+=pathconf.2 lpathconf.2
-MLINKS+=pdfork.2 pdgetpid.2\
- pdfork.2 pdkill.2
-MLINKS+=pipe.2 pipe2.2
-MLINKS+=poll.2 ppoll.2
-MLINKS+=rctl_add_rule.2 rctl_get_limits.2 \
- rctl_add_rule.2 rctl_get_racct.2 \
- rctl_add_rule.2 rctl_get_rules.2 \
- rctl_add_rule.2 rctl_remove_rule.2
-MLINKS+=read.2 pread.2 \
- read.2 preadv.2 \
- read.2 readv.2
-MLINKS+=readlink.2 readlinkat.2
-MLINKS+=recv.2 recvfrom.2 \
- recv.2 recvmsg.2
-MLINKS+=rename.2 renameat.2
-MLINKS+=rtprio.2 rtprio_thread.2
-MLINKS+=sched_get_priority_max.2 sched_get_priority_min.2 \
- sched_get_priority_max.2 sched_rr_get_interval.2
-MLINKS+=sched_setparam.2 sched_getparam.2
-MLINKS+=sched_setscheduler.2 sched_getscheduler.2
-MLINKS+=select.2 FD_CLR.3 \
- select.2 FD_ISSET.3 \
- select.2 FD_SET.3 \
- select.2 FD_ZERO.3
-MLINKS+=send.2 sendmsg.2 \
- send.2 sendto.2
-MLINKS+=setpgid.2 setpgrp.2
-MLINKS+=setresuid.2 getresgid.2 \
- setresuid.2 getresuid.2 \
- setresuid.2 setresgid.2
-MLINKS+=setuid.2 setegid.2 \
- setuid.2 seteuid.2 \
- setuid.2 setgid.2
-MLINKS+=shmat.2 shmdt.2
-MLINKS+=shm_open.2 memfd_create.3 \
- shm_open.2 shm_unlink.2 \
- shm_open.2 shm_rename.2
-MLINKS+=sigwaitinfo.2 sigtimedwait.2
-MLINKS+=stat.2 fstat.2 \
- stat.2 fstatat.2 \
- stat.2 lstat.2
-MLINKS+=statfs.2 fstatfs.2
-MLINKS+=swapon.2 swapoff.2
-MLINKS+=symlink.2 symlinkat.2
-MLINKS+=syscall.2 __syscall.2
-MLINKS+=timer_settime.2 timer_getoverrun.2 \
- timer_settime.2 timer_gettime.2
-MLINKS+=thr_kill.2 thr_kill2.2
-MLINKS+=truncate.2 ftruncate.2
-MLINKS+=unlink.2 unlinkat.2
-MLINKS+=unlink.2 funlinkat.2
-MLINKS+=utimensat.2 futimens.2
-MLINKS+=utimes.2 futimes.2 \
- utimes.2 futimesat.2 \
- utimes.2 lutimes.2
-MLINKS+=wait.2 wait3.2 \
- wait.2 wait4.2 \
- wait.2 waitpid.2 \
- wait.2 waitid.2 \
- wait.2 wait6.2
-MLINKS+=write.2 pwrite.2 \
- write.2 pwritev.2 \
- write.2 writev.2
+# Pseudo system calls implemented atop other interfaces.
+SRCS+= \
+ POSIX2x_Fork.c \
+ brk.c \
+ closefrom.c \
+ compat-stub.c \
+ creat.c \
+ getdents.c \
+ lockf.c \
+ lstat.c \
+ mknod.c \
+ pipe.c \
+ recv.c \
+ recvmmsg.c \
+ send.c \
+ sendmmsg.c \
+ shm_open.c \
+ stat.c \
+ vadvise.c \
+ wait.c \
+ wait3.c \
+ waitid.c \
+ waitpid.c
diff --git a/lib/libc/sys/POSIX2x_Fork.c b/lib/libc/sys/POSIX2x_Fork.c
index a7aaf82429bb..766bd4000036 100644
--- a/lib/libc/sys/POSIX2x_Fork.c
+++ b/lib/libc/sys/POSIX2x_Fork.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2021 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
diff --git a/lib/libc/sys/Symbol.map b/lib/libc/sys/Symbol.map
index 7984f54da697..32b1b0ecee05 100644
--- a/lib/libc/sys/Symbol.map
+++ b/lib/libc/sys/Symbol.map
@@ -1,377 +1,53 @@
-/*
- * $FreeBSD$
- */
-
-/*
- * It'd be nice to automatically generate the syscall symbols, but we
- * don't know to what version they will eventually belong to, so for now
- * it has to be manual.
- */
FBSD_1.0 {
- __acl_aclcheck_fd;
- __acl_aclcheck_file;
- __acl_aclcheck_link;
- __acl_delete_fd;
- __acl_delete_file;
- __acl_delete_link;
- __acl_get_fd;
- __acl_get_file;
- __acl_get_link;
- __acl_set_fd;
- __acl_set_file;
- __acl_set_link;
- __getcwd;
- __mac_execve;
- __mac_get_fd;
- __mac_get_file;
- __mac_get_link;
- __mac_get_pid;
- __mac_get_proc;
- __mac_set_fd;
- __mac_set_file;
- __mac_set_link;
- __mac_set_proc;
- __setugid;
- __syscall;
- __sysctl;
- _umtx_op;
- abort2;
accept;
- access;
- acct;
- adjtime;
- aio_cancel;
- aio_error;
- aio_fsync;
- aio_read;
- aio_return;
aio_suspend;
- aio_waitcomplete;
- aio_write;
- audit;
- auditctl;
- auditon;
- bind;
- chdir;
- chflags;
- chmod;
- chown;
- chroot;
- clock_getres;
- clock_gettime;
- clock_settime;
close;
connect;
- dup;
- dup2;
- eaccess;
- execve;
- extattr_delete_fd;
- extattr_delete_file;
- extattr_delete_link;
- extattr_get_fd;
- extattr_get_file;
- extattr_get_link;
- extattr_list_fd;
- extattr_list_file;
- extattr_list_link;
- extattr_set_fd;
- extattr_set_file;
- extattr_set_link;
- extattrctl;
- fchdir;
- fchflags;
- fchmod;
- fchown;
fcntl;
- fhopen;
- flock;
fork;
- fpathconf;
fsync;
- futimes;
- getaudit;
- getaudit_addr;
- getauid;
- getcontext;
- getdtablesize;
- getegid;
- geteuid;
- getfh;
- getgid;
- getgroups;
- getitimer;
- getpeername;
- getpgid;
- getpgrp;
- getpid;
- getppid;
- getpriority;
- getresgid;
- getresuid;
- getrlimit;
- getrusage;
- getsid;
- getsockname;
- getsockopt;
- gettimeofday;
- getuid;
- ioctl;
- issetugid;
- jail;
- jail_attach;
- kenv;
- kill;
- kldfind;
- kldfirstmod;
- kldload;
- kldnext;
- kldstat;
- kldsym;
- kldunload;
- kldunloadf;
- kqueue;
- kmq_notify; /* Do we want these to be public interfaces? */
- kmq_open; /* librt uses them to provide mq_xxx. */
- kmq_setattr;
- kmq_timedreceive;
- kmq_timedsend;
- kmq_unlink;
- ksem_close;
- ksem_destroy;
- ksem_getvalue;
- ksem_init;
- ksem_open;
- ksem_post;
- ksem_timedwait;
- ksem_trywait;
- ksem_unlink;
- ksem_wait;
- ktrace;
- lchflags;
- lchmod;
- lchown;
- lgetfh;
- link;
- lio_listio;
- listen;
- lutimes;
- mac_syscall;
- madvise;
- mincore;
- minherit;
- mkdir;
- mkfifo;
- mlock;
- mlockall;
- modfind;
- modfnext;
- modnext;
- modstat;
- mount;
- mprotect;
- msgget;
- msgrcv;
- msgsnd;
- msgsys;
msync;
- munlock;
- munlockall;
- munmap;
nanosleep;
- nfssvc;
- nmount;
- ntp_adjtime;
- ntp_gettime;
open;
- pathconf;
pipe;
poll;
- posix_openpt;
- preadv;
- profil;
pselect;
ptrace;
- pwritev;
- quotactl;
read;
- readlink;
readv;
- reboot;
recvfrom;
recvmsg;
- rename;
- revoke;
- rfork;
- rmdir;
- rtprio;
- rtprio_thread;
- sched_get_priority_max;
- sched_get_priority_min;
- sched_getparam;
- sched_getscheduler;
- sched_rr_get_interval;
- sched_setparam;
- sched_setscheduler;
- sched_yield;
select;
- semget;
- semop;
- semsys;
- sendfile;
sendmsg;
sendto;
- setaudit;
- setaudit_addr;
- setauid;
- setegid;
- seteuid;
- setgid;
- setgroups;
- setitimer;
- setlogin;
- setpgid;
- setpriority;
- setregid;
- setresgid;
- setresuid;
- setreuid;
- setrlimit;
- setsid;
- setsockopt;
- settimeofday;
- setuid;
shm_open;
- shm_unlink;
- shmat;
- shmdt;
- shmget;
- shmsys;
- shutdown;
sigaction;
- sigaltstack;
- sigpending;
sigprocmask;
- sigqueue;
- sigreturn;
sigsuspend;
sigtimedwait;
sigwait;
sigwaitinfo;
- socket;
- socketpair;
- swapon;
- symlink;
- sync;
- sysarch;
- syscall;
- thr_create;
- thr_exit;
- thr_kill;
- thr_kill2;
- thr_new;
- thr_self;
- thr_set_name;
- thr_suspend;
- thr_wake;
- ktimer_create; /* Do we want these to be public interfaces? */
- ktimer_delete; /* librt uses them to provide timer_xxx. */
- ktimer_getoverrun;
- ktimer_gettime;
- ktimer_settime;
- umask;
- undelete;
- unlink;
- unmount;
- utimes;
- utrace;
- uuidgen;
vadvise;
wait4;
write;
writev;
-
- __error;
- ftruncate;
- lseek;
- mmap;
- pread;
- pwrite;
- truncate;
};
FBSD_1.1 {
- __semctl;
closefrom;
- cpuset;
- cpuset_getid;
- cpuset_setid;
- cpuset_getaffinity;
- cpuset_setaffinity;
- faccessat;
- fchmodat;
- fchownat;
- fexecve;
- futimesat;
- jail_get;
- jail_set;
- jail_remove;
- linkat;
- lpathconf;
- mkdirat;
- mkfifoat;
- msgctl;
- readlinkat;
- renameat;
- setfib;
- shmctl;
- symlinkat;
- unlinkat;
};
FBSD_1.2 {
- cap_enter;
- cap_getmode;
- getloginclass;
pdfork;
- pdgetpid;
- pdkill;
- posix_fallocate;
- rctl_get_racct;
- rctl_get_rules;
- rctl_get_limits;
- rctl_add_rule;
- rctl_remove_rule;
- setloginclass;
};
FBSD_1.3 {
accept4;
- aio_mlock;
- bindat;
- cap_fcntls_get;
- cap_fcntls_limit;
- cap_ioctls_get;
- cap_ioctls_limit;
- __cap_rights_get;
- cap_rights_limit;
- cap_sandboxed;
- chflagsat;
- clock_getcpuclockid2;
- connectat;
- ffclock_getcounter;
- ffclock_getestimate;
- ffclock_setestimate;
- pipe2;
- posix_fadvise;
- procctl;
wait6;
};
FBSD_1.4 {
- futimens;
ppoll;
- utimensat;
numa_setaffinity;
numa_getaffinity;
sendmmsg;
@@ -381,671 +57,17 @@ FBSD_1.4 {
FBSD_1.5 {
clock_nanosleep;
fdatasync;
- fhstat;
- fhstatfs;
- fstat;
- fstatat;
- fstatfs;
getdents;
- getdirentries;
- getfsstat;
- getrandom;
kevent;
lstat;
mknod;
- mknodat;
stat;
- statfs;
- cpuset_getdomain;
- cpuset_setdomain;
};
FBSD_1.6 {
- __sysctlbyname;
- aio_readv;
- aio_writev;
- close_range;
- copy_file_range;
- fhlink;
- fhlinkat;
- fhreadlink;
- getfhat;
- funlinkat;
- memfd_create;
shm_create_largepage;
- shm_rename;
};
FBSD_1.7 {
_Fork;
- fspacectl;
- swapoff;
-};
-
-FBSDprivate_1.0 {
- ___acl_aclcheck_fd;
- __sys___acl_aclcheck_fd;
- ___acl_aclcheck_file;
- __sys___acl_aclcheck_file;
- ___acl_aclcheck_link;
- __sys___acl_aclcheck_link;
- ___acl_delete_fd;
- __sys___acl_delete_fd;
- ___acl_delete_file;
- __sys___acl_delete_file;
- ___acl_delete_link;
- __sys___acl_delete_link;
- ___acl_get_fd;
- __sys___acl_get_fd;
- ___acl_get_file;
- __sys___acl_get_file;
- ___acl_get_link;
- __sys___acl_get_link;
- ___acl_set_fd;
- __sys___acl_set_fd;
- ___acl_set_file;
- __sys___acl_set_file;
- ___acl_set_link;
- __sys___acl_set_link;
- ___getcwd;
- __sys___getcwd;
- ___mac_execve;
- __sys___mac_execve;
- ___mac_get_fd;
- __sys___mac_get_fd;
- ___mac_get_file;
- __sys___mac_get_file;
- ___mac_get_link;
- __sys___mac_get_link;
- ___mac_get_pid;
- __sys___mac_get_pid;
- ___mac_get_proc;
- __sys___mac_get_proc;
- ___mac_set_fd;
- __sys___mac_set_fd;
- ___mac_set_file;
- __sys___mac_set_file;
- ___mac_set_link;
- __sys___mac_set_link;
- ___mac_set_proc;
- __sys___mac_set_proc;
- ___semctl;
- __sys___semctl;
- ___setugid;
- __sys___setugid;
- ___syscall;
- __sys___syscall;
- ___sysctl;
- __sys___sysctl;
- __umtx_op;
- __sys__umtx_op;
- _abort2;
- __sys_abort2;
- _accept;
- __sys_accept;
- _accept4;
- __sys_accept4;
- _access;
- __sys_access;
- _acct;
- __sys_acct;
- _adjtime;
- __sys_adjtime;
- __sys_aio_cancel;
- __sys_aio_error;
- __sys_aio_fsync;
- __sys_aio_read;
- __sys_aio_readv;
- __sys_aio_return;
- __sys_aio_suspend;
- __sys_aio_waitcomplete;
- __sys_aio_write;
- __sys_aio_writev;
- _audit;
- __sys_audit;
- _auditctl;
- __sys_auditctl;
- _auditon;
- __sys_auditon;
- _bind;
- __sys_bind;
- _chdir;
- __sys_chdir;
- _chflags;
- __sys_chflags;
- _chmod;
- __sys_chmod;
- _chown;
- __sys_chown;
- _chroot;
- __sys_chroot;
- _clock_getcpuclockid2;
- __sys_clock_getcpuclockid2;
- _clock_getres;
- __sys_clock_getres;
- _clock_gettime;
- __sys_clock_gettime;
- __sys_clock_nanosleep;
- _clock_settime;
- __sys_clock_settime;
- _close;
- __sys_close;
- _connect;
- __sys_connect;
- _cpuset;
- __sys_cpuset;
- _cpuset_getid;
- __sys_cpuset_getid;
- _cpuset_setid;
- __sys_cpuset_setid;
- _cpuset_getaffinity;
- __sys_cpuset_getaffinity;
- _cpuset_setaffinity;
- __sys_cpuset_setaffinity;
- _dup;
- __sys_dup;
- _dup2;
- __sys_dup2;
- _eaccess;
- __sys_eaccess;
- _execve;
- __sys_execve;
- _extattr_delete_fd;
- __sys_extattr_delete_fd;
- _extattr_delete_file;
- __sys_extattr_delete_file;
- _extattr_delete_link;
- __sys_extattr_delete_link;
- _extattr_get_fd;
- __sys_extattr_get_fd;
- _extattr_get_file;
- __sys_extattr_get_file;
- _extattr_get_link;
- __sys_extattr_get_link;
- _extattr_list_fd;
- __sys_extattr_list_fd;
- _extattr_list_file;
- __sys_extattr_list_file;
- _extattr_list_link;
- __sys_extattr_list_link;
- _extattr_set_fd;
- __sys_extattr_set_fd;
- _extattr_set_file;
- __sys_extattr_set_file;
- _extattr_set_link;
- __sys_extattr_set_link;
- _extattrctl;
- __sys_extattrctl;
- __sys_sigfastblock;
- _fchdir;
- __sys_fchdir;
- _fchflags;
- __sys_fchflags;
- _fchmod;
- __sys_fchmod;
- _fchown;
- __sys_fchown;
- _fcntl;
- __sys_fcntl;
- __fcntl_compat;
- _fhopen;
- __sys_fhopen;
- _fhstat;
- __sys_fhstat;
- _fhstatfs;
- __sys_fhstatfs;
- _flock;
- __sys_flock;
- _fork;
- __sys_fork;
- _fpathconf;
- __sys_fpathconf;
- _fstat;
- __sys_fstat;
- _fstatfs;
- __sys_fstatfs;
- _fsync;
- __sys_fsync;
- _fdatasync;
- __sys_fdatasync;
- _futimes;
- __sys_futimes;
- _getaudit;
- __sys_getaudit;
- _getaudit_addr;
- __sys_getaudit_addr;
- _getauid;
- __sys_getauid;
- _getcontext;
- __sys_getcontext;
- _getdirentries;
- __sys_getdirentries;
- _getdtablesize;
- __sys_getdtablesize;
- _getegid;
- __sys_getegid;
- _geteuid;
- __sys_geteuid;
- _getfh;
- __sys_getfh;
- _getfsstat;
- __sys_getfsstat;
- _getgid;
- __sys_getgid;
- _getgroups;
- __sys_getgroups;
- _getitimer;
- __sys_getitimer;
- _getpeername;
- __sys_getpeername;
- _getpgid;
- __sys_getpgid;
- _getpgrp;
- __sys_getpgrp;
- _getpid;
- __sys_getpid;
- _getppid;
- __sys_getppid;
- _getpriority;
- __sys_getpriority;
- _getresgid;
- __sys_getresgid;
- _getresuid;
- __sys_getresuid;
- _getrlimit;
- __sys_getrlimit;
- _getrusage;
- __sys_getrusage;
- _getsid;
- __sys_getsid;
- _getsockname;
- __sys_getsockname;
- _getsockopt;
- __sys_getsockopt;
- _gettimeofday;
- __sys_gettimeofday;
- _getuid;
- __sys_getuid;
- _ioctl;
- __sys_ioctl;
- _issetugid;
- __sys_issetugid;
- _jail;
- __sys_jail;
- _jail_attach;
- __sys_jail_attach;
- _kenv;
- __sys_kenv;
- _kevent;
- __sys_kevent;
- _kill;
- __sys_kill;
- _kldfind;
- __sys_kldfind;
- _kldfirstmod;
- __sys_kldfirstmod;
- _kldload;
- __sys_kldload;
- _kldnext;
- __sys_kldnext;
- _kldstat;
- __sys_kldstat;
- _kldsym;
- __sys_kldsym;
- _kldunload;
- __sys_kldunload;
- _kldunloadf;
- __sys_kldunloadf;
- _kmq_notify;
- __sys_kmq_notify;
- _kmq_open;
- __sys_kmq_open;
- _kmq_setattr;
- __sys_kmq_setattr;
- _kmq_timedreceive;
- __sys_kmq_timedreceive;
- _kmq_timedsend;
- __sys_kmq_timedsend;
- _kmq_unlink;
- __sys_kmq_unlink;
- _kqueue;
- __sys_kqueue;
- _ksem_close;
- __sys_ksem_close;
- _ksem_destroy;
- __sys_ksem_destroy;
- _ksem_getvalue;
- __sys_ksem_getvalue;
- _ksem_init;
- __sys_ksem_init;
- _ksem_open;
- __sys_ksem_open;
- _ksem_post;
- __sys_ksem_post;
- _ksem_timedwait;
- __sys_ksem_timedwait;
- _ksem_trywait;
- __sys_ksem_trywait;
- _ksem_unlink;
- __sys_ksem_unlink;
- _ksem_wait;
- __sys_ksem_wait;
- _ktrace;
- __sys_ktrace;
- _lchflags;
- __sys_lchflags;
- _lchmod;
- __sys_lchmod;
- _lchown;
- __sys_lchown;
- _lgetfh;
- __sys_lgetfh;
- _link;
- __sys_link;
- __sys_lio_listio;
- _listen;
- __sys_listen;
- _lutimes;
- __sys_lutimes;
- _mac_syscall;
- __sys_mac_syscall;
- _madvise;
- __sys_madvise;
- _mincore;
- __sys_mincore;
- _minherit;
- __sys_minherit;
- _mkdir;
- __sys_mkdir;
- _mkfifo;
- __sys_mkfifo;
- _mknod;
- __sys_mknod;
- _mlock;
- __sys_mlock;
- _mlockall;
- __sys_mlockall;
- _mmap;
- __sys_mmap;
- _modfind;
- __sys_modfind;
- _modfnext;
- __sys_modfnext;
- _modnext;
- __sys_modnext;
- _modstat;
- __sys_modstat;
- _mount;
- __sys_mount;
- _mprotect;
- __sys_mprotect;
- _msgctl;
- __sys_msgctl;
- _msgget;
- __sys_msgget;
- _msgrcv;
- __sys_msgrcv;
- _msgsnd;
- __sys_msgsnd;
- _msgsys;
- __sys_msgsys;
- _msync;
- __sys_msync;
- _munlock;
- __sys_munlock;
- _munlockall;
- __sys_munlockall;
- _munmap;
- __sys_munmap;
- _nanosleep;
- __sys_nanosleep;
- _nfssvc;
- __sys_nfssvc;
- _nmount;
- __sys_nmount;
- _ntp_adjtime;
- __sys_ntp_adjtime;
- _ntp_gettime;
- __sys_ntp_gettime;
- _open;
- __sys_open;
- _openat;
- __sys_openat;
- _pathconf;
- __sys_pathconf;
- __sys_pdfork;
- _pipe;
- __sys_pipe;
- _poll;
- __sys_poll;
- _ppoll;
- __sys_ppoll;
- _preadv;
- __sys_preadv;
- _procctl;
- __sys_procctl;
- _profil;
- __sys_profil;
- _pselect;
- __sys_pselect;
- _ptrace;
- __sys_ptrace;
- _pwritev;
- __sys_pwritev;
- _quotactl;
- __sys_quotactl;
- _read;
- __sys_read;
- _readlink;
- __sys_readlink;
- _readv;
- __sys_readv;
- _reboot;
- __sys_reboot;
- _recvfrom;
- __sys_recvfrom;
- _recvmsg;
- __sys_recvmsg;
- _rename;
- __sys_rename;
- _revoke;
- __sys_revoke;
- _rfork;
- __sys_rfork;
- _rmdir;
- __sys_rmdir;
- _rtprio;
- __sys_rtprio;
- _rtprio_thread;
- __sys_rtprio_thread;
- _sched_get_priority_max;
- __sys_sched_get_priority_max;
- _sched_get_priority_min;
- __sys_sched_get_priority_min;
- _sched_getparam;
- __sys_sched_getparam;
- _sched_getscheduler;
- __sys_sched_getscheduler;
- _sched_rr_get_interval;
- __sys_sched_rr_get_interval;
- _sched_setparam;
- __sys_sched_setparam;
- _sched_setscheduler;
- __sys_sched_setscheduler;
- _sched_yield;
- __sys_sched_yield;
- _select;
- __sys_select;
- _semget;
- __sys_semget;
- _semop;
- __sys_semop;
- _semsys;
- __sys_semsys;
- _sendfile;
- __sys_sendfile;
- _sendmsg;
- __sys_sendmsg;
- _sendto;
- __sys_sendto;
- _setaudit;
- __sys_setaudit;
- _setaudit_addr;
- __sys_setaudit_addr;
- _setauid;
- __sys_setauid;
- _setcontext;
- __sys_setcontext;
- _setegid;
- __sys_setegid;
- _seteuid;
- __sys_seteuid;
- _setgid;
- __sys_setgid;
- _setgroups;
- __sys_setgroups;
- _setitimer;
- __sys_setitimer;
- _setlogin;
- __sys_setlogin;
- _setpgid;
- __sys_setpgid;
- _setpriority;
- __sys_setpriority;
- _setregid;
- __sys_setregid;
- _setresgid;
- __sys_setresgid;
- _setresuid;
- __sys_setresuid;
- _setreuid;
- __sys_setreuid;
- _setrlimit;
- __sys_setrlimit;
- _setsid;
- __sys_setsid;
- _setsockopt;
- __sys_setsockopt;
- _settimeofday;
- __sys_settimeofday;
- _setuid;
- __sys_setuid;
- _shm_open;
- __sys_shm_open;
- __sys_shm_open2;
- _shm_unlink;
- __sys_shm_unlink;
- _shmat;
- __sys_shmat;
- _shmctl;
- __sys_shmctl;
- _shmdt;
- __sys_shmdt;
- _shmget;
- __sys_shmget;
- _shmsys;
- __sys_shmsys;
- _shutdown;
- __sys_shutdown;
- _sigaction;
- __sys_sigaction;
- _sigaltstack;
- __sys_sigaltstack;
- _sigpending;
- __sys_sigpending;
- _sigprocmask;
- __sys_sigprocmask;
- _sigqueue;
- __sys_sigqueue;
- _sigreturn;
- __sys_sigreturn;
- _sigsuspend;
- __sys_sigsuspend;
- _sigtimedwait;
- __sys_sigtimedwait;
- _sigwait;
- __sigwait;
- __sys_sigwait;
- _sigwaitinfo;
- __sys_sigwaitinfo;
- _socket;
- __sys_socket;
- _socketpair;
- __sys_socketpair;
- _statfs;
- __sys_statfs;
- _swapcontext;
- __sys_swapcontext;
- _swapoff;
- __sys_swapoff;
- _swapon;
- __sys_swapon;
- _symlink;
- __sys_symlink;
- _sync;
- __sys_sync;
- _sysarch;
- __sys_sysarch;
- _syscall;
- __sys_syscall;
- _thr_create;
- __sys_thr_create;
- _thr_exit;
- __sys_thr_exit;
- _thr_kill;
- __sys_thr_kill;
- _thr_kill2;
- __sys_thr_kill2;
- _thr_new;
- __sys_thr_new;
- _thr_self;
- __sys_thr_self;
- _thr_set_name;
- __sys_thr_set_name;
- _thr_suspend;
- __sys_thr_suspend;
- _thr_wake;
- __sys_thr_wake;
- _ktimer_create;
- __sys_ktimer_create;
- _ktimer_delete;
- __sys_ktimer_delete;
- _ktimer_getoverrun;
- __sys_ktimer_getoverrun;
- _ktimer_gettime;
- __sys_ktimer_gettime;
- _ktimer_settime;
- __sys_ktimer_settime;
- _umask;
- __sys_umask;
- _undelete;
- __sys_undelete;
- _unlink;
- __sys_unlink;
- _unmount;
- __sys_unmount;
- _utimes;
- __sys_utimes;
- _utrace;
- __sys_utrace;
- _uuidgen;
- __sys_uuidgen;
- _wait4;
- __sys_wait4;
- _wait6;
- __sys_wait6;
- _write;
- __sys_write;
- _writev;
- __sys_writev;
- __set_error_selector;
- nlm_syscall;
- gssd_syscall;
- __libc_interposing_slot;
- __libc_sigwait;
- _cpuset_getdomain;
- __sys_cpuset_getdomain;
- _cpuset_setdomain;
- __sys_cpuset_setdomain;
- rpctls_syscall;
};
diff --git a/lib/libc/sys/__vdso_gettimeofday.c b/lib/libc/sys/__vdso_gettimeofday.c
deleted file mode 100644
index cf1400cdf291..000000000000
--- a/lib/libc/sys/__vdso_gettimeofday.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2012 Konstantin Belousov <kib@FreeBSD.org>
- *
- * 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 <sys/elf.h>
-#include <sys/time.h>
-#include <sys/vdso.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <strings.h>
-#include <time.h>
-#include <machine/atomic.h>
-#include "libc_private.h"
-
-static int
-tc_delta(const struct vdso_timehands *th, u_int *delta)
-{
- int error;
- u_int tc;
-
- error = __vdso_gettc(th, &tc);
- if (error == 0)
- *delta = (tc - th->th_offset_count) & th->th_counter_mask;
- return (error);
-}
-
-/*
- * Calculate the absolute or boot-relative time from the
- * machine-specific fast timecounter and the published timehands
- * structure read from the shared page.
- *
- * The lockless reading scheme is similar to the one used to read the
- * in-kernel timehands, see sys/kern/kern_tc.c:binuptime(). This code
- * is based on the kernel implementation.
- */
-static int
-binuptime(struct bintime *bt, struct vdso_timekeep *tk, bool abs)
-{
- struct vdso_timehands *th;
- uint32_t curr, gen;
- uint64_t scale, x;
- u_int delta, scale_bits;
- int error;
-
- do {
- if (!tk->tk_enabled)
- return (ENOSYS);
-
- curr = atomic_load_acq_32(&tk->tk_current);
- th = &tk->tk_th[curr];
- gen = atomic_load_acq_32(&th->th_gen);
- *bt = th->th_offset;
- error = tc_delta(th, &delta);
- if (error == EAGAIN)
- continue;
- if (error != 0)
- return (error);
- scale = th->th_scale;
-#ifdef _LP64
- scale_bits = flsl(scale);
-#else
- scale_bits = flsll(scale);
-#endif
- if (__predict_false(scale_bits + fls(delta) > 63)) {
- x = (scale >> 32) * delta;
- scale &= 0xffffffff;
- bt->sec += x >> 32;
- bintime_addx(bt, x << 32);
- }
- bintime_addx(bt, scale * delta);
- if (abs)
- bintime_add(bt, &th->th_boottime);
-
- /*
- * Ensure that the load of th_offset is completed
- * before the load of th_gen.
- */
- atomic_thread_fence_acq();
- } while (curr != tk->tk_current || gen == 0 || gen != th->th_gen);
- return (0);
-}
-
-static int
-getnanouptime(struct bintime *bt, struct vdso_timekeep *tk)
-{
- struct vdso_timehands *th;
- uint32_t curr, gen;
-
- do {
- if (!tk->tk_enabled)
- return (ENOSYS);
-
- curr = atomic_load_acq_32(&tk->tk_current);
- th = &tk->tk_th[curr];
- gen = atomic_load_acq_32(&th->th_gen);
- *bt = th->th_offset;
-
- /*
- * Ensure that the load of th_offset is completed
- * before the load of th_gen.
- */
- atomic_thread_fence_acq();
- } while (curr != tk->tk_current || gen == 0 || gen != th->th_gen);
- return (0);
-}
-
-static struct vdso_timekeep *tk;
-
-#pragma weak __vdso_gettimeofday
-int
-__vdso_gettimeofday(struct timeval *tv, struct timezone *tz)
-{
- struct bintime bt;
- int error;
-
- if (tz != NULL)
- return (ENOSYS);
- if (tk == NULL) {
- error = __vdso_gettimekeep(&tk);
- if (error != 0 || tk == NULL)
- return (ENOSYS);
- }
- if (tk->tk_ver != VDSO_TK_VER_CURR)
- return (ENOSYS);
- error = binuptime(&bt, tk, true);
- if (error != 0)
- return (error);
- bintime2timeval(&bt, tv);
- return (0);
-}
-
-#pragma weak __vdso_clock_gettime
-int
-__vdso_clock_gettime(clockid_t clock_id, struct timespec *ts)
-{
- struct bintime bt;
- int error;
-
- if (tk == NULL) {
- error = _elf_aux_info(AT_TIMEKEEP, &tk, sizeof(tk));
- if (error != 0 || tk == NULL)
- return (ENOSYS);
- }
- if (tk->tk_ver != VDSO_TK_VER_CURR)
- return (ENOSYS);
- switch (clock_id) {
- case CLOCK_REALTIME:
- case CLOCK_REALTIME_PRECISE:
- case CLOCK_REALTIME_FAST:
- case CLOCK_SECOND:
- error = binuptime(&bt, tk, true);
- break;
- case CLOCK_MONOTONIC:
- case CLOCK_MONOTONIC_PRECISE:
- case CLOCK_UPTIME:
- case CLOCK_UPTIME_PRECISE:
- error = binuptime(&bt, tk, false);
- break;
- case CLOCK_MONOTONIC_FAST:
- case CLOCK_UPTIME_FAST:
- error = getnanouptime(&bt, tk);
- break;
- default:
- error = ENOSYS;
- break;
- }
- if (error != 0)
- return (error);
- bintime2timespec(&bt, ts);
- if (clock_id == CLOCK_SECOND)
- ts->tv_nsec = 0;
- return (0);
-}
diff --git a/lib/libc/sys/_exit.2 b/lib/libc/sys/_exit.2
deleted file mode 100644
index 037549cc8c07..000000000000
--- a/lib/libc/sys/_exit.2
+++ /dev/null
@@ -1,125 +0,0 @@
-.\" Copyright (c) 1980, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)_exit.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd September 8, 2016
-.Dt EXIT 2
-.Os
-.Sh NAME
-.Nm _exit
-.Nd terminate the calling process
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft void
-.Fn _exit "int status"
-.Sh DESCRIPTION
-The
-.Fn _exit
-system call
-terminates a process with the following consequences:
-.Bl -bullet
-.It
-All of the descriptors open in the calling process are closed.
-This may entail delays, for example, waiting for output to drain;
-a process in this state may not be killed, as it is already dying.
-.It
-If the parent process of the calling process has an outstanding
-.Xr wait 2
-call
-or catches the
-.Dv SIGCHLD
-signal,
-it is notified of the calling process's termination and
-the
-.Fa status
-is set as defined by
-.Xr wait 2 .
-.It
-The parent process-ID of all of the calling process's existing child
-processes are set to the process-ID of the calling process's reaper;
-the reaper (normally the initialization process)
-inherits each of these processes
-(see
-.Xr procctl 2 ,
-.Xr init 8
-and the
-.Sx DEFINITIONS
-section of
-.Xr intro 2 ) .
-.It
-If the termination of the process causes any process group
-to become orphaned (usually because the parents of all members
-of the group have now exited; see
-.Dq orphaned process group
-in
-.Xr intro 2 ) ,
-and if any member of the orphaned group is stopped,
-the
-.Dv SIGHUP
-signal and the
-.Dv SIGCONT
-signal are sent to all members of the newly-orphaned process group.
-.It
-If the process is a controlling process (see
-.Xr intro 2 ) ,
-the
-.Dv SIGHUP
-signal is sent to the foreground process group of the controlling terminal,
-and all current access to the controlling terminal is revoked.
-.El
-.Pp
-Most C programs call the library routine
-.Xr exit 3 ,
-which flushes buffers, closes streams, unlinks temporary files, etc.,
-before
-calling
-.Fn _exit .
-.Sh RETURN VALUES
-The
-.Fn _exit
-system call
-can never return.
-.Sh SEE ALSO
-.Xr fork 2 ,
-.Xr sigaction 2 ,
-.Xr wait 2 ,
-.Xr exit 3 ,
-.Xr init 8
-.Sh STANDARDS
-The
-.Fn _exit
-system call is expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn _exit
-function appeared in
-.At v7 .
diff --git a/lib/libc/sys/_umtx_op.2 b/lib/libc/sys/_umtx_op.2
deleted file mode 100644
index ecd46b7d0247..000000000000
--- a/lib/libc/sys/_umtx_op.2
+++ /dev/null
@@ -1,1531 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd November 23, 2020
-.Dt _UMTX_OP 2
-.Os
-.Sh NAME
-.Nm _umtx_op
-.Nd interface for implementation of userspace threading synchronization primitives
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/umtx.h
-.Ft int
-.Fn _umtx_op "void *obj" "int op" "u_long val" "void *uaddr" "void *uaddr2"
-.Sh DESCRIPTION
-The
-.Fn _umtx_op
-system call provides kernel support for userspace implementation of
-the threading synchronization primitives.
-The
-.Lb libthr
-uses the syscall to implement
-.St -p1003.1-2001
-pthread locks, like mutexes, condition variables and so on.
-.Ss STRUCTURES
-The operations, performed by the
-.Fn _umtx_op
-syscall, operate on userspace objects which are described
-by the following structures.
-Reserved fields and paddings are omitted.
-All objects require ABI-mandated alignment, but this is not currently
-enforced consistently on all architectures.
-.Pp
-The following flags are defined for flag fields of all structures:
-.Bl -tag -width indent
-.It Dv USYNC_PROCESS_SHARED
-Allow selection of the process-shared sleep queue for the thread sleep
-container, when the lock ownership cannot be granted immediately,
-and the operation must sleep.
-The process-shared or process-private sleep queue is selected based on
-the attributes of the memory mapping which contains the first byte of
-the structure, see
-.Xr mmap 2 .
-Otherwise, if the flag is not specified, the process-private sleep queue
-is selected regardless of the memory mapping attributes, as an optimization.
-.Pp
-See the
-.Sx SLEEP QUEUES
-subsection below for more details on sleep queues.
-.El
-.Bl -hang -offset indent
-.It Sy Mutex
-.Bd -literal
-struct umutex {
- volatile lwpid_t m_owner;
- uint32_t m_flags;
- uint32_t m_ceilings[2];
- uintptr_t m_rb_lnk;
-};
-.Ed
-.Pp
-The
-.Dv m_owner
-field is the actual lock.
-It contains either the thread identifier of the lock owner in the
-locked state, or zero when the lock is unowned.
-The highest bit set indicates that there is contention on the lock.
-The constants are defined for special values:
-.Bl -tag -width indent
-.It Dv UMUTEX_UNOWNED
-Zero, the value stored in the unowned lock.
-.It Dv UMUTEX_CONTESTED
-The contention indicator.
-.It Dv UMUTEX_RB_OWNERDEAD
-A thread owning the robust mutex terminated.
-The mutex is in unlocked state.
-.It Dv UMUTEX_RB_NOTRECOV
-The robust mutex is in a non-recoverable state.
-It cannot be locked until reinitialized.
-.El
-.Pp
-The
-.Dv m_flags
-field may contain the following umutex-specific flags, in addition to
-the common flags:
-.Bl -tag -width indent
-.It Dv UMUTEX_PRIO_INHERIT
-Mutex implements
-.Em Priority Inheritance
-protocol.
-.It Dv UMUTEX_PRIO_PROTECT
-Mutex implements
-.Em Priority Protection
-protocol.
-.It Dv UMUTEX_ROBUST
-Mutex is robust, as described in the
-.Sx ROBUST UMUTEXES
-section below.
-.It Dv UMUTEX_NONCONSISTENT
-Robust mutex is in a transient non-consistent state.
-Not used by kernel.
-.El
-.Pp
-In the manual page, mutexes not having
-.Dv UMUTEX_PRIO_INHERIT
-and
-.Dv UMUTEX_PRIO_PROTECT
-flags set, are called normal mutexes.
-Each type of mutex
-.Pq normal, priority-inherited, and priority-protected
-has a separate sleep queue associated
-with the given key.
-.Pp
-For priority protected mutexes, the
-.Dv m_ceilings
-array contains priority ceiling values.
-The
-.Dv m_ceilings[0]
-is the ceiling value for the mutex, as specified by
-.St -p1003.1-2008
-for the
-.Em Priority Protected
-mutex protocol.
-The
-.Dv m_ceilings[1]
-is used only for the unlock of a priority protected mutex, when
-unlock is done in an order other than the reversed lock order.
-In this case,
-.Dv m_ceilings[1]
-must contain the ceiling value for the last locked priority protected
-mutex, for proper priority reassignment.
-If, instead, the unlocking mutex was the last priority propagated
-mutex locked by the thread,
-.Dv m_ceilings[1]
-should contain \-1.
-This is required because kernel does not maintain the ordered lock list.
-.It Sy Condition variable
-.Bd -literal
-struct ucond {
- volatile uint32_t c_has_waiters;
- uint32_t c_flags;
- uint32_t c_clockid;
-};
-.Ed
-.Pp
-A non-zero
-.Dv c_has_waiters
-value indicates that there are in-kernel waiters for the condition,
-executing the
-.Dv UMTX_OP_CV_WAIT
-request.
-.Pp
-The
-.Dv c_flags
-field contains flags.
-Only the common flags
-.Pq Dv USYNC_PROCESS_SHARED
-are defined for ucond.
-.Pp
-The
-.Dv c_clockid
-member provides the clock identifier to use for timeout, when the
-.Dv UMTX_OP_CV_WAIT
-request has both the
-.Dv CVWAIT_CLOCKID
-flag and the timeout specified.
-Valid clock identifiers are a subset of those for
-.Xr clock_gettime 2 :
-.Bl -bullet -compact
-.It
-.Dv CLOCK_MONOTONIC
-.It
-.Dv CLOCK_MONOTONIC_FAST
-.It
-.Dv CLOCK_MONOTONIC_PRECISE
-.It
-.Dv CLOCK_PROF
-.It
-.Dv CLOCK_REALTIME
-.It
-.Dv CLOCK_REALTIME_FAST
-.It
-.Dv CLOCK_REALTIME_PRECISE
-.It
-.Dv CLOCK_SECOND
-.It
-.Dv CLOCK_UPTIME
-.It
-.Dv CLOCK_UPTIME_FAST
-.It
-.Dv CLOCK_UPTIME_PRECISE
-.It
-.Dv CLOCK_VIRTUAL
-.El
-.It Sy Reader/writer lock
-.Bd -literal
-struct urwlock {
- volatile int32_t rw_state;
- uint32_t rw_flags;
- uint32_t rw_blocked_readers;
- uint32_t rw_blocked_writers;
-};
-.Ed
-.Pp
-The
-.Dv rw_state
-field is the actual lock.
-It contains both the flags and counter of the read locks which were
-granted.
-Names of the
-.Dv rw_state
-bits are following:
-.Bl -tag -width indent
-.It Dv URWLOCK_WRITE_OWNER
-Write lock was granted.
-.It Dv URWLOCK_WRITE_WAITERS
-There are write lock waiters.
-.It Dv URWLOCK_READ_WAITERS
-There are read lock waiters.
-.It Dv URWLOCK_READER_COUNT(c)
-Returns the count of currently granted read locks.
-.El
-.Pp
-At any given time there may be only one thread to which the writer lock
-is granted on the
-.Vt struct rwlock ,
-and no threads are granted read lock.
-Or, at the given time, up to
-.Dv URWLOCK_MAX_READERS
-threads may be granted the read lock simultaneously, but write lock is
-not granted to any thread.
-.Pp
-The following flags for the
-.Dv rw_flags
-member of
-.Vt struct urwlock
-are defined, in addition to the common flags:
-.Bl -tag -width indent
-.It Dv URWLOCK_PREFER_READER
-If specified, immediately grant read lock requests when
-.Dv urwlock
-is already read-locked, even in presence of unsatisfied write
-lock requests.
-By default, if there is a write lock waiter, further read requests are
-not granted, to prevent unfair write lock waiter starvation.
-.El
-.Pp
-The
-.Dv rw_blocked_readers
-and
-.Dv rw_blocked_writers
-members contain the count of threads which are sleeping in kernel,
-waiting for the associated request type to be granted.
-The fields are used by kernel to update the
-.Dv URWLOCK_READ_WAITERS
-and
-.Dv URWLOCK_WRITE_WAITERS
-flags of the
-.Dv rw_state
-lock after requesting thread was woken up.
-.It Sy Semaphore
-.Bd -literal
-struct _usem2 {
- volatile uint32_t _count;
- uint32_t _flags;
-};
-.Ed
-.Pp
-The
-.Dv _count
-word represents a counting semaphore.
-A non-zero value indicates an unlocked (posted) semaphore, while zero
-represents the locked state.
-The maximal supported semaphore count is
-.Dv USEM_MAX_COUNT .
-.Pp
-The
-.Dv _count
-word, besides the counter of posts (unlocks), also contains the
-.Dv USEM_HAS_WAITERS
-bit, which indicates that locked semaphore has waiting threads.
-.Pp
-The
-.Dv USEM_COUNT()
-macro, applied to the
-.Dv _count
-word, returns the current semaphore counter, which is the number of posts
-issued on the semaphore.
-.Pp
-The following bits for the
-.Dv _flags
-member of
-.Vt struct _usem2
-are defined, in addition to the common flags:
-.Bl -tag -width indent
-.It Dv USEM_NAMED
-Flag is ignored by kernel.
-.El
-.It Sy Timeout parameter
-.Bd -literal
-struct _umtx_time {
- struct timespec _timeout;
- uint32_t _flags;
- uint32_t _clockid;
-};
-.Ed
-.Pp
-Several
-.Fn _umtx_op
-operations allow the blocking time to be limited, failing the request
-if it cannot be satisfied in the specified time period.
-The timeout is specified by passing either the address of
-.Vt struct timespec ,
-or its extended variant,
-.Vt struct _umtx_time ,
-as the
-.Fa uaddr2
-argument of
-.Fn _umtx_op .
-They are distinguished by the
-.Fa uaddr
-value, which must be equal to the size of the structure pointed to by
-.Fa uaddr2 ,
-casted to
-.Vt uintptr_t .
-.Pp
-The
-.Dv _timeout
-member specifies the time when the timeout should occur.
-Legal values for clock identifier
-.Dv _clockid
-are shared with the
-.Fa clock_id
-argument to the
-.Xr clock_gettime 2
-function,
-and use the same underlying clocks.
-The specified clock is used to obtain the current time value.
-Interval counting is always performed by the monotonic wall clock.
-.Pp
-The
-.Dv _flags
-argument allows the following flags to further define the timeout behaviour:
-.Bl -tag -width indent
-.It Dv UMTX_ABSTIME
-The
-.Dv _timeout
-value is the absolute time.
-The thread will be unblocked and the request failed when specified
-clock value is equal or exceeds the
-.Dv _timeout.
-.Pp
-If the flag is absent, the timeout value is relative, that is the amount
-of time, measured by the monotonic wall clock from the moment of the request
-start.
-.El
-.El
-.Ss SLEEP QUEUES
-When a locking request cannot be immediately satisfied, the thread is
-typically put to
-.Em sleep ,
-which is a non-runnable state terminated by the
-.Em wake
-operation.
-Lock operations include a
-.Em try
-variant which returns an error rather than sleeping if the lock cannot
-be obtained.
-Also,
-.Fn _umtx_op
-provides requests which explicitly put the thread to sleep.
-.Pp
-Wakes need to know which threads to make runnable, so sleeping threads
-are grouped into containers called
-.Em sleep queues .
-A sleep queue is identified by a key, which for
-.Fn _umtx_op
-is defined as the physical address of some variable.
-Note that the
-.Em physical
-address is used, which means that same variable mapped multiple
-times will give one key value.
-This mechanism enables the construction of
-.Em process-shared
-locks.
-.Pp
-A related attribute of the key is shareability.
-Some requests always interpret keys as private for the current process,
-creating sleep queues with the scope of the current process even if
-the memory is shared.
-Others either select the shareability automatically from the
-mapping attributes, or take additional input as the
-.Dv USYNC_PROCESS_SHARED
-common flag.
-This is done as optimization, allowing the lock scope to be limited
-regardless of the kind of backing memory.
-.Pp
-Only the address of the start byte of the variable specified as key is
-important for determining corresponding sleep queue.
-The size of the variable does not matter, so, for example, sleep on the same
-address interpeted as
-.Vt uint32_t
-and
-.Vt long
-on a little-endian 64-bit platform would collide.
-.Pp
-The last attribute of the key is the object type.
-The sleep queue to which a sleeping thread is assigned is an individual
-one for simple wait requests, mutexes, rwlocks, condvars and other
-primitives, even when the physical address of the key is same.
-.Pp
-When waking up a limited number of threads from a given sleep queue,
-the highest priority threads that have been blocked for the longest on
-the queue are selected.
-.Ss ROBUST UMUTEXES
-The
-.Em robust umutexes
-are provided as a substrate for a userspace library to implement
-.Tn POSIX
-robust mutexes.
-A robust umutex must have the
-.Dv UMUTEX_ROBUST
-flag set.
-.Pp
-On thread termination, the kernel walks two lists of mutexes.
-The two lists head addresses must be provided by a prior call to
-.Dv UMTX_OP_ROBUST_LISTS
-request.
-The lists are singly-linked.
-The link to next element is provided by the
-.Dv m_rb_lnk
-member of the
-.Vt struct umutex .
-.Pp
-Robust list processing is aborted if the kernel finds a mutex
-with any of the following conditions:
-.Bl -dash -offset indent -compact
-.It
-the
-.Dv UMUTEX_ROBUST
-flag is not set
-.It
-not owned by the current thread, except when the mutex is pointed to
-by the
-.Dv robust_inactive
-member of the
-.Vt struct umtx_robust_lists_params ,
-registered for the current thread
-.It
-the combination of mutex flags is invalid
-.It
-read of the umutex memory faults
-.It
-the list length limit described in
-.Xr libthr 3
-is reached.
-.El
-.Pp
-Every mutex in both lists is unlocked as if the
-.Dv UMTX_OP_MUTEX_UNLOCK
-request is performed on it, but instead of the
-.Dv UMUTEX_UNOWNED
-value, the
-.Dv m_owner
-field is written with the
-.Dv UMUTEX_RB_OWNERDEAD
-value.
-When a mutex in the
-.Dv UMUTEX_RB_OWNERDEAD
-state is locked by kernel due to the
-.Dv UMTX_OP_MUTEX_TRYLOCK
-and
-.Dv UMTX_OP_MUTEX_LOCK
-requests, the lock is granted and
-.Er EOWNERDEAD
-error is returned.
-.Pp
-Also, the kernel handles the
-.Dv UMUTEX_RB_NOTRECOV
-value of
-.Dv the m_owner
-field specially, always returning the
-.Er ENOTRECOVERABLE
-error for lock attempts, without granting the lock.
-.Ss OPERATIONS
-The following operations, requested by the
-.Fa op
-argument to the function, are implemented:
-.Bl -tag -width indent
-.It Dv UMTX_OP_WAIT
-Wait.
-The arguments for the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to a variable of type
-.Vt long .
-.It Fa val
-Current value of the
-.Dv *obj .
-.El
-.Pp
-The current value of the variable pointed to by the
-.Fa obj
-argument is compared with the
-.Fa val .
-If they are equal, the requesting thread is put to interruptible sleep
-until woken up or the optionally specified timeout expires.
-.Pp
-The comparison and sleep are atomic.
-In other words, if another thread writes a new value to
-.Dv *obj
-and then issues
-.Dv UMTX_OP_WAKE ,
-the request is guaranteed to not miss the wakeup,
-which might otherwise happen between comparison and blocking.
-.Pp
-The physical address of memory where the
-.Fa *obj
-variable is located, is used as a key to index sleeping threads.
-.Pp
-The read of the current value of the
-.Dv *obj
-variable is not guarded by barriers.
-In particular, it is the user's duty to ensure the lock acquire
-and release memory semantics, if the
-.Dv UMTX_OP_WAIT
-and
-.Dv UMTX_OP_WAKE
-requests are used as a substrate for implementing a simple lock.
-.Pp
-The request is not restartable.
-An unblocked signal delivered during the wait always results in sleep
-interruption and
-.Er EINTR
-error.
-.Pp
-Optionally, a timeout for the request may be specified.
-.It Dv UMTX_OP_WAKE
-Wake the threads possibly sleeping due to
-.Dv UMTX_OP_WAIT .
-The arguments for the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to a variable, used as a key to find sleeping threads.
-.It Fa val
-Up to
-.Fa val
-threads are woken up by this request.
-Specify
-.Dv INT_MAX
-to wake up all waiters.
-.El
-.It Dv UMTX_OP_MUTEX_TRYLOCK
-Try to lock umutex.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the umutex.
-.El
-.Pp
-Operates same as the
-.Dv UMTX_OP_MUTEX_LOCK
-request, but returns
-.Er EBUSY
-instead of sleeping if the lock cannot be obtained immediately.
-.It Dv UMTX_OP_MUTEX_LOCK
-Lock umutex.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the umutex.
-.El
-.Pp
-Locking is performed by writing the current thread id into the
-.Dv m_owner
-word of the
-.Vt struct umutex .
-The write is atomic, preserves the
-.Dv UMUTEX_CONTESTED
-contention indicator, and provides the acquire barrier for
-lock entrance semantic.
-.Pp
-If the lock cannot be obtained immediately because another thread owns
-the lock, the current thread is put to sleep, with
-.Dv UMUTEX_CONTESTED
-bit set before.
-Upon wake up, the lock conditions are re-tested.
-.Pp
-The request adheres to the priority protection or inheritance protocol
-of the mutex, specified by the
-.Dv UMUTEX_PRIO_PROTECT
-or
-.Dv UMUTEX_PRIO_INHERIT
-flag, respectively.
-.Pp
-Optionally, a timeout for the request may be specified.
-.Pp
-A request with a timeout specified is not restartable.
-An unblocked signal delivered during the wait always results in sleep
-interruption and
-.Er EINTR
-error.
-A request without timeout specified is always restarted after return
-from a signal handler.
-.It Dv UMTX_OP_MUTEX_UNLOCK
-Unlock umutex.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the umutex.
-.El
-.Pp
-Unlocks the mutex, by writing
-.Dv UMUTEX_UNOWNED
-(zero) value into
-.Dv m_owner
-word of the
-.Vt struct umutex .
-The write is done with a release barrier, to provide lock leave semantic.
-.Pp
-If there are threads sleeping in the sleep queue associated with the
-umutex, one thread is woken up.
-If more than one thread sleeps in the sleep queue, the
-.Dv UMUTEX_CONTESTED
-bit is set together with the write of the
-.Dv UMUTEX_UNOWNED
-value into
-.Dv m_owner .
-.Pp
-The request adheres to the priority protection or inheritance protocol
-of the mutex, specified by the
-.Dv UMUTEX_PRIO_PROTECT
-or
-.Dv UMUTEX_PRIO_INHERIT
-flag, respectively.
-See description of the
-.Dv m_ceilings
-member of the
-.Vt struct umutex
-structure for additional details of the request operation on the
-priority protected protocol mutex.
-.It Dv UMTX_OP_SET_CEILING
-Set ceiling for the priority protected umutex.
-The arguments to the request are:
-.Bl -tag -width "uaddr"
-.It Fa obj
-Pointer to the umutex.
-.It Fa val
-New ceiling value.
-.It Fa uaddr
-Address of a variable of type
-.Vt uint32_t .
-If not
-.Dv NULL
-and the update was successful, the previous ceiling value is
-written to the location pointed to by
-.Fa uaddr .
-.El
-.Pp
-The request locks the umutex pointed to by the
-.Fa obj
-parameter, waiting for the lock if not immediately available.
-After the lock is obtained, the new ceiling value
-.Fa val
-is written to the
-.Dv m_ceilings[0]
-member of the
-.Vt struct umutex,
-after which the umutex is unlocked.
-.Pp
-The locking does not adhere to the priority protect protocol,
-to conform to the
-.Tn POSIX
-requirements for the
-.Xr pthread_mutex_setprioceiling 3
-interface.
-.It Dv UMTX_OP_CV_WAIT
-Wait for a condition.
-The arguments to the request are:
-.Bl -tag -width "uaddr2"
-.It Fa obj
-Pointer to the
-.Vt struct ucond .
-.It Fa val
-Request flags, see below.
-.It Fa uaddr
-Pointer to the umutex.
-.It Fa uaddr2
-Optional pointer to a
-.Vt struct timespec
-for timeout specification.
-.El
-.Pp
-The request must be issued by the thread owning the mutex pointed to
-by the
-.Fa uaddr
-argument.
-The
-.Dv c_hash_waiters
-member of the
-.Vt struct ucond ,
-pointed to by the
-.Fa obj
-argument, is set to an arbitrary non-zero value, after which the
-.Fa uaddr
-mutex is unlocked (following the appropriate protocol), and
-the current thread is put to sleep on the sleep queue keyed by
-the
-.Fa obj
-argument.
-The operations are performed atomically.
-It is guaranteed to not miss a wakeup from
-.Dv UMTX_OP_CV_SIGNAL
-or
-.Dv UMTX_OP_CV_BROADCAST
-sent between mutex unlock and putting the current thread on the sleep queue.
-.Pp
-Upon wakeup, if the timeout expired and no other threads are sleeping in
-the same sleep queue, the
-.Dv c_hash_waiters
-member is cleared.
-After wakeup, the
-.Fa uaddr
-umutex is not relocked.
-.Pp
-The following flags are defined:
-.Bl -tag -width "CVWAIT_CLOCKID"
-.It Dv CVWAIT_ABSTIME
-Timeout is absolute.
-.It Dv CVWAIT_CLOCKID
-Clockid is provided.
-.El
-.Pp
-Optionally, a timeout for the request may be specified.
-Unlike other requests, the timeout value is specified directly by a
-.Vt struct timespec ,
-pointed to by the
-.Fa uaddr2
-argument.
-If the
-.Dv CVWAIT_CLOCKID
-flag is provided, the timeout uses the clock from the
-.Dv c_clockid
-member of the
-.Vt struct ucond ,
-pointed to by
-.Fa obj
-argument.
-Otherwise,
-.Dv CLOCK_REALTIME
-is used, regardless of the clock identifier possibly specified in the
-.Vt struct _umtx_time .
-If the
-.Dv CVWAIT_ABSTIME
-flag is supplied, the timeout specifies absolute time value, otherwise
-it denotes a relative time interval.
-.Pp
-The request is not restartable.
-An unblocked signal delivered during
-the wait always results in sleep interruption and
-.Er EINTR
-error.
-.It Dv UMTX_OP_CV_SIGNAL
-Wake up one condition waiter.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to
-.Vt struct ucond .
-.El
-.Pp
-The request wakes up at most one thread sleeping on the sleep queue keyed
-by the
-.Fa obj
-argument.
-If the woken up thread was the last on the sleep queue, the
-.Dv c_has_waiters
-member of the
-.Vt struct ucond
-is cleared.
-.It Dv UMTX_OP_CV_BROADCAST
-Wake up all condition waiters.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to
-.Vt struct ucond .
-.El
-.Pp
-The request wakes up all threads sleeping on the sleep queue keyed by the
-.Fa obj
-argument.
-The
-.Dv c_has_waiters
-member of the
-.Vt struct ucond
-is cleared.
-.It Dv UMTX_OP_WAIT_UINT
-Same as
-.Dv UMTX_OP_WAIT ,
-but the type of the variable pointed to by
-.Fa obj
-is
-.Vt u_int
-.Pq a 32-bit integer .
-.It Dv UMTX_OP_RW_RDLOCK
-Read-lock a
-.Vt struct rwlock
-lock.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the lock (of type
-.Vt struct rwlock )
-to be read-locked.
-.It Fa val
-Additional flags to augment locking behaviour.
-The valid flags in the
-.Fa val
-argument are:
-.Bl -tag -width indent
-.It Dv URWLOCK_PREFER_READER
-.El
-.El
-.Pp
-The request obtains the read lock on the specified
-.Vt struct rwlock
-by incrementing the count of readers in the
-.Dv rw_state
-word of the structure.
-If the
-.Dv URWLOCK_WRITE_OWNER
-bit is set in the word
-.Dv rw_state ,
-the lock was granted to a writer which has not yet relinquished
-its ownership.
-In this case the current thread is put to sleep until it makes sense to
-retry.
-.Pp
-If the
-.Dv URWLOCK_PREFER_READER
-flag is set either in the
-.Dv rw_flags
-word of the structure, or in the
-.Fa val
-argument of the request, the presence of the threads trying to obtain
-the write lock on the same structure does not prevent the current thread
-from trying to obtain the read lock.
-Otherwise, if the flag is not set, and the
-.Dv URWLOCK_WRITE_WAITERS
-flag is set in
-.Dv rw_state ,
-the current thread does not attempt to obtain read-lock.
-Instead it sets the
-.Dv URWLOCK_READ_WAITERS
-in the
-.Dv rw_state
-word and puts itself to sleep on corresponding sleep queue.
-Upon wakeup, the locking conditions are re-evaluated.
-.Pp
-Optionally, a timeout for the request may be specified.
-.Pp
-The request is not restartable.
-An unblocked signal delivered during the wait always results in sleep
-interruption and
-.Er EINTR
-error.
-.It Dv UMTX_OP_RW_WRLOCK
-Write-lock a
-.Vt struct rwlock
-lock.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the lock (of type
-.Vt struct rwlock )
-to be write-locked.
-.El
-.Pp
-The request obtains a write lock on the specified
-.Vt struct rwlock ,
-by setting the
-.Dv URWLOCK_WRITE_OWNER
-bit in the
-.Dv rw_state
-word of the structure.
-If there is already a write lock owner, as indicated by the
-.Dv URWLOCK_WRITE_OWNER
-bit being set, or there are read lock owners, as indicated
-by the read-lock counter, the current thread does not attempt to
-obtain the write-lock.
-Instead it sets the
-.Dv URWLOCK_WRITE_WAITERS
-in the
-.Dv rw_state
-word and puts itself to sleep on corresponding sleep queue.
-Upon wakeup, the locking conditions are re-evaluated.
-.Pp
-Optionally, a timeout for the request may be specified.
-.Pp
-The request is not restartable.
-An unblocked signal delivered during the wait always results in sleep
-interruption and
-.Er EINTR
-error.
-.It Dv UMTX_OP_RW_UNLOCK
-Unlock rwlock.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the lock (of type
-.Vt struct rwlock )
-to be unlocked.
-.El
-.Pp
-The unlock type (read or write) is determined by the
-current lock state.
-Note that the
-.Vt struct rwlock
-does not save information about the identity of the thread which
-acquired the lock.
-.Pp
-If there are pending writers after the unlock, and the
-.Dv URWLOCK_PREFER_READER
-flag is not set in the
-.Dv rw_flags
-member of the
-.Fa *obj
-structure, one writer is woken up, selected as described in the
-.Sx SLEEP QUEUES
-subsection.
-If the
-.Dv URWLOCK_PREFER_READER
-flag is set, a pending writer is woken up only if there is
-no pending readers.
-.Pp
-If there are no pending writers, or, in the case that the
-.Dv URWLOCK_PREFER_READER
-flag is set, then all pending readers are woken up by unlock.
-.It Dv UMTX_OP_WAIT_UINT_PRIVATE
-Same as
-.Dv UMTX_OP_WAIT_UINT ,
-but unconditionally select the process-private sleep queue.
-.It Dv UMTX_OP_WAKE_PRIVATE
-Same as
-.Dv UMTX_OP_WAKE ,
-but unconditionally select the process-private sleep queue.
-.It Dv UMTX_OP_MUTEX_WAIT
-Wait for mutex availability.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Address of the mutex.
-.El
-.Pp
-Similarly to the
-.Dv UMTX_OP_MUTEX_LOCK ,
-put the requesting thread to sleep if the mutex lock cannot be obtained
-immediately.
-The
-.Dv UMUTEX_CONTESTED
-bit is set in the
-.Dv m_owner
-word of the mutex to indicate that there is a waiter, before the thread
-is added to the sleep queue.
-Unlike the
-.Dv UMTX_OP_MUTEX_LOCK
-request, the lock is not obtained.
-.Pp
-The operation is not implemented for priority protected and
-priority inherited protocol mutexes.
-.Pp
-Optionally, a timeout for the request may be specified.
-.Pp
-A request with a timeout specified is not restartable.
-An unblocked signal delivered during the wait always results in sleep
-interruption and
-.Er EINTR
-error.
-A request without a timeout automatically restarts if the signal disposition
-requested restart via the
-.Dv SA_RESTART
-flag in
-.Vt struct sigaction
-member
-.Dv sa_flags .
-.It Dv UMTX_OP_NWAKE_PRIVATE
-Wake up a batch of sleeping threads.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the array of pointers.
-.It Fa val
-Number of elements in the array pointed to by
-.Fa obj .
-.El
-.Pp
-For each element in the array pointed to by
-.Fa obj ,
-wakes up all threads waiting on the
-.Em private
-sleep queue with the key
-being the byte addressed by the array element.
-.It Dv UMTX_OP_MUTEX_WAKE
-Check if a normal umutex is unlocked and wake up a waiter.
-The arguments for the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the umutex.
-.El
-.Pp
-If the
-.Dv m_owner
-word of the mutex pointed to by the
-.Fa obj
-argument indicates unowned mutex, which has its contention indicator bit
-.Dv UMUTEX_CONTESTED
-set, clear the bit and wake up one waiter in the sleep queue associated
-with the byte addressed by the
-.Fa obj ,
-if any.
-Only normal mutexes are supported by the request.
-The sleep queue is always one for a normal mutex type.
-.Pp
-This request is deprecated in favor of
-.Dv UMTX_OP_MUTEX_WAKE2
-since mutexes using it cannot synchronize their own destruction.
-That is, the
-.Dv m_owner
-word has already been set to
-.Dv UMUTEX_UNOWNED
-when this request is made,
-so that another thread can lock, unlock and destroy the mutex
-(if no other thread uses the mutex afterwards).
-Clearing the
-.Dv UMUTEX_CONTESTED
-bit may then modify freed memory.
-.It Dv UMTX_OP_MUTEX_WAKE2
-Check if a umutex is unlocked and wake up a waiter.
-The arguments for the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the umutex.
-.It Fa val
-The umutex flags.
-.El
-.Pp
-The request does not read the
-.Dv m_flags
-member of the
-.Vt struct umutex ;
-instead, the
-.Fa val
-argument supplies flag information, in particular, to determine the
-sleep queue where the waiters are found for wake up.
-.Pp
-If the mutex is unowned, one waiter is woken up.
-.Pp
-If the mutex memory cannot be accessed, all waiters are woken up.
-.Pp
-If there is more than one waiter on the sleep queue, or there is only
-one waiter but the mutex is owned by a thread, the
-.Dv UMUTEX_CONTESTED
-bit is set in the
-.Dv m_owner
-word of the
-.Vt struct umutex .
-.It Dv UMTX_OP_SEM2_WAIT
-Wait until semaphore is available.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the semaphore (of type
-.Vt struct _usem2 ) .
-.It Fa uaddr
-Size of the memory passed in via the
-.Fa uaddr2
-argument.
-.It Fa uaddr2
-Optional pointer to a structure of type
-.Vt struct _umtx_time ,
-which may be followed by a structure of type
-.Vt struct timespec .
-.El
-.Pp
-Put the requesting thread onto a sleep queue if the semaphore counter
-is zero.
-If the thread is put to sleep, the
-.Dv USEM_HAS_WAITERS
-bit is set in the
-.Dv _count
-word to indicate waiters.
-The function returns either due to
-.Dv _count
-indicating the semaphore is available (non-zero count due to post),
-or due to a wakeup.
-The return does not guarantee that the semaphore is available,
-nor does it consume the semaphore lock on successful return.
-.Pp
-Optionally, a timeout for the request may be specified.
-.Pp
-A request with non-absolute timeout value is not restartable.
-An unblocked signal delivered during such wait results in sleep
-interruption and
-.Er EINTR
-error.
-.Pp
-If
-.Dv UMTX_ABSTIME
-was not set, and the operation was interrupted and the caller passed in a
-.Fa uaddr2
-large enough to hold a
-.Vt struct timespec
-following the initial
-.Vt struct _umtx_time ,
-then the
-.Vt struct timespec
-is updated to contain the unslept amount.
-.It Dv UMTX_OP_SEM2_WAKE
-Wake up waiters on semaphore lock.
-The arguments to the request are:
-.Bl -tag -width "obj"
-.It Fa obj
-Pointer to the semaphore (of type
-.Vt struct _usem2 ) .
-.El
-.Pp
-The request wakes up one waiter for the semaphore lock.
-The function does not increment the semaphore lock count.
-If the
-.Dv USEM_HAS_WAITERS
-bit was set in the
-.Dv _count
-word, and the last sleeping thread was woken up, the bit is cleared.
-.It Dv UMTX_OP_SHM
-Manage anonymous
-.Tn POSIX
-shared memory objects (see
-.Xr shm_open 2 ) ,
-which can be attached to a byte of physical memory, mapped into the
-process address space.
-The objects are used to implement process-shared locks in
-.Dv libthr .
-.Pp
-The
-.Fa val
-argument specifies the sub-request of the
-.Dv UMTX_OP_SHM
-request:
-.Bl -tag -width indent
-.It Dv UMTX_SHM_CREAT
-Creates the anonymous shared memory object, which can be looked up
-with the specified key
-.Fa uaddr .
-If the object associated with the
-.Fa uaddr
-key already exists, it is returned instead of creating a new object.
-The object's size is one page.
-On success, the file descriptor referencing the object is returned.
-The descriptor can be used for mapping the object using
-.Xr mmap 2 ,
-or for other shared memory operations.
-.It Dv UMTX_SHM_LOOKUP
-Same as
-.Dv UMTX_SHM_CREATE
-request, but if there is no shared memory object associated with
-the specified key
-.Fa uaddr ,
-an error is returned, and no new object is created.
-.It Dv UMTX_SHM_DESTROY
-De-associate the shared object with the specified key
-.Fa uaddr .
-The object is destroyed after the last open file descriptor is closed
-and the last mapping for it is destroyed.
-.It Dv UMTX_SHM_ALIVE
-Checks whether there is a live shared object associated with the
-supplied key
-.Fa uaddr .
-Returns zero if there is, and an error otherwise.
-This request is an optimization of the
-.Dv UMTX_SHM_LOOKUP
-request.
-It is cheaper when only the liveness of the associated object is asked
-for, since no file descriptor is installed in the process fd table
-on success.
-.El
-.Pp
-The
-.Fa uaddr
-argument specifies the virtual address, which backing physical memory
-byte identity is used as a key for the anonymous shared object
-creation or lookup.
-.It Dv UMTX_OP_ROBUST_LISTS
-Register the list heads for the current thread's robust mutex lists.
-The arguments to the request are:
-.Bl -tag -width "uaddr"
-.It Fa val
-Size of the structure passed in the
-.Fa uaddr
-argument.
-.It Fa uaddr
-Pointer to the structure of type
-.Vt struct umtx_robust_lists_params .
-.El
-.Pp
-The structure is defined as
-.Bd -literal
-struct umtx_robust_lists_params {
- uintptr_t robust_list_offset;
- uintptr_t robust_priv_list_offset;
- uintptr_t robust_inact_offset;
-};
-.Ed
-.Pp
-The
-.Dv robust_list_offset
-member contains address of the first element in the list of locked
-robust shared mutexes.
-The
-.Dv robust_priv_list_offset
-member contains address of the first element in the list of locked
-robust private mutexes.
-The private and shared robust locked lists are split to allow fast
-termination of the shared list on fork, in the child.
-.Pp
-The
-.Dv robust_inact_offset
-contains a pointer to the mutex which might be locked in nearby future,
-or might have been just unlocked.
-It is typically set by the lock or unlock mutex implementation code
-around the whole operation, since lists can be only changed race-free
-when the thread owns the mutex.
-The kernel inspects the
-.Dv robust_inact_offset
-in addition to walking the shared and private lists.
-Also, the mutex pointed to by
-.Dv robust_inact_offset
-is handled more loosely at the thread termination time,
-than other mutexes on the list.
-That mutex is allowed to be not owned by the current thread,
-in which case list processing is continued.
-See
-.Sx ROBUST UMUTEXES
-subsection for details.
-.El
-.Pp
-The
-.Fa op
-argument may be a bitwise OR of a single command from above with one or more of
-the following flags:
-.Bl -tag -width indent
-.It Dv UMTX_OP__I386
-Request i386 ABI compatibility from the native
-.Nm
-system call.
-Specifically, this implies that:
-.Bl -hang -offset indent
-.It
-.Fa obj
-arguments that point to a word, point to a 32-bit integer.
-.It
-The
-.Dv UMTX_OP_NWAKE_PRIVATE
-.Fa obj
-argument is a pointer to an array of 32-bit pointers.
-.It
-The
-.Dv m_rb_lnk
-member of
-.Vt struct umutex
-is a 32-bit pointer.
-.It
-.Vt struct timespec
-uses a 32-bit time_t.
-.El
-.Pp
-.Dv UMTX_OP__32BIT
-has no effect if this flag is set.
-This flag is valid for all architectures, but it is ignored on i386.
-.It Dv UMTX_OP__32BIT
-Request non-i386, 32-bit ABI compatibility from the native
-.Nm
-system call.
-Specifically, this implies that:
-.Bl -hang -offset indent
-.It
-.Fa obj
-arguments that point to a word, point to a 32-bit integer.
-.It
-The
-.Dv UMTX_OP_NWAKE_PRIVATE
-.Fa obj
-argument is a pointer to an array of 32-bit pointers.
-.It
-The
-.Dv m_rb_lnk
-member of
-.Vt struct umutex
-is a 32-bit pointer.
-.It
-.Vt struct timespec
-uses a 64-bit time_t.
-.El
-.Pp
-This flag has no effect if
-.Dv UMTX_OP__I386
-is set.
-This flag is valid for all architectures.
-.El
-.Pp
-Note that if any 32-bit ABI compatibility is being requested, then care must be
-taken with robust lists.
-A single thread may not mix 32-bit compatible robust lists with native
-robust lists.
-The first
-.Dv UMTX_OP_ROBUST_LISTS
-call in a given thread determines which ABI that thread will use for robust
-lists going forward.
-.Sh RETURN VALUES
-If successful,
-all requests, except
-.Dv UMTX_SHM_CREAT
-and
-.Dv UMTX_SHM_LOOKUP
-sub-requests of the
-.Dv UMTX_OP_SHM
-request, will return zero.
-The
-.Dv UMTX_SHM_CREAT
-and
-.Dv UMTX_SHM_LOOKUP
-return a shared memory file descriptor on success.
-On error \-1 is returned, and the
-.Va errno
-variable is set to indicate the error.
-.Sh ERRORS
-The
-.Fn _umtx_op
-operations can fail with the following errors:
-.Bl -tag -width "[ETIMEDOUT]"
-.It Bq Er EFAULT
-One of the arguments point to invalid memory.
-.It Bq Er EINVAL
-The clock identifier, specified for the
-.Vt struct _umtx_time
-timeout parameter, or in the
-.Dv c_clockid
-member of
-.Vt struct ucond,
-is invalid.
-.It Bq Er EINVAL
-The type of the mutex, encoded by the
-.Dv m_flags
-member of
-.Vt struct umutex ,
-is invalid.
-.It Bq Er EINVAL
-The
-.Dv m_owner
-member of the
-.Vt struct umutex
-has changed the lock owner thread identifier during unlock.
-.It Bq Er EINVAL
-The
-.Dv timeout.tv_sec
-or
-.Dv timeout.tv_nsec
-member of
-.Vt struct _umtx_time
-is less than zero, or
-.Dv timeout.tv_nsec
-is greater than 1000000000.
-.It Bq Er EINVAL
-The
-.Fa op
-argument specifies invalid operation.
-.It Bq Er EINVAL
-The
-.Fa uaddr
-argument for the
-.Dv UMTX_OP_SHM
-request specifies invalid operation.
-.It Bq Er EINVAL
-The
-.Dv UMTX_OP_SET_CEILING
-request specifies non priority protected mutex.
-.It Bq Er EINVAL
-The new ceiling value for the
-.Dv UMTX_OP_SET_CEILING
-request, or one or more of the values read from the
-.Dv m_ceilings
-array during lock or unlock operations, is greater than
-.Dv RTP_PRIO_MAX .
-.It Bq Er EPERM
-Unlock attempted on an object not owned by the current thread.
-.It Bq Er EOWNERDEAD
-The lock was requested on an umutex where the
-.Dv m_owner
-field was set to the
-.Dv UMUTEX_RB_OWNERDEAD
-value, indicating terminated robust mutex.
-The lock was granted to the caller, so this error in fact
-indicates success with additional conditions.
-.It Bq Er ENOTRECOVERABLE
-The lock was requested on an umutex which
-.Dv m_owner
-field is equal to the
-.Dv UMUTEX_RB_NOTRECOV
-value, indicating abandoned robust mutex after termination.
-The lock was not granted to the caller.
-.It Bq Er ENOTTY
-The shared memory object, associated with the address passed to the
-.Dv UMTX_SHM_ALIVE
-sub-request of
-.Dv UMTX_OP_SHM
-request, was destroyed.
-.It Bq Er ESRCH
-For the
-.Dv UMTX_SHM_LOOKUP ,
-.Dv UMTX_SHM_DESTROY ,
-and
-.Dv UMTX_SHM_ALIVE
-sub-requests of the
-.Dv UMTX_OP_SHM
-request, there is no shared memory object associated with the provided key.
-.It Bq Er ENOMEM
-The
-.Dv UMTX_SHM_CREAT
-sub-request of the
-.Dv UMTX_OP_SHM
-request cannot be satisfied, because allocation of the shared memory object
-would exceed the
-.Dv RLIMIT_UMTXP
-resource limit, see
-.Xr setrlimit 2 .
-.It Bq Er EAGAIN
-The maximum number of readers
-.Dv ( URWLOCK_MAX_READERS )
-were already granted ownership of the given
-.Vt struct rwlock
-for read.
-.It Bq Er EBUSY
-A try mutex lock operation was not able to obtain the lock.
-.It Bq Er ETIMEDOUT
-The request specified a timeout in the
-.Fa uaddr
-and
-.Fa uaddr2
-arguments, and timed out before obtaining the lock or being woken up.
-.It Bq Er EINTR
-A signal was delivered during wait, for a non-restartable operation.
-Operations with timeouts are typically non-restartable, but timeouts
-specified in absolute time may be restartable.
-.It Bq Er ERESTART
-A signal was delivered during wait, for a restartable operation.
-Mutex lock requests without timeout specified are restartable.
-The error is not returned to userspace code since restart
-is handled by usual adjustment of the instruction counter.
-.El
-.Sh SEE ALSO
-.Xr clock_gettime 2 ,
-.Xr mmap 2 ,
-.Xr setrlimit 2 ,
-.Xr shm_open 2 ,
-.Xr sigaction 2 ,
-.Xr thr_exit 2 ,
-.Xr thr_kill 2 ,
-.Xr thr_kill2 2 ,
-.Xr thr_new 2 ,
-.Xr thr_self 2 ,
-.Xr thr_set_name 2 ,
-.Xr signal 3
-.Sh STANDARDS
-The
-.Fn _umtx_op
-system call is non-standard and is used by the
-.Lb libthr
-to implement
-.St -p1003.1-2001
-.Xr pthread 3
-functionality.
-.Sh BUGS
-A window between a unlocking robust mutex and resetting the pointer in the
-.Dv robust_inact_offset
-member of the registered
-.Vt struct umtx_robust_lists_params
-allows another thread to destroy the mutex, thus making the kernel inspect
-freed or reused memory.
-The
-.Li libthr
-implementation is only vulnerable to this race when operating on
-a shared mutex.
-A possible fix for the current implementation is to strengthen the checks
-for shared mutexes before terminating them, in particular, verifying
-that the mutex memory is mapped from a shared memory object allocated
-by the
-.Dv UMTX_OP_SHM
-request.
-This is not done because it is believed that the race is adequately
-covered by other consistency checks, while adding the check would
-prevent alternative implementations of
-.Li libpthread .
diff --git a/lib/libc/sys/abort2.2 b/lib/libc/sys/abort2.2
deleted file mode 100644
index ca31d74267f3..000000000000
--- a/lib/libc/sys/abort2.2
+++ /dev/null
@@ -1,113 +0,0 @@
-.\" Copyright (c) 2005 Wojciech A. Koszek <dunstan@FreeBSD.czest.pl>
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 30, 2006
-.Dt ABORT2 2
-.Os
-.Sh NAME
-.Nm abort2
-.Nd "abort process with diagnostics"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In stdlib.h
-.Ft void
-.Fn abort2 "const char *why" "int nargs" "void **args"
-.Sh DESCRIPTION
-The
-.Fn abort2
-system call causes the process to be killed and the specified diagnostic
-message (with arguments) to be delivered by the kernel to the
-.Xr syslogd 8
-daemon.
-.Pp
-The
-.Fa why
-argument points to a
-.Dv NUL- Ns
-terminated string specifying a reason of the program's termination
-(maximum 128 characters long).
-The
-.Fa args
-array contains pointers which will be logged numerically
-(with the kernel's
-.Ql %p
-.Xr printf 9
-format).
-The
-.Fa nargs
-argument specifies the number of pointers in
-.Fa args
-(maximum 16).
-.Pp
-The
-.Fn abort2
-system call
-is intended for use in situations where continuation of a process
-is impossible or for other definitive reasons is unwanted, and normal
-diagnostic channels cannot be trusted to deliver the message.
-.Sh RETURN VALUES
-The
-.Fn abort2
-function
-never returns.
-.Pp
-The process is killed with
-.Dv SIGABRT
-unless the arguments to
-.Fn abort2
-are invalid, in which case
-.Dv SIGKILL
-is used.
-.Sh EXAMPLES
-.Bd -literal -compact
-#include <stdlib.h>
-
-if (weight_kg > max_load) {
- void *ptrs[3];
-
- ptrs[0] = (void *)(intptr_t)weight_kg;
- ptrs[1] = (void *)(intptr_t)max_load;
- ptrs[2] = haystack;
- abort2("Camel overloaded", 3, ptrs);
-}
-.Ed
-.Sh SEE ALSO
-.Xr abort 3 ,
-.Xr exit 3
-.Sh HISTORY
-The
-.Fn abort2
-system call first appeared in
-.Fx 7.0 .
-.Sh AUTHORS
-.An -nosplit
-The
-.Fn abort2
-system call was designed by
-.An Poul-Henning Kamp Aq Mt phk@FreeBSD.org .
-It was implemented by
-.An Wojciech A. Koszek Aq Mt dunstan@freebsd.czest.pl .
diff --git a/lib/libc/sys/accept.2 b/lib/libc/sys/accept.2
deleted file mode 100644
index b41f8fc43612..000000000000
--- a/lib/libc/sys/accept.2
+++ /dev/null
@@ -1,239 +0,0 @@
-.\" Copyright (c) 1983, 1990, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)accept.2 8.2 (Berkeley) 12/11/93
-.\" $FreeBSD$
-.\"
-.Dd October 9, 2014
-.Dt ACCEPT 2
-.Os
-.Sh NAME
-.Nm accept ,
-.Nm accept4
-.Nd accept a connection on a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Ft int
-.Fn accept "int s" "struct sockaddr * restrict addr" "socklen_t * restrict addrlen"
-.Ft int
-.Fn accept4 "int s" "struct sockaddr * restrict addr" "socklen_t * restrict addrlen" "int flags"
-.Sh DESCRIPTION
-The argument
-.Fa s
-is a socket that has been created with
-.Xr socket 2 ,
-bound to an address with
-.Xr bind 2 ,
-and is listening for connections after a
-.Xr listen 2 .
-The
-.Fn accept
-system call extracts the first connection request on the
-queue of pending connections, creates a new socket,
-and allocates a new file descriptor for the socket which
-inherits the state of the
-.Dv O_NONBLOCK
-and
-.Dv O_ASYNC
-properties and the destination of
-.Dv SIGIO
-and
-.Dv SIGURG
-signals from the original socket
-.Fa s .
-.Pp
-The
-.Fn accept4
-system call is similar,
-but the
-.Dv O_NONBLOCK
-property of the new socket is instead determined by the
-.Dv SOCK_NONBLOCK
-flag in the
-.Fa flags
-argument,
-the
-.Dv O_ASYNC
-property is cleared,
-the signal destination is cleared
-and the close-on-exec flag on the new file descriptor can be set via the
-.Dv SOCK_CLOEXEC
-flag in the
-.Fa flags
-argument.
-.Pp
-If no pending connections are
-present on the queue, and the original socket
-is not marked as non-blocking,
-.Fn accept
-blocks the caller until a connection is present.
-If the original socket
-is marked non-blocking and no pending
-connections are present on the queue,
-.Fn accept
-returns an error as described below.
-The accepted socket
-may not be used
-to accept more connections.
-The original socket
-.Fa s
-remains open.
-.Pp
-The argument
-.Fa addr
-is a result argument that is filled-in with
-the address of the connecting entity,
-as known to the communications layer.
-The exact format of the
-.Fa addr
-argument is determined by the domain in which the communication
-is occurring.
-A null pointer may be specified for
-.Fa addr
-if the address information is not desired;
-in this case,
-.Fa addrlen
-is not used and should also be null.
-Otherwise, the
-.Fa addrlen
-argument
-is a value-result argument; it should initially contain the
-amount of space pointed to by
-.Fa addr ;
-on return it will contain the actual length (in bytes) of the
-address returned.
-This call
-is used with connection-based socket types, currently with
-.Dv SOCK_STREAM .
-.Pp
-It is possible to
-.Xr select 2
-a socket for the purposes of doing an
-.Fn accept
-by selecting it for read.
-.Pp
-For certain protocols which require an explicit confirmation,
-such as
-.Tn ISO
-or
-.Tn DATAKIT ,
-.Fn accept
-can be thought of
-as merely dequeueing the next connection
-request and not implying confirmation.
-Confirmation can be implied by a normal read or write on the new
-file descriptor, and rejection can be implied by closing the
-new socket.
-.Pp
-For some applications, performance may be enhanced by using an
-.Xr accept_filter 9
-to pre-process incoming connections.
-.Pp
-When using
-.Fn accept ,
-portable programs should not rely on the
-.Dv O_NONBLOCK
-and
-.Dv O_ASYNC
-properties and the signal destination being inherited,
-but should set them explicitly using
-.Xr fcntl 2 ;
-.Fn accept4
-sets these properties consistently,
-but may not be fully portable across
-.Ux
-platforms.
-.Sh RETURN VALUES
-These calls return \-1 on error.
-If they succeed, they return a non-negative
-integer that is a descriptor for the accepted socket.
-.Sh ERRORS
-The
-.Fn accept
-and
-.Fn accept4
-system calls will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The descriptor is invalid.
-.It Bq Er EINTR
-The
-.Fn accept
-operation was interrupted.
-.It Bq Er EMFILE
-The per-process descriptor table is full.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er ENOTSOCK
-The descriptor references a file, not a socket.
-.It Bq Er EINVAL
-.Xr listen 2
-has not been called on the socket descriptor.
-.It Bq Er EFAULT
-The
-.Fa addr
-argument is not in a writable part of the
-user address space.
-.It Bo Er EWOULDBLOCK Bc or Bq Er EAGAIN
-The socket is marked non-blocking and no connections
-are present to be accepted.
-.It Bq Er ECONNABORTED
-A connection arrived, but it was closed while waiting
-on the listen queue.
-.El
-.Pp
-The
-.Fn accept4
-system call will also fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa flags
-argument is invalid.
-.El
-.Sh SEE ALSO
-.Xr bind 2 ,
-.Xr connect 2 ,
-.Xr getpeername 2 ,
-.Xr getsockname 2 ,
-.Xr listen 2 ,
-.Xr select 2 ,
-.Xr socket 2 ,
-.Xr accept_filter 9
-.Sh HISTORY
-The
-.Fn accept
-system call appeared in
-.Bx 4.2 .
-.Pp
-The
-.Fn accept4
-system call appeared in
-.Fx 10.0 .
diff --git a/lib/libc/sys/accept.c b/lib/libc/sys/accept.c
index 38e32f2c836d..95c8b4a58c74 100644
--- a/lib/libc/sys/accept.c
+++ b/lib/libc/sys/accept.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -44,7 +40,5 @@ __weak_reference(__sys_accept, __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));
+ return (INTERPOS_SYS(accept, s, addr, addrlen));
}
diff --git a/lib/libc/sys/accept4.c b/lib/libc/sys/accept4.c
index 2907b047efdc..1a1f75c9f528 100644
--- a/lib/libc/sys/accept4.c
+++ b/lib/libc/sys/accept4.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -44,7 +40,5 @@ __weak_reference(__sys_accept4, __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));
+ return (INTERPOS_SYS(accept4, s, addr, addrlen, flags));
}
diff --git a/lib/libc/sys/access.2 b/lib/libc/sys/access.2
deleted file mode 100644
index 12af63385780..000000000000
--- a/lib/libc/sys/access.2
+++ /dev/null
@@ -1,272 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)access.2 8.2 (Berkeley) 4/1/94
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2021
-.Dt ACCESS 2
-.Os
-.Sh NAME
-.Nm access ,
-.Nm eaccess ,
-.Nm faccessat
-.Nd check accessibility of a file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn access "const char *path" "int mode"
-.Ft int
-.Fn eaccess "const char *path" "int mode"
-.Ft int
-.Fn faccessat "int fd" "const char *path" "int mode" "int flag"
-.Sh DESCRIPTION
-The
-.Fn access
-and
-.Fn eaccess
-system calls check the accessibility of the
-file named by
-the
-.Fa path
-argument
-for the access permissions indicated by
-the
-.Fa mode
-argument.
-The value of
-.Fa mode
-is either the bitwise-inclusive OR of the access permissions to be
-checked
-.Dv ( R_OK
-for read permission,
-.Dv W_OK
-for write permission, and
-.Dv X_OK
-for execute/search permission),
-or the existence test
-.Pq Dv F_OK .
-.Pp
-For additional information, see the
-.Sx "File Access Permission"
-section of
-.Xr intro 2 .
-.Pp
-The
-.Fn eaccess
-system call uses
-the effective user ID and the group access list
-to authorize the request;
-the
-.Fn access
-system call uses
-the real user ID in place of the effective user ID,
-the real group ID in place of the effective group ID,
-and the rest of the group access list.
-.Pp
-The
-.Fn faccessat
-system call is equivalent to
-.Fn access
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the file whose accessibility is to be determined is
-located relative to the directory associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-If
-.Fn faccessat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn access .
-Values for
-.Fa flag
-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_EACCESS
-The checks for accessibility are performed using the effective user and group
-IDs instead of the real user and group ID as required in a call to
-.Fn access .
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.It Dv AT_EMPTY_PATH
-If the
-.Fa path
-argument is an empty string, operate on the file or directory
-referenced by the descriptor
-.Fa fd .
-If
-.Fa fd
-is equal to
-.Dv AT_FDCWD ,
-operate on the current working directory.
-.El
-.Pp
-Even if a process's real or effective user has appropriate privileges
-and indicates success for
-.Dv X_OK ,
-the file may not actually have execute permission bits set.
-Likewise for
-.Dv R_OK
-and
-.Dv W_OK .
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-.Fn access ,
-.Fn eaccess ,
-or
-.Fn faccessat
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The value of the
-.Fa mode
-argument is invalid.
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EROFS
-Write access is requested for a file on a read-only file system.
-.It Bq Er ETXTBSY
-Write access is requested for a pure procedure (shared text)
-file presently being executed.
-.It Bq Er EACCES
-Permission bits of the file mode do not permit the requested
-access, or search permission is denied on a component of the
-path prefix.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-Also, the
-.Fn faccessat
-system call may fail if:
-.Bl -tag -width Er
-.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 EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.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 ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode.
-.El
-.Sh SEE ALSO
-.Xr chmod 2 ,
-.Xr intro 2 ,
-.Xr stat 2
-.Sh STANDARDS
-The
-.Fn access
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Fn faccessat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn access
-function appeared in
-.At v7 .
-The
-.Fn faccessat
-system call appeared in
-.Fx 8.0 .
-.Sh SECURITY CONSIDERATIONS
-The
-.Fn access
-system call
-is a potential security hole due to race conditions and
-should never be used.
-Set-user-ID and set-group-ID applications should restore the
-effective user or group ID,
-and perform actions directly rather than use
-.Fn access
-to simulate access checks for the real user or group ID.
-The
-.Fn eaccess
-system call
-likewise may be subject to races if used inappropriately.
-.Pp
-.Fn access
-remains useful for providing clues to users as to whether operations
-make sense for particular filesystem objects (e.g. 'delete' menu
-item only highlighted in a writable folder ... avoiding interpretation
-of the st_mode bits that the application might not understand --
-e.g. in the case of AFS).
-It also allows a cheaper file existence test than
-.Xr stat 2 .
diff --git a/lib/libc/sys/acct.2 b/lib/libc/sys/acct.2
deleted file mode 100644
index 43a48972ee8d..000000000000
--- a/lib/libc/sys/acct.2
+++ /dev/null
@@ -1,133 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)acct.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt ACCT 2
-.Os
-.Sh NAME
-.Nm acct
-.Nd enable or disable process accounting
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn acct "const char *file"
-.Sh DESCRIPTION
-The
-.Fn acct
-system call enables or disables the collection of system accounting
-records.
-If the argument
-.Fa file
-is a null pointer, accounting is disabled.
-If
-.Fa file
-is an
-.Em existing
-pathname (null-terminated), record collection is enabled and for
-every process initiated which terminates under normal
-conditions an accounting record is appended to
-.Fa file .
-Abnormal conditions of termination are reboots
-or other fatal system problems.
-Records for processes which never terminate cannot be
-produced by
-.Fn acct .
-.Pp
-For more information on the record structure used by
-.Fn acct ,
-see
-.In sys/acct.h
-and
-.Xr acct 5 .
-.Pp
-This call is permitted only to the super-user.
-.Sh NOTES
-Accounting is automatically disabled when the file system the
-accounting file resides on runs out of space; it is enabled when
-space once again becomes available.
-The values controlling this behaviour can be modified using the following
-.Xr sysctl 8
-variables:
-.Bl -tag -width ".Va kern.acct_chkfreq"
-.It Va kern.acct_chkfreq
-Specifies the frequency (in seconds) with which free disk
-space should be checked.
-.It Va kern.acct_resume
-The percentage of free disk space above which process
-accounting will resume.
-.It Va kern.acct_suspend
-The percentage of free disk space below which process
-accounting will suspend.
-.El
-.Sh RETURN VALUES
-On error -1 is returned.
-The file must exist and the call may be exercised only by the super-user.
-.Sh ERRORS
-The
-.Fn acct
-system call will fail if one of the following is true:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The caller is not the super-user.
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix,
-or the path name is not a regular file.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EROFS
-The named file resides on a read-only file system.
-.It Bq Er EFAULT
-The
-.Fa file
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Sh SEE ALSO
-.Xr acct 5 ,
-.Xr accton 8 ,
-.Xr sa 8
-.Sh HISTORY
-The
-.Fn acct
-function appeared in
-.At v7 .
diff --git a/lib/libc/sys/adjtime.2 b/lib/libc/sys/adjtime.2
deleted file mode 100644
index 18f6f368d140..000000000000
--- a/lib/libc/sys/adjtime.2
+++ /dev/null
@@ -1,109 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)adjtime.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd May 13, 2021
-.Dt ADJTIME 2
-.Os
-.Sh NAME
-.Nm adjtime
-.Nd "correct the time to allow synchronization of the system clock"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/time.h
-.Ft int
-.Fn adjtime "const struct timeval *delta" "struct timeval *olddelta"
-.Sh DESCRIPTION
-The
-.Fn adjtime
-system call
-makes small adjustments to the system time, as returned by
-.Xr gettimeofday 2 ,
-advancing or retarding it
-by the time specified by the timeval
-.Fa delta .
-If
-.Fa delta
-is negative, the clock is
-slowed down by incrementing it more slowly than normal until
-the correction is complete.
-If
-.Fa delta
-is positive, a larger increment than normal
-is used.
-The skew used to perform the correction is generally a fraction of one percent.
-Thus, the time is always
-a monotonically increasing function.
-A time correction from an earlier call to
-.Fn adjtime
-may not be finished when
-.Fn adjtime
-is called again.
-If
-.Fa olddelta
-is not a null pointer,
-the structure pointed to will contain, upon return, the
-number of microseconds still to be corrected
-from the earlier call.
-.Pp
-This call may be used by time servers that synchronize the clocks
-of computers in a local area network.
-Such time servers would slow down the clocks of some machines
-and speed up the clocks of others to bring them to the average network time.
-.Pp
-The
-.Fn adjtime
-system call
-is restricted to the super-user.
-.Sh RETURN VALUES
-.Rv -std adjtime
-.Sh ERRORS
-The
-.Fn adjtime
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-An argument points outside the process's allocated address space.
-.It Bq Er EPERM
-The process's effective user ID is not that of the super-user.
-.El
-.Sh SEE ALSO
-.Xr date 1 ,
-.Xr gettimeofday 2
-.Rs
-.%T "TSP: The Time Synchronization Protocol for UNIX 4.3BSD"
-.%A R. Gusella
-.%A S. Zatti
-.Re
-.Sh HISTORY
-The
-.Fn adjtime
-system call appeared in
-.Bx 4.3 .
diff --git a/lib/libc/sys/aio_cancel.2 b/lib/libc/sys/aio_cancel.2
deleted file mode 100644
index 3d9cbaf2ff4f..000000000000
--- a/lib/libc/sys/aio_cancel.2
+++ /dev/null
@@ -1,117 +0,0 @@
-.\" Copyright (c) 1999 Softweyr LLC.
-.\" 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 Softweyr LLC 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 Softweyr LLC 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 19, 2000
-.Dt AIO_CANCEL 2
-.Os
-.Sh NAME
-.Nm aio_cancel
-.Nd cancel an outstanding asynchronous I/O operation (REALTIME)
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fn aio_cancel "int fildes" "struct aiocb *iocb"
-.Sh DESCRIPTION
-The
-.Fn aio_cancel
-system call cancels the outstanding asynchronous
-I/O request for the file descriptor specified in
-.Fa fildes .
-If
-.Fa iocb
-is specified, only that specific asynchronous I/O request is cancelled.
-.Pp
-Normal asynchronous notification occurs for cancelled requests.
-Requests complete with an error result of
-.Er ECANCELED .
-.Sh RESTRICTIONS
-The
-.Fn aio_cancel
-system call does not cancel asynchronous I/O requests for raw disk devices.
-The
-.Fn aio_cancel
-system call will always return
-.Dv AIO_NOTCANCELED
-for file descriptors associated with raw disk devices.
-.Sh RETURN VALUES
-The
-.Fn aio_cancel
-system call returns -1 to indicate an error, or one of the following:
-.Bl -tag -width Dv
-.It Bq Dv AIO_CANCELED
-All outstanding requests meeting the criteria specified were cancelled.
-.It Bq Dv AIO_NOTCANCELED
-Some requests were not cancelled, status for the requests should be
-checked with
-.Xr aio_error 2 .
-.It Bq Dv AIO_ALLDONE
-All of the requests meeting the criteria have finished.
-.El
-.Sh ERRORS
-An error return from
-.Fn aio_cancel
-indicates:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fildes
-argument
-is an invalid file descriptor.
-.El
-.Sh SEE ALSO
-.Xr aio_error 2 ,
-.Xr aio_read 2 ,
-.Xr aio_return 2 ,
-.Xr aio_suspend 2 ,
-.Xr aio_write 2 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_cancel
-system call is expected to conform to the
-.St -p1003.1
-standard.
-.Sh HISTORY
-The
-.Fn aio_cancel
-system call first appeared in
-.Fx 3.0 .
-The first functional implementation of
-.Fn aio_cancel
-appeared in
-.Fx 4.0 .
-.Sh AUTHORS
-.An -nosplit
-This
-manual page was originally written by
-.An Wes Peters Aq Mt wes@softweyr.com .
-.An Christopher M Sedore Aq Mt cmsedore@maxwell.syr.edu
-updated it when
-.Fn aio_cancel
-was implemented for
-.Fx 4.0 .
diff --git a/lib/libc/sys/aio_error.2 b/lib/libc/sys/aio_error.2
deleted file mode 100644
index 1ec6505a64aa..000000000000
--- a/lib/libc/sys/aio_error.2
+++ /dev/null
@@ -1,105 +0,0 @@
-.\" Copyright (c) 1999 Softweyr LLC.
-.\" 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 Softweyr LLC 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 Softweyr LLC 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 2, 2021
-.Dt AIO_ERROR 2
-.Os
-.Sh NAME
-.Nm aio_error
-.Nd retrieve error status of asynchronous I/O operation (REALTIME)
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fn aio_error "const struct aiocb *iocb"
-.Sh DESCRIPTION
-The
-.Fn aio_error
-system call returns the error status of the asynchronous I/O request
-associated with the structure pointed to by
-.Fa iocb .
-.Sh RETURN VALUES
-If the asynchronous I/O request has completed successfully,
-.Fn aio_error
-returns 0.
-If the request has not yet completed,
-.Er EINPROGRESS
-is returned.
-If the request has completed unsuccessfully the error
-status is returned as described in
-.Xr read 2 ,
-.Xr readv 2 ,
-.Xr write 2 ,
-.Xr writev 2 ,
-or
-.Xr fsync 2 .
-On failure,
-.Fn aio_error
-returns
-.Dv -1
-and sets
-.Dv errno
-to indicate the error condition.
-.Sh ERRORS
-The
-.Fn aio_error
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa iocb
-argument
-does not reference an outstanding asynchronous I/O request.
-.El
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_read 2 ,
-.Xr aio_readv 2 ,
-.Xr aio_return 2 ,
-.Xr aio_suspend 2 ,
-.Xr aio_write 2 ,
-.Xr aio_writev 2 ,
-.Xr fsync 2 ,
-.Xr read 2 ,
-.Xr write 2 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_error
-system call
-is expected to conform to the
-.St -p1003.1
-standard.
-.Sh HISTORY
-The
-.Fn aio_error
-system call first appeared in
-.Fx 3.0 .
-.Sh AUTHORS
-This
-manual page was written by
-.An Wes Peters Aq Mt wes@softweyr.com .
diff --git a/lib/libc/sys/aio_fsync.2 b/lib/libc/sys/aio_fsync.2
deleted file mode 100644
index 0ce47edfb33f..000000000000
--- a/lib/libc/sys/aio_fsync.2
+++ /dev/null
@@ -1,188 +0,0 @@
-.\" Copyright (c) 2013 Sergey Kandaurov
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 6, 2021
-.Dt AIO_FSYNC 2
-.Os
-.Sh NAME
-.Nm aio_fsync
-.Nd asynchronous file synchronization (REALTIME)
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fn aio_fsync "int op" "struct aiocb *iocb"
-.Sh DESCRIPTION
-The
-.Fn aio_fsync
-system call allows the calling process to move all modified data
-associated with the descriptor
-.Fa iocb->aio_fildes
-to a permanent storage device.
-The call returns immediately after the synchronization request has been
-enqueued to the descriptor; the synchronization may or may not have
-completed at the time the call returns.
-.Pp
-The
-.Fa op
-argument can be set to
-.Dv O_SYNC
-to cause all currently queued I/O operations to be completed
-as if by a call to
-.Xr fsync 2 ,
-or
-.Dv O_DSYNC
-for the behavior of
-.Xr fdatasync 2 .
-.Pp
-If _POSIX_PRIORITIZED_IO is defined, and the descriptor supports it,
-then the enqueued operation is submitted at a priority equal to that
-of the calling process minus
-.Fa iocb->aio_reqprio .
-.Pp
-The
-.Fa iocb
-pointer may be subsequently used as an argument to
-.Fn aio_return
-and
-.Fn aio_error
-in order to determine return or error status for the enqueued operation
-while it is in progress.
-.Pp
-If the request could not be enqueued (generally due to invalid arguments),
-the call returns without having enqueued the request.
-.Pp
-The
-.Fa iocb->aio_sigevent
-structure can be used to request notification of the operation's
-completion as described in
-.Xr aio 4 .
-.Sh RESTRICTIONS
-The Asynchronous I/O Control Block structure pointed to by
-.Fa iocb
-must remain valid until the
-operation has completed.
-.Pp
-The asynchronous I/O control buffer
-.Fa iocb
-should be zeroed before the
-.Fn aio_fsync
-call to avoid passing bogus context information to the kernel.
-.Pp
-Modification of the Asynchronous I/O Control Block structure is not allowed
-while the request is queued.
-.Sh RETURN VALUES
-.Rv -std aio_fsync
-.Sh ERRORS
-The
-.Fn aio_fsync
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The request was not queued because of system resource limitations.
-.It Bq Er EINVAL
-The asynchronous notification method in
-.Fa iocb->aio_sigevent.sigev_notify
-is invalid or not supported.
-.It Bq Er EOPNOTSUPP
-Asynchronous file synchronization operations on the file descriptor
-.Fa iocb->aio_fildes
-are unsafe and unsafe asynchronous I/O operations are disabled.
-.It Bq Er EINVAL
-A value of the
-.Fa op
-argument is not set to
-.Dv O_SYNC
-or
-.Dv O_DSYNC .
-.El
-.Pp
-The following conditions may be synchronously detected when the
-.Fn aio_fsync
-system call is made, or asynchronously, at any time thereafter.
-If they are detected at call time,
-.Fn aio_fsync
-returns -1 and sets
-.Va errno
-appropriately; otherwise the
-.Fn aio_return
-system call must be called, and will return -1, and
-.Fn aio_error
-must be called to determine the actual value that would have been
-returned in
-.Va errno .
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa iocb->aio_fildes
-argument
-is not a valid descriptor.
-.It Bq Er EINVAL
-This implementation does not support synchronized I/O for this file.
-.El
-.Pp
-If the request is successfully enqueued, but subsequently cancelled
-or an error occurs, the value returned by the
-.Fn aio_return
-system call is per the
-.Xr read 2
-and
-.Xr write 2
-system calls, and the value returned by the
-.Fn aio_error
-system call is one of the error returns from the
-.Xr read 2
-or
-.Xr write 2
-system calls.
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_error 2 ,
-.Xr aio_read 2 ,
-.Xr aio_return 2 ,
-.Xr aio_suspend 2 ,
-.Xr aio_waitcomplete 2 ,
-.Xr aio_write 2 ,
-.Xr fsync 2 ,
-.Xr sigevent 3 ,
-.Xr siginfo 3 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_fsync
-system call is expected to conform to the
-.St -p1003.1
-standard.
-.Sh HISTORY
-The
-.Fn aio_fsync
-system call first appeared in
-.Fx 7.0 .
-The
-.Dv O_DSYNC
-option appeared in
-.Fx 13.0 .
diff --git a/lib/libc/sys/aio_mlock.2 b/lib/libc/sys/aio_mlock.2
deleted file mode 100644
index f7f4a2781a91..000000000000
--- a/lib/libc/sys/aio_mlock.2
+++ /dev/null
@@ -1,138 +0,0 @@
-.\" Copyright (c) 2013 Gleb Smirnoff <glebius@FreeBSD.org>
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 19, 2016
-.Dt AIO_MLOCK 2
-.Os
-.Sh NAME
-.Nm aio_mlock
-.Nd asynchronous
-.Xr mlock 2
-operation
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fn aio_mlock "struct aiocb *iocb"
-.Sh DESCRIPTION
-The
-.Fn aio_mlock
-system call allows the calling process to lock into memory the
-physical pages associated with the virtual address range starting at
-.Fa iocb->aio_buf
-for
-.Fa iocb->aio_nbytes
-bytes.
-The call returns immediately after the locking request has
-been enqueued; the operation may or may not have completed at the time
-the call returns.
-.Pp
-The
-.Fa iocb
-pointer may be subsequently used as an argument to
-.Fn aio_return
-and
-.Fn aio_error
-in order to determine return or error status for the enqueued operation
-while it is in progress.
-.Pp
-If the request could not be enqueued (generally due to
-.Xr aio 4
-limits),
-then the call returns without having enqueued the request.
-.Pp
-The
-.Fa iocb->aio_sigevent
-structure can be used to request notification of the operation's
-completion as described in
-.Xr aio 4 .
-.Sh RESTRICTIONS
-The Asynchronous I/O Control Block structure pointed to by
-.Fa iocb
-and the buffer that the
-.Fa iocb->aio_buf
-member of that structure references must remain valid until the
-operation has completed.
-.Pp
-The asynchronous I/O control buffer
-.Fa iocb
-should be zeroed before the
-.Fn aio_mlock
-call to avoid passing bogus context information to the kernel.
-.Pp
-Modifications of the Asynchronous I/O Control Block structure or the
-memory mapping described by the virtual address range are not allowed
-while the request is queued.
-.Sh RETURN VALUES
-.Rv -std aio_mlock
-.Sh ERRORS
-The
-.Fn aio_mlock
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The request was not queued because of system resource limitations.
-.It Bq Er EINVAL
-The asynchronous notification method in
-.Fa iocb->aio_sigevent.sigev_notify
-is invalid or not supported.
-.El
-.Pp
-If the request is successfully enqueued, but subsequently cancelled
-or an error occurs, the value returned by the
-.Fn aio_return
-system call is per the
-.Xr mlock 2
-system call, and the value returned by the
-.Fn aio_error
-system call is one of the error returns from the
-.Xr mlock 2
-system call, or
-.Er ECANCELED
-if the request was explicitly cancelled via a call to
-.Fn aio_cancel .
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_error 2 ,
-.Xr aio_return 2 ,
-.Xr mlock 2 ,
-.Xr sigevent 3 ,
-.Xr aio 4
-.Sh PORTABILITY
-The
-.Fn aio_mlock
-system call is a
-.Fx
-extension, and should not be used in portable code.
-.Sh HISTORY
-The
-.Fn aio_mlock
-system call first appeared in
-.Fx 10.0 .
-.Sh AUTHORS
-The system call was introduced by
-.An Gleb Smirnoff Aq Mt glebius@FreeBSD.org .
diff --git a/lib/libc/sys/aio_read.2 b/lib/libc/sys/aio_read.2
deleted file mode 100644
index 0327ef1f747b..000000000000
--- a/lib/libc/sys/aio_read.2
+++ /dev/null
@@ -1,263 +0,0 @@
-.\" Copyright (c) 1998 Terry Lambert
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 2, 2021
-.Dt AIO_READ 2
-.Os
-.Sh NAME
-.Nm aio_read ,
-.Nm aio_readv
-.Nd asynchronous read from a file (REALTIME)
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fn aio_read "struct aiocb *iocb"
-.In sys/uio.h
-.Ft int
-.Fn aio_readv "struct aiocb *iocb"
-.Sh DESCRIPTION
-The
-.Fn aio_read
-and
-.Fn aio_readv
-system calls allow the calling process to read
-from the descriptor
-.Fa iocb->aio_fildes
-beginning at the offset
-.Fa iocb->aio_offset .
-.Fn aio_read
-will read
-.Fa iocb->aio_nbytes
-from the buffer pointed to by
-.Fa iocb->aio_buf ,
-whereas
-.Fn aio_readv
-reads the data into the
-.Fa iocb->aio_iovcnt
-buffers specified by the members of the
-.Fa iocb->aio_iov
-array.
-Both syscalls return immediately after the read request has
-been enqueued to the descriptor; the read may or may not have
-completed at the time the call returns.
-.Pp
-For
-.Fn aio_readv
-the
-.Fa iovec
-structure is defined in
-.Xr readv 2 .
-.Pp
-If _POSIX_PRIORITIZED_IO is defined, and the descriptor supports it,
-then the enqueued operation is submitted at a priority equal to that
-of the calling process minus
-.Fa iocb->aio_reqprio .
-.Pp
-The
-.Fa iocb->aio_lio_opcode
-argument
-is ignored by the
-.Fn aio_read
-and
-.Fn aio_readv
-system calls.
-.Pp
-The
-.Fa iocb
-pointer may be subsequently used as an argument to
-.Fn aio_return
-and
-.Fn aio_error
-in order to determine return or error status for the enqueued operation
-while it is in progress.
-.Pp
-If the request could not be enqueued (generally due to invalid arguments),
-then the call returns without having enqueued the request.
-.Pp
-If the request is successfully enqueued, the value of
-.Fa iocb->aio_offset
-can be modified during the request as context, so this value must
-not be referenced after the request is enqueued.
-.Pp
-The
-.Fa iocb->aio_sigevent
-structure can be used to request notification of the operation's
-completion as described in
-.Xr aio 4 .
-.Sh RESTRICTIONS
-The Asynchronous I/O Control Block structure pointed to by
-.Fa iocb
-and the buffer that the
-.Fa iocb->aio_buf
-member of that structure references must remain valid until the
-operation has completed.
-.Pp
-The asynchronous I/O control buffer
-.Fa iocb
-should be zeroed before the
-.Fn aio_read
-call to avoid passing bogus context information to the kernel.
-.Pp
-Modifications of the Asynchronous I/O Control Block structure or the
-buffer contents are not allowed while the request is queued.
-.Pp
-If the file offset in
-.Fa iocb->aio_offset
-is past the offset maximum for
-.Fa iocb->aio_fildes ,
-no I/O will occur.
-.Sh RETURN VALUES
-.Rv -std aio_read aio_readv
-.Sh DIAGNOSTICS
-None.
-.Sh ERRORS
-The
-.Fn aio_read
-and
-.Fn aio_readv
-system calls will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The request was not queued because of system resource limitations.
-.It Bq Er EFAULT
-Part of
-.Fa aio_iov
-points outside the process's allocated address space.
-.It Bq Er EINVAL
-The asynchronous notification method in
-.Fa iocb->aio_sigevent.sigev_notify
-is invalid or not supported.
-.It Bq Er EOPNOTSUPP
-Asynchronous read operations on the file descriptor
-.Fa iocb->aio_fildes
-are unsafe and unsafe asynchronous I/O operations are disabled.
-.El
-.Pp
-The following conditions may be synchronously detected when the
-.Fn aio_read
-or
-.Fn aio_readv
-system call is made, or asynchronously, at any time thereafter.
-If they
-are detected at call time,
-.Fn aio_read
-or
-.Fn aio_readv
-returns -1 and sets
-.Va errno
-appropriately; otherwise the
-.Fn aio_return
-system call must be called, and will return -1, and
-.Fn aio_error
-must be called to determine the actual value that would have been
-returned in
-.Va errno .
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa iocb->aio_fildes
-argument
-is invalid.
-.It Bq Er EINVAL
-The offset
-.Fa iocb->aio_offset
-is not valid, the priority specified by
-.Fa iocb->aio_reqprio
-is not a valid priority, or the number of bytes specified by
-.Fa iocb->aio_nbytes
-is not valid.
-.It Bq Er EOVERFLOW
-The file is a regular file,
-.Fa iocb->aio_nbytes
-is greater than zero, the starting offset in
-.Fa iocb->aio_offset
-is before the end of the file, but is at or beyond the
-.Fa iocb->aio_fildes
-offset maximum.
-.El
-.Pp
-If the request is successfully enqueued, but subsequently cancelled
-or an error occurs, the value returned by the
-.Fn aio_return
-system call is per the
-.Xr read 2
-system call, and the value returned by the
-.Fn aio_error
-system call is either one of the error returns from the
-.Xr read 2
-system call, or one of:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa iocb->aio_fildes
-argument
-is invalid for reading.
-.It Bq Er ECANCELED
-The request was explicitly cancelled via a call to
-.Fn aio_cancel .
-.It Bq Er EINVAL
-The offset
-.Fa iocb->aio_offset
-would be invalid.
-.El
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_error 2 ,
-.Xr aio_return 2 ,
-.Xr aio_suspend 2 ,
-.Xr aio_waitcomplete 2 ,
-.Xr aio_write 2 ,
-.Xr sigevent 3 ,
-.Xr siginfo 3 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_read
-system call is expected to conform to the
-.St -p1003.1
-standard.
-The
-.Fn aio_readv
-system call is a FreeBSD extension, and should not be used in portable code.
-.Sh HISTORY
-The
-.Fn aio_read
-system call first appeared in
-.Fx 3.0 .
-The
-.Fn aio_readv
-system call first appeared in
-.Fx 13.0 .
-.Sh AUTHORS
-This
-manual page was written by
-.An Terry Lambert Aq Mt terry@whistle.com .
-.Sh BUGS
-Invalid information in
-.Fa iocb->_aiocb_private
-may confuse the kernel.
diff --git a/lib/libc/sys/aio_return.2 b/lib/libc/sys/aio_return.2
deleted file mode 100644
index aebe978fe140..000000000000
--- a/lib/libc/sys/aio_return.2
+++ /dev/null
@@ -1,110 +0,0 @@
-.\" Copyright (c) 1999 Softweyr LLC.
-.\" 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 Softweyr LLC 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 Softweyr LLC 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 11, 2021
-.Dt AIO_RETURN 2
-.Os
-.Sh NAME
-.Nm aio_return
-.Nd retrieve return status of asynchronous I/O operation (REALTIME)
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft ssize_t
-.Fn aio_return "struct aiocb *iocb"
-.Sh DESCRIPTION
-The
-.Fn aio_return
-system call returns the final status of the asynchronous I/O request
-associated with the structure pointed to by
-.Fa iocb .
-.Pp
-The
-.Fn aio_return
-system call
-should only be called once, to obtain the final status of an asynchronous
-I/O operation once it has completed
-.Xr ( aio_error 2
-returns something other than
-.Er EINPROGRESS ) .
-.Sh RETURN VALUES
-If the asynchronous I/O request has completed, the status is returned
-as described in
-.Xr read 2 ,
-.Xr readv 2 ,
-.Xr write 2 ,
-.Xr writev 2 ,
-or
-.Xr fsync 2 .
-Otherwise,
-.Fn aio_return
-returns \-1 and sets
-.Va errno
-to indicate the error condition.
-.Sh ERRORS
-The
-.Fn aio_return
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa iocb
-argument
-does not reference a completed asynchronous I/O request.
-.It Bq Er EINVAL
-The I/O operation was submitted with
-.Fn lio_listio ,
-and the value of the
-.Fa aio_lio_opcode
-is invalid.
-.El
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_error 2 ,
-.Xr aio_suspend 2 ,
-.Xr aio_waitcomplete 2 ,
-.Xr aio_write 2 ,
-.Xr fsync 2 ,
-.Xr read 2 ,
-.Xr write 2 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_return
-system call
-is expected to conform to the
-.St -p1003.1
-standard.
-.Sh HISTORY
-The
-.Fn aio_return
-system call first appeared in
-.Fx 3.0 .
-.Sh AUTHORS
-This
-manual page was written by
-.An Wes Peters Aq Mt wes@softweyr.com .
diff --git a/lib/libc/sys/aio_suspend.2 b/lib/libc/sys/aio_suspend.2
deleted file mode 100644
index b92e6866e8a4..000000000000
--- a/lib/libc/sys/aio_suspend.2
+++ /dev/null
@@ -1,117 +0,0 @@
-.\" Copyright (c) 1999 Softweyr LLC.
-.\" 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 Softweyr LLC 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 Softweyr LLC 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 23, 2017
-.Dt AIO_SUSPEND 2
-.Os
-.Sh NAME
-.Nm aio_suspend
-.Nd suspend until asynchronous I/O operations or timeout complete (REALTIME)
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fn aio_suspend "const struct aiocb *const iocbs[]" "int niocb" "const struct timespec *timeout"
-.Sh DESCRIPTION
-The
-.Fn aio_suspend
-system call suspends the calling process until at least one of the
-specified asynchronous I/O requests have completed, a signal is
-delivered, or the
-.Fa timeout
-has passed.
-.Pp
-The
-.Fa iocbs
-argument
-is an array of
-.Fa niocb
-pointers to asynchronous I/O requests.
-Array members containing
-null pointers will be silently ignored.
-.Pp
-If
-.Fa timeout
-is not a null pointer, it specifies a maximum interval to suspend.
-If
-.Fa timeout
-is a null pointer, the suspend blocks indefinitely.
-To effect a
-poll, the
-.Fa timeout
-should point to a zero-value timespec structure.
-.Sh RETURN VALUES
-If one or more of the specified asynchronous I/O requests have
-completed,
-.Fn aio_suspend
-returns 0.
-Otherwise it returns -1 and sets
-.Va errno
-to indicate the error, as enumerated below.
-.Sh ERRORS
-The
-.Fn aio_suspend
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-the
-.Fa timeout
-expired before any I/O requests completed.
-.It Bq Er EINVAL
-The
-.Fa iocbs
-argument
-contains more asynchronous I/O requests than the
-.Va vfs.aio.max_aio_queue_per_proc
-.Xr sysctl 8
-variable, or at least one of the requests is not valid.
-.It Bq Er EINTR
-the suspend was interrupted by a signal.
-.El
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_error 2 ,
-.Xr aio_return 2 ,
-.Xr aio_waitcomplete 2 ,
-.Xr aio_write 2 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_suspend
-system call
-is expected to conform to the
-.St -p1003.1
-standard.
-.Sh HISTORY
-The
-.Fn aio_suspend
-system call first appeared in
-.Fx 3.0 .
-.Sh AUTHORS
-This
-manual page was written by
-.An Wes Peters Aq Mt wes@softweyr.com .
diff --git a/lib/libc/sys/aio_suspend.c b/lib/libc/sys/aio_suspend.c
index 020edf8a74fa..592cb5b0e1d7 100644
--- a/lib/libc/sys/aio_suspend.c
+++ b/lib/libc/sys/aio_suspend.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -44,8 +40,5 @@ 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));
+ return (INTERPOS_SYS(aio_suspend, iocbs, niocb, timeout));
}
diff --git a/lib/libc/sys/aio_waitcomplete.2 b/lib/libc/sys/aio_waitcomplete.2
deleted file mode 100644
index 66e7208d7b48..000000000000
--- a/lib/libc/sys/aio_waitcomplete.2
+++ /dev/null
@@ -1,137 +0,0 @@
-.\" Copyright (c) 1999 Christopher M Sedore.
-.\" 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 ``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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 21, 2016
-.Dt AIO_WAITCOMPLETE 2
-.Os
-.Sh NAME
-.Nm aio_waitcomplete
-.Nd wait for the next completion of an aio request
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft ssize_t
-.Fn aio_waitcomplete "struct aiocb **iocbp" "struct timespec *timeout"
-.Sh DESCRIPTION
-The
-.Fn aio_waitcomplete
-system call waits for completion of an asynchronous I/O request.
-Upon completion,
-.Fn aio_waitcomplete
-returns the result of the function and sets
-.Fa iocbp
-to point to the structure associated with the original request.
-If an asynchronous I/O request is completed before
-.Fn aio_waitcomplete
-is called, it returns immediately with the completed request.
-.Pp
-If
-.Fa timeout
-is a non-NULL pointer, it specifies a maximum interval to wait for a
-asynchronous I/O request to complete.
-If
-.Fa timeout
-is a NULL pointer,
-.Fn aio_waitcomplete
-waits indefinitely.
-To effect a poll, the
-.Fa timeout
-argument should be non-NULL, pointing to a zero-valued timeval structure.
-.Pp
-The
-.Fn aio_waitcomplete
-system call also serves the function of
-.Fn aio_return ,
-thus
-.Fn aio_return
-should not be called for the control block returned in
-.Fa iocbp .
-.Sh RETURN VALUES
-If an asynchronous I/O request has completed,
-.Fa iocbp
-is set to point to the control block passed with the original request,
-and the status is returned as described in
-.Xr read 2 ,
-.Xr write 2 ,
-or
-.Xr fsync 2 .
-On failure,
-.Fn aio_waitcomplete
-returns
-.Dv -1 ,
-sets iocbp to
-.Dv NULL
-and sets
-.Va errno
-to indicate the error condition.
-.Sh ERRORS
-The
-.Fn aio_waitcomplete
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The specified time limit is invalid.
-.It Bq Er EAGAIN
-The process has not yet called
-.Fn aio_read
-or
-.Fn aio_write .
-.It Bq Er EINTR
-A signal was delivered before the timeout expired and before any
-asynchronous I/O requests completed.
-.It Bq Er EWOULDBLOCK
-.It Bq Er EINPROGRESS
-The specified time limit expired before any asynchronous I/O requests
-completed.
-.El
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_error 2 ,
-.Xr aio_read 2 ,
-.Xr aio_return 2 ,
-.Xr aio_suspend 2 ,
-.Xr aio_write 2 ,
-.Xr fsync 2 ,
-.Xr read 2 ,
-.Xr write 2 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_waitcomplete
-system call is a
-.Fx Ns -specific
-extension.
-.Sh HISTORY
-The
-.Fn aio_waitcomplete
-system call first appeared in
-.Fx 4.0 .
-.Sh AUTHORS
-The
-.Fn aio_waitcomplete
-system call and this manual page were written by
-.An Christopher M Sedore Aq Mt cmsedore@maxwell.syr.edu .
diff --git a/lib/libc/sys/aio_write.2 b/lib/libc/sys/aio_write.2
deleted file mode 100644
index 601515b0e7b0..000000000000
--- a/lib/libc/sys/aio_write.2
+++ /dev/null
@@ -1,258 +0,0 @@
-.\" Copyright (c) 1999 Softweyr LLC.
-.\" 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 Softweyr LLC 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 Softweyr LLC 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 2, 2021
-.Dt AIO_WRITE 2
-.Os
-.Sh NAME
-.Nm aio_write ,
-.Nm aio_writev
-.Nd asynchronous write to a file (REALTIME)
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fn aio_write "struct aiocb *iocb"
-.In sys/uio.h
-.Ft int
-.Fn aio_writev "struct aiocb *iocb"
-.Sh DESCRIPTION
-The
-.Fn aio_write
-and
-.Fn aio_writev
-system calls allow the calling process to write
-to the descriptor
-.Fa iocb->aio_fildes .
-.Fn aio_write
-will write
-.Fa iocb->aio_nbytes
-from the buffer pointed to by
-.Fa iocb->aio_buf ,
-whereas
-.Fn aio_writev
-gathers the data from the
-.Fa iocb->aio_iovcnt
-buffers specified by the members of the
-.Fa iocb->aio_iov
-array.
-Both syscalls return immediately after the write request has been enqueued
-to the descriptor; the write may or may not have completed at the time
-the call returns.
-If the request could not be enqueued, generally due
-to invalid arguments, the call returns without having enqueued the
-request.
-.Pp
-For
-.Fn aio_writev
-the
-.Fa iovec
-structure is defined in
-.Xr writev 2 .
-.Pp
-If
-.Dv O_APPEND
-is set for
-.Fa iocb->aio_fildes ,
-write operations append to the file in the same order as the calls were
-made.
-If
-.Dv O_APPEND
-is not set for the file descriptor, the write operation will occur at
-the absolute position from the beginning of the file plus
-.Fa iocb->aio_offset .
-.Pp
-If
-.Dv _POSIX_PRIORITIZED_IO
-is defined, and the descriptor supports it, then the enqueued
-operation is submitted at a priority equal to that of the calling
-process minus
-.Fa iocb->aio_reqprio .
-.Pp
-The
-.Fa iocb
-pointer may be subsequently used as an argument to
-.Fn aio_return
-and
-.Fn aio_error
-in order to determine return or error status for the enqueued operation
-while it is in progress.
-.Pp
-If the request is successfully enqueued, the value of
-.Fa iocb->aio_offset
-can be modified during the request as context, so this value must not
-be referenced after the request is enqueued.
-.Pp
-The
-.Fa iocb->aio_sigevent
-structure can be used to request notification of the operation's
-completion as described in
-.Xr aio 4 .
-.Sh RESTRICTIONS
-The Asynchronous I/O Control Block structure pointed to by
-.Fa iocb
-and the buffer that the
-.Fa iocb->aio_buf
-member of that structure references must remain valid until the
-operation has completed.
-.Pp
-The asynchronous I/O control buffer
-.Fa iocb
-should be zeroed before the
-.Fn aio_write
-or
-.Fn aio_writev
-system call to avoid passing bogus context information to the kernel.
-.Pp
-Modifications of the Asynchronous I/O Control Block structure or the
-buffer contents are not allowed while the request is queued.
-.Pp
-If the file offset in
-.Fa iocb->aio_offset
-is past the offset maximum for
-.Fa iocb->aio_fildes ,
-no I/O will occur.
-.Sh RETURN VALUES
-.Rv -std aio_write aio_writev
-.Sh ERRORS
-The
-.Fn aio_write
-and
-.Fn aio_writev
-system calls will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The request was not queued because of system resource limitations.
-.It Bq Er EFAULT
-Part of
-.Fa aio_iov
-points outside the process's allocated address space.
-.It Bq Er EINVAL
-The asynchronous notification method in
-.Fa iocb->aio_sigevent.sigev_notify
-is invalid or not supported.
-.It Bq Er EOPNOTSUPP
-Asynchronous write operations on the file descriptor
-.Fa iocb->aio_fildes
-are unsafe and unsafe asynchronous I/O operations are disabled.
-.El
-.Pp
-The following conditions may be synchronously detected when the
-.Fn aio_write
-or
-.Fn aio_writev
-system call is made, or asynchronously, at any time thereafter.
-If they
-are detected at call time,
-.Fn aio_write
-or
-.Fn aio_writev
-returns -1 and sets
-.Va errno
-appropriately; otherwise the
-.Fn aio_return
-system call must be called, and will return -1, and
-.Fn aio_error
-must be called to determine the actual value that would have been
-returned in
-.Va errno .
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa iocb->aio_fildes
-argument
-is invalid, or is not opened for writing.
-.It Bq Er EINVAL
-The offset
-.Fa iocb->aio_offset
-is not valid, the priority specified by
-.Fa iocb->aio_reqprio
-is not a valid priority, or the number of bytes specified by
-.Fa iocb->aio_nbytes
-is not valid.
-.El
-.Pp
-If the request is successfully enqueued, but subsequently canceled
-or an error occurs, the value returned by the
-.Fn aio_return
-system call is per the
-.Xr write 2
-system call, and the value returned by the
-.Fn aio_error
-system call is either one of the error returns from the
-.Xr write 2
-system call, or one of:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa iocb->aio_fildes
-argument
-is invalid for writing.
-.It Bq Er ECANCELED
-The request was explicitly canceled via a call to
-.Fn aio_cancel .
-.It Bq Er EINVAL
-The offset
-.Fa iocb->aio_offset
-would be invalid.
-.El
-.Sh SEE ALSO
-.Xr aio_cancel 2 ,
-.Xr aio_error 2 ,
-.Xr aio_return 2 ,
-.Xr aio_suspend 2 ,
-.Xr aio_waitcomplete 2 ,
-.Xr sigevent 3 ,
-.Xr siginfo 3 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn aio_write
-system call
-is expected to conform to the
-.St -p1003.1
-standard.
-.Pp
-The
-.Fn aio_writev
-system call is a FreeBSD extension, and should not be used in portable code.
-.Sh HISTORY
-The
-.Fn aio_write
-system call first appeared in
-.Fx 3.0 .
-The
-.Fn aio_writev
-system call first appeared in
-.Fx 13.0 .
-.Sh AUTHORS
-This manual page was written by
-.An Wes Peters Aq Mt wes@softweyr.com .
-.Sh BUGS
-Invalid information in
-.Fa iocb->_aiocb_private
-may confuse the kernel.
diff --git a/lib/libc/sys/bind.2 b/lib/libc/sys/bind.2
deleted file mode 100644
index 05e462a17462..000000000000
--- a/lib/libc/sys/bind.2
+++ /dev/null
@@ -1,141 +0,0 @@
-.\" Copyright (c) 1983, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)bind.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt BIND 2
-.Os
-.Sh NAME
-.Nm bind
-.Nd assign a local protocol address to a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft int
-.Fn bind "int s" "const struct sockaddr *addr" "socklen_t addrlen"
-.Sh DESCRIPTION
-The
-.Fn bind
-system call
-assigns the local protocol address to a socket.
-When a socket is created
-with
-.Xr socket 2
-it exists in an address family space but has no protocol address assigned.
-The
-.Fn bind
-system call requests that
-.Fa addr
-be assigned to the socket.
-.Sh NOTES
-Binding an address in the UNIX domain creates a socket in the file
-system that must be deleted by the caller when it is no longer
-needed (using
-.Xr unlink 2 ) .
-.Pp
-The rules used in address binding vary between communication domains.
-Consult the manual entries in section 4 for detailed information.
-.Pp
-For maximum portability, you should always zero the socket address structure
-before populating it and passing it to
-.Fn bind .
-.Sh RETURN VALUES
-.Rv -std bind
-.Sh ERRORS
-The
-.Fn bind
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-Kernel resources to complete the request are
-temporarily unavailable.
-.It Bq Er EBADF
-The
-.Fa s
-argument
-is not a valid descriptor.
-.It Bq Er EINVAL
-The socket is already bound to an address, and the protocol does not support
-binding to a new address; or the socket has been shut down.
-.It Bq Er EINVAL
-The
-.Fa addrlen
-argument is not a valid length for the address family.
-.It Bq Er ENOTSOCK
-The
-.Fa s
-argument
-is not a socket.
-.It Bq Er EADDRNOTAVAIL
-The specified address is not available from the local machine.
-.It Bq Er EADDRINUSE
-The specified address is already in use.
-.It Bq Er EAFNOSUPPORT
-Addresses in the specified address family cannot be used with this socket.
-.It Bq Er EACCES
-The requested address is protected, and the current user
-has inadequate permission to access it.
-.It Bq Er EFAULT
-The
-.Fa addr
-argument is not in a valid part of the user
-address space.
-.El
-.Pp
-The following errors are specific to binding addresses in the UNIX domain.
-.Bl -tag -width EADDRNOTAVA
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A prefix component of the path name does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EIO
-An I/O error occurred while making the directory entry or allocating the inode.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EROFS
-The name would reside on a read-only file system.
-.It Bq Er EISDIR
-An empty pathname was specified.
-.El
-.Sh SEE ALSO
-.Xr connect 2 ,
-.Xr getsockname 2 ,
-.Xr listen 2 ,
-.Xr socket 2
-.Sh HISTORY
-The
-.Fn bind
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/bindat.2 b/lib/libc/sys/bindat.2
deleted file mode 100644
index 12c9b3767689..000000000000
--- a/lib/libc/sys/bindat.2
+++ /dev/null
@@ -1,108 +0,0 @@
-.\" Copyright (c) 2013 The FreeBSD Foundation
-.\" All rights reserved.
-.\"
-.\" This documentation was written by Pawel Jakub Dawidek 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 13, 2013
-.Dt BINDAT 2
-.Os
-.Sh NAME
-.Nm bindat
-.Nd assign a local protocol address to a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Pp
-.In fcntl.h
-.Ft int
-.Fn bindat "int fd" "int s" "const struct sockaddr *addr" "socklen_t addrlen"
-.Sh DESCRIPTION
-The
-.Fn bindat
-system call assigns the local protocol address to a socket.
-When passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the behavior is identical to a call to
-.Xr bind 2 .
-Otherwise,
-.Fn bindat
-works like the
-.Xr bind 2
-system call with two exceptions:
-.Pp
-.Bl -enum -offset indent -compact
-.It
-It is limited to sockets in the PF_LOCAL domain.
-.Pp
-.It
-If the file path stored in the
-.Fa sun_path
-field of the sockaddr_un structure is a relative path, it is located relative
-to the directory associated with the file descriptor
-.Fa fd .
-.El
-.Sh RETURN VALUES
-.Rv -std bindat
-.Sh ERRORS
-The
-.Fn bindat
-system call may fail with the same errors as the
-.Xr bind 2
-system call or with the following errors:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa sun_path
-field does not specify an absolute path and the
-.Fa fd
-argument is neither
-.Dv AT_FDCWD
-nor a valid file descriptor.
-.It Bq Er ENOTDIR
-The
-.Fa sun_path
-field is not an absolute path and
-.Fa fd
-is neither
-.Dv AT_FDCWD
-nor a file descriptor associated with a directory.
-.El
-.Sh SEE ALSO
-.Xr bind 2 ,
-.Xr connectat 2 ,
-.Xr socket 2 ,
-.Xr unix 4
-.Sh AUTHORS
-The
-.Nm
-was developed by
-.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net
-under sponsorship from the FreeBSD Foundation.
diff --git a/lib/libc/sys/brk.2 b/lib/libc/sys/brk.2
deleted file mode 100644
index fc10e2ccf65a..000000000000
--- a/lib/libc/sys/brk.2
+++ /dev/null
@@ -1,190 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)brk.2 8.4 (Berkeley) 5/1/95
-.\" $FreeBSD$
-.\"
-.Dd June 2, 2018
-.Dt BRK 2
-.Os
-.Sh NAME
-.Nm brk ,
-.Nm sbrk
-.Nd change data segment size
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn brk "const void *addr"
-.Ft void *
-.Fn sbrk "intptr_t incr"
-.Sh DESCRIPTION
-.Bf -symbolic
-The
-.Fn brk
-and
-.Fn sbrk
-functions are legacy interfaces from before the
-advent of modern virtual memory management.
-They are deprecated and not present on the arm64 or riscv architectures.
-The
-.Xr mmap 2
-interface should be used to allocate pages instead.
-.Ef
-.Pp
-The
-.Fn brk
-and
-.Fn sbrk
-functions are used to change the amount of memory allocated in a
-process's data segment.
-They do this by moving the location of the
-.Dq break .
-The break is the first address after the end of the process's
-uninitialized data segment (also known as the
-.Dq BSS ) .
-.Pp
-The
-.Fn brk
-function
-sets the break to
-.Fa addr .
-.Pp
-The
-.Fn sbrk
-function raises the break by
-.Fa incr
-bytes, thus allocating at least
-.Fa incr
-bytes of new memory in the data segment.
-If
-.Fa incr
-is negative,
-the break is lowered by
-.Fa incr
-bytes.
-.Sh NOTES
-While the actual process data segment size maintained by the kernel will only
-grow or shrink in page sizes, these functions allow setting the break
-to unaligned values (i.e., it may point to any address inside the last
-page of the data segment).
-.Pp
-The current value of the program break may be determined by calling
-.Fn sbrk 0 .
-See also
-.Xr end 3 .
-.Pp
-The
-.Xr getrlimit 2
-system call may be used to determine
-the maximum permissible size of the
-data segment.
-It will not be possible to set the break
-beyond
-.Dq Va etext No + Va rlim.rlim_max
-where the
-.Va rlim.rlim_max
-value is returned from a call to
-.Fn getrlimit RLIMIT_DATA &rlim .
-(See
-.Xr end 3
-for the definition of
-.Va etext ) .
-.Sh RETURN VALUES
-.Rv -std brk
-.Pp
-The
-.Fn sbrk
-function returns the prior break value if successful;
-otherwise the value
-.Po Vt "void *" Pc Ns \-1
-is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn brk
-and
-.Fn sbrk
-functions
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The requested break value was beyond the beginning of the data segment.
-.It Bq Er ENOMEM
-The data segment size limit, as set by
-.Xr setrlimit 2 ,
-was exceeded.
-.It Bq Er ENOMEM
-Insufficient space existed in the swap area
-to support the expansion of the data segment.
-.El
-.Sh SEE ALSO
-.Xr execve 2 ,
-.Xr getrlimit 2 ,
-.Xr mmap 2 ,
-.Xr end 3 ,
-.Xr free 3 ,
-.Xr malloc 3
-.Sh HISTORY
-The
-.Fn brk
-function appeared in
-.At v7 .
-.Fx 11.0
-introduced the arm64 and riscv architectures which do not support
-.Fn brk
-or
-.Fn sbrk .
-.Sh BUGS
-Mixing
-.Fn brk
-or
-.Fn sbrk
-with
-.Xr malloc 3 ,
-.Xr free 3 ,
-or similar functions will result in non-portable program behavior.
-.Pp
-Setting the break may fail due to a temporary lack of
-swap space.
-It is not possible to distinguish this
-from a failure caused by exceeding the maximum size of
-the data segment without consulting
-.Xr getrlimit 2 .
-.Pp
-.Fn sbrk
-is sometimes used to monitor heap use by calling with an argument of 0.
-The result is unlikely to reflect actual utilization in combination with an
-.Xr mmap 2
-based malloc.
-.Pp
-.Fn brk
-and
-.Fn sbrk
-are not thread-safe.
diff --git a/lib/libc/sys/brk.c b/lib/libc/sys/brk.c
index 7e50737d3e18..b3e6abdac981 100644
--- a/lib/libc/sys/brk.c
+++ b/lib/libc/sys/brk.c
@@ -1,5 +1,5 @@
/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2018 Mark Johnston <markj@FreeBSD.org>
*
@@ -25,9 +25,6 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/types.h>
#include <sys/syscall.h>
#include <errno.h>
diff --git a/lib/libc/sys/cap_enter.2 b/lib/libc/sys/cap_enter.2
deleted file mode 100644
index 428e0b0bcd09..000000000000
--- a/lib/libc/sys/cap_enter.2
+++ /dev/null
@@ -1,164 +0,0 @@
-.\"
-.\" Copyright (c) 2008-2009 Robert N. M. Watson
-.\" All rights reserved.
-.\"
-.\" This software was developed at the University of Cambridge Computer
-.\" Laboratory with support from a grant from Google, Inc.
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt CAP_ENTER 2
-.Os
-.Sh NAME
-.Nm cap_enter ,
-.Nm cap_getmode
-.Nd Capability mode system calls
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/capsicum.h
-.Ft int
-.Fn cap_enter "void"
-.Ft int
-.Fn cap_getmode "u_int *modep"
-.Sh DESCRIPTION
-.Fn cap_enter
-places the current process into capability mode, a mode of execution in which
-processes may only issue system calls operating on file descriptors or
-reading limited global system state.
-Access to global name spaces, such as file system or IPC name spaces, is
-prevented.
-If the process is already in a capability mode sandbox, the system call is a
-no-op.
-Future process descendants created with
-.Xr fork 2
-or
-.Xr pdfork 2
-will be placed in capability mode from inception.
-.Pp
-When combined with
-.Xr cap_rights_limit 2 ,
-.Xr cap_ioctls_limit 2 ,
-.Xr cap_fcntls_limit 2 ,
-.Fn cap_enter
-may be used to create kernel-enforced sandboxes in which
-appropriately-crafted applications or application components may be run.
-.Pp
-.Fn cap_getmode
-returns a flag indicating whether or not the process is in a capability mode
-sandbox.
-.Sh RUN-TIME SETTINGS
-If the
-.Dv kern.trap_enotcap
-sysctl MIB is set to a non-zero value, then for any process executing in a
-capability mode sandbox, any syscall which results in either an
-.Er ENOTCAPABLE
-or
-.Er ECAPMODE
-error also generates the synchronous
-.Dv SIGTRAP
-signal to the thread on the syscall return.
-On signal delivery, the
-.Va si_errno
-member of the
-.Fa siginfo
-signal handler parameter is set to the syscall error value,
-and the
-.Va si_code
-member is set to
-.Dv TRAP_CAP .
-.Pp
-See also the
-.Dv PROC_TRAPCAP_CTL
-and
-.Dv PROC_TRAPCAP_STATUS
-operations of the
-.Xr procctl 2
-function for similar per-process functionality.
-.Sh RETURN VALUES
-.Rv -std cap_enter cap_getmode
-.Pp
-When the process is in capability mode,
-.Fn cap_getmode
-sets the flag to a non-zero value.
-A zero value means the process is not in capability mode.
-.Sh ERRORS
-The
-.Fn cap_enter
-and
-.Fn cap_getmode
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er ENOSYS
-The kernel is compiled without:
-.Pp
-.Cd "options CAPABILITY_MODE"
-.El
-.Pp
-The
-.Fn cap_getmode
-system call may also return the following error:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-Pointer
-.Fa modep
-points outside the process's allocated address space.
-.El
-.Sh SEE ALSO
-.Xr cap_fcntls_limit 2 ,
-.Xr cap_ioctls_limit 2 ,
-.Xr cap_rights_limit 2 ,
-.Xr fexecve 2 ,
-.Xr procctl 2 ,
-.Xr cap_sandboxed 3 ,
-.Xr capsicum 4 ,
-.Xr sysctl 9
-.Sh HISTORY
-The
-.Fn cap_getmode
-system call first appeared in
-.Fx 8.3 .
-Support for capabilities and capabilities mode was developed as part of the
-.Tn TrustedBSD
-Project.
-.Sh AUTHORS
-These functions and the capability facility were created by
-.An "Robert N. M. Watson"
-at the University of Cambridge Computer Laboratory with support from a grant
-from Google, Inc.
-.Sh CAVEATS
-Creating effective process sandboxes is a tricky process that involves
-identifying the least possible rights required by the process and then
-passing those rights into the process in a safe manner.
-Consumers of
-.Fn cap_enter
-should also be aware of other inherited rights, such as access to VM
-resources, memory contents, and other process properties that should be
-considered.
-It is advisable to use
-.Xr fexecve 2
-to create a runtime environment inside the sandbox that has as few implicitly
-acquired rights as possible.
diff --git a/lib/libc/sys/cap_fcntls_limit.2 b/lib/libc/sys/cap_fcntls_limit.2
deleted file mode 100644
index b09aebbe78f0..000000000000
--- a/lib/libc/sys/cap_fcntls_limit.2
+++ /dev/null
@@ -1,132 +0,0 @@
-.\"
-.\" Copyright (c) 2012 The FreeBSD Foundation
-.\" All rights reserved.
-.\"
-.\" This documentation was written by Pawel Jakub Dawidek under sponsorship
-.\" 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, 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt CAP_FCNTLS_LIMIT 2
-.Os
-.Sh NAME
-.Nm cap_fcntls_limit ,
-.Nm cap_fcntls_get
-.Nd manage allowed fcntl commands
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/capsicum.h
-.Ft int
-.Fn cap_fcntls_limit "int fd" "uint32_t fcntlrights"
-.Ft int
-.Fn cap_fcntls_get "int fd" "uint32_t *fcntlrightsp"
-.Sh DESCRIPTION
-If a file descriptor is granted the
-.Dv CAP_FCNTL
-capability right, the list of allowed
-.Xr fcntl 2
-commands can be selectively reduced (but never expanded) with the
-.Fn cap_fcntls_limit
-system call.
-.Pp
-A bitmask of allowed fcntls commands for a given file descriptor can be obtained
-with the
-.Fn cap_fcntls_get
-system call.
-.Sh FLAGS
-The following flags may be specified in the
-.Fa fcntlrights
-argument or returned in the
-.Fa fcntlrightsp
-argument:
-.Bl -tag -width CAP_FCNTL_GETOWN
-.It Dv CAP_FCNTL_GETFL
-Permit
-.Dv F_GETFL
-command.
-.It Dv CAP_FCNTL_SETFL
-Permit
-.Dv F_SETFL
-command.
-.It Dv CAP_FCNTL_GETOWN
-Permit
-.Dv F_GETOWN
-command.
-.It Dv CAP_FCNTL_SETOWN
-Permit
-.Dv F_SETOWN
-command.
-.El
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-.Fn cap_fcntls_limit
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid descriptor.
-.It Bq Er EINVAL
-An invalid flag has been passed in
-.Fa fcntlrights .
-.It Bq Er ENOTCAPABLE
-.Fa fcntlrights
-would expand the list of allowed
-.Xr fcntl 2
-commands.
-.El
-.Pp
-.Fn cap_fcntls_get
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid descriptor.
-.It Bq Er EFAULT
-The
-.Fa fcntlrightsp
-argument points at an invalid address.
-.El
-.Sh SEE ALSO
-.Xr cap_ioctls_limit 2 ,
-.Xr cap_rights_limit 2 ,
-.Xr fcntl 2
-.Sh HISTORY
-The
-.Fn cap_fcntls_get
-and
-.Fn cap_fcntls_limit
-system calls first appeared in
-.Fx 8.3 .
-Support for capabilities and capabilities mode was developed as part of the
-.Tn TrustedBSD
-Project.
-.Sh AUTHORS
-This function was created by
-.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net
-under sponsorship of the FreeBSD Foundation.
diff --git a/lib/libc/sys/cap_ioctls_limit.2 b/lib/libc/sys/cap_ioctls_limit.2
deleted file mode 100644
index 0cf5ea8ca038..000000000000
--- a/lib/libc/sys/cap_ioctls_limit.2
+++ /dev/null
@@ -1,165 +0,0 @@
-.\"
-.\" Copyright (c) 2012 The FreeBSD Foundation
-.\" All rights reserved.
-.\"
-.\" This documentation was written by Pawel Jakub Dawidek under sponsorship
-.\" 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, 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt CAP_IOCTLS_LIMIT 2
-.Os
-.Sh NAME
-.Nm cap_ioctls_limit ,
-.Nm cap_ioctls_get
-.Nd manage allowed ioctl commands
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/capsicum.h
-.Ft int
-.Fn cap_ioctls_limit "int fd" "const unsigned long *cmds" "size_t ncmds"
-.Ft ssize_t
-.Fn cap_ioctls_get "int fd" "unsigned long *cmds" "size_t maxcmds"
-.Sh DESCRIPTION
-If a file descriptor is granted the
-.Dv CAP_IOCTL
-capability right, the list of allowed
-.Xr ioctl 2
-commands can be selectively reduced (but never expanded) with the
-.Fn cap_ioctls_limit
-system call.
-The
-.Fa cmds
-argument is an array of
-.Xr ioctl 2
-commands and the
-.Fa ncmds
-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
-.Fn cap_ioctls_get
-system call.
-The
-.Fa cmds
-argument points at memory that can hold up to
-.Fa maxcmds
-values.
-The function populates the provided buffer with up to
-.Fa maxcmds
-elements, but always returns the total number of ioctl commands allowed for the
-given file descriptor.
-The total number of ioctls commands for the given file descriptor can be
-obtained by passing
-.Dv NULL as the
-.Fa cmds
-argument and
-.Va 0
-as the
-.Fa maxcmds
-argument.
-If all ioctl commands are allowed
-.Dv ( CAP_IOCTL
-capability right is assigned to the file descriptor and the
-.Fn cap_ioctls_limit
-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
-.Fa cmds
-argument.
-.Sh RETURN VALUES
-.Rv -std cap_ioctls_limit
-.Pp
-The
-.Fn cap_ioctls_get
-function, if successful, returns the total number of allowed ioctl commands or
-the value
-.Dv CAP_IOCTLS_ALL
-if all ioctls commands are allowed.
-On failure the value
-.Va -1
-is returned and the global variable errno is set to indicate the error.
-.Sh ERRORS
-.Fn cap_ioctls_limit
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid descriptor.
-.It Bq Er EFAULT
-The
-.Fa cmds
-argument points at an invalid address.
-.It Bq Er EINVAL
-The
-.Fa ncmds
-argument is greater than
-.Va 256 .
-.It Bq Er ENOTCAPABLE
-.Fa cmds
-would expand the list of allowed
-.Xr ioctl 2
-commands.
-.El
-.Pp
-.Fn cap_ioctls_get
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid descriptor.
-.It Bq Er EFAULT
-The
-.Fa cmds
-argument points at invalid address.
-.El
-.Sh SEE ALSO
-.Xr cap_fcntls_limit 2 ,
-.Xr cap_rights_limit 2 ,
-.Xr ioctl 2
-.Sh HISTORY
-The
-.Fn cap_ioctls_get
-and
-.Fn cap_ioctls_limit
-system calls first appeared in
-.Fx 8.3 .
-Support for capabilities and capabilities mode was developed as part of the
-.Tn TrustedBSD
-Project.
-.Sh AUTHORS
-This function was created by
-.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net
-under sponsorship of the FreeBSD Foundation.
diff --git a/lib/libc/sys/cap_rights_limit.2 b/lib/libc/sys/cap_rights_limit.2
deleted file mode 100644
index 37f311143a28..000000000000
--- a/lib/libc/sys/cap_rights_limit.2
+++ /dev/null
@@ -1,161 +0,0 @@
-.\"
-.\" Copyright (c) 2008-2010 Robert N. M. Watson
-.\" Copyright (c) 2012-2013 The FreeBSD Foundation
-.\" All rights reserved.
-.\"
-.\" This software was developed at the University of Cambridge Computer
-.\" Laboratory with support from a grant from Google, Inc.
-.\"
-.\" Portions of this documentation were written by Pawel Jakub Dawidek
-.\" 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, 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt CAP_RIGHTS_LIMIT 2
-.Os
-.Sh NAME
-.Nm cap_rights_limit
-.Nd limit capability rights
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/capsicum.h
-.Ft int
-.Fn cap_rights_limit "int fd" "const cap_rights_t *rights"
-.Sh DESCRIPTION
-When a file descriptor is created by a function such as
-.Xr accept 2 ,
-.Xr accept4 2 ,
-.Xr fhopen 2 ,
-.Xr kqueue 2 ,
-.Xr mq_open 2 ,
-.Xr open 2 ,
-.Xr openat 2 ,
-.Xr pdfork 2 ,
-.Xr pipe 2 ,
-.Xr shm_open 2 ,
-.Xr socket 2
-or
-.Xr socketpair 2 ,
-it is assigned all capability rights.
-Those rights can be reduced (but never expanded) by using the
-.Fn cap_rights_limit
-system call.
-Once capability rights are reduced, operations on the file descriptor will be
-limited to those permitted by
-.Fa rights .
-.Pp
-The
-.Fa rights
-argument should be prepared using
-.Xr cap_rights_init 3
-family of functions.
-.Pp
-Capability rights assigned to a file descriptor can be obtained with the
-.Xr cap_rights_get 3
-function.
-.Pp
-The complete list of the capability rights can be found in the
-.Xr rights 4
-manual page.
-.Sh RETURN VALUES
-.Rv -std
-.Sh EXAMPLES
-The following example demonstrates how to limit file descriptor capability
-rights to allow reading only.
-.Bd -literal
-cap_rights_t setrights;
-char buf[1];
-int fd;
-
-fd = open("/tmp/foo", O_RDWR);
-if (fd < 0)
- err(1, "open() failed");
-
-if (cap_enter() < 0)
- err(1, "cap_enter() failed");
-
-cap_rights_init(&setrights, CAP_READ);
-if (cap_rights_limit(fd, &setrights) < 0)
- err(1, "cap_rights_limit() failed");
-
-buf[0] = 'X';
-
-if (write(fd, buf, sizeof(buf)) > 0)
- errx(1, "write() succeeded!");
-
-if (read(fd, buf, sizeof(buf)) < 0)
- err(1, "read() failed");
-.Ed
-.Sh ERRORS
-.Fn cap_rights_limit
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid active descriptor.
-.It Bq Er EINVAL
-An invalid right has been requested in
-.Fa rights .
-.It Bq Er ENOTCAPABLE
-The
-.Fa rights
-argument contains capability rights not present for the given file descriptor.
-Capability rights list can only be reduced, never expanded.
-.El
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr accept4 2 ,
-.Xr cap_enter 2 ,
-.Xr fhopen 2 ,
-.Xr kqueue 2 ,
-.Xr mq_open 2 ,
-.Xr open 2 ,
-.Xr openat 2 ,
-.Xr pdfork 2 ,
-.Xr pipe 2 ,
-.Xr read 2 ,
-.Xr shm_open 2 ,
-.Xr socket 2 ,
-.Xr socketpair 2 ,
-.Xr write 2 ,
-.Xr cap_rights_get 3 ,
-.Xr cap_rights_init 3 ,
-.Xr err 3 ,
-.Xr capsicum 4 ,
-.Xr rights 4
-.Sh HISTORY
-The
-.Fn cap_rights_limit
-function first appeared in
-.Fx 8.3 .
-Support for capabilities and capabilities mode was developed as part of the
-.Tn TrustedBSD
-Project.
-.Sh AUTHORS
-This function was created by
-.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net
-under sponsorship of the FreeBSD Foundation.
diff --git a/lib/libc/sys/chdir.2 b/lib/libc/sys/chdir.2
deleted file mode 100644
index acc3b601f009..000000000000
--- a/lib/libc/sys/chdir.2
+++ /dev/null
@@ -1,134 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)chdir.2 8.2 (Berkeley) 12/11/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt CHDIR 2
-.Os
-.Sh NAME
-.Nm chdir ,
-.Nm fchdir
-.Nd change current working directory
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn chdir "const char *path"
-.Ft int
-.Fn fchdir "int fd"
-.Sh DESCRIPTION
-The
-.Fa path
-argument points to the pathname of a directory.
-The
-.Fn chdir
-system call
-causes the named directory
-to become the current working directory, that is,
-the starting point for path searches of pathnames not beginning with
-a slash,
-.Ql / .
-.Pp
-The
-.Fn fchdir
-system call
-causes the directory referenced by
-.Fa fd
-to become the current working directory,
-the starting point for path searches of pathnames not beginning with
-a slash,
-.Ql / .
-.Pp
-In order for a directory to become the current directory,
-a process must have execute (search) access to the directory.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn chdir
-system call
-will fail and the current working directory will be unchanged if
-one or more of the following are true:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named directory does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EACCES
-Search permission is denied for any component of
-the path name.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-The
-.Fn fchdir
-system call
-will fail and the current working directory will be unchanged if
-one or more of the following are true:
-.Bl -tag -width Er
-.It Bq Er EACCES
-Search permission is denied for the directory referenced by the
-file descriptor.
-.It Bq Er ENOTDIR
-The file descriptor does not reference a directory.
-.It Bq Er EBADF
-The argument
-.Fa fd
-is not a valid file descriptor.
-.El
-.Sh SEE ALSO
-.Xr chroot 2
-.Sh STANDARDS
-The
-.Fn chdir
-system call is expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn chdir
-system call appeared in
-.At v1 .
-The
-.Fn fchdir
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/chflags.2 b/lib/libc/sys/chflags.2
deleted file mode 100644
index f8dfd59c39d3..000000000000
--- a/lib/libc/sys/chflags.2
+++ /dev/null
@@ -1,359 +0,0 @@
-.\" Copyright (c) 1989, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)chflags.2 8.3 (Berkeley) 5/2/95
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2021
-.Dt CHFLAGS 2
-.Os
-.Sh NAME
-.Nm chflags ,
-.Nm lchflags ,
-.Nm fchflags ,
-.Nm chflagsat
-.Nd set file flags
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/stat.h
-.In unistd.h
-.Ft int
-.Fn chflags "const char *path" "unsigned long flags"
-.Ft int
-.Fn lchflags "const char *path" "unsigned long flags"
-.Ft int
-.Fn fchflags "int fd" "unsigned long flags"
-.Ft int
-.Fn chflagsat "int fd" "const char *path" "unsigned long flags" "int atflag"
-.Sh DESCRIPTION
-The file whose name
-is given by
-.Fa path
-or referenced by the descriptor
-.Fa fd
-has its flags changed to
-.Fa flags .
-.Pp
-The
-.Fn lchflags
-system call is like
-.Fn chflags
-except in the case where the named file is a symbolic link,
-in which case
-.Fn lchflags
-will change the flags of the link itself,
-rather than the file it points to.
-.Pp
-The
-.Fn chflagsat
-is equivalent to either
-.Fn chflags
-or
-.Fn lchflags
-depending on the
-.Fa atflag
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the file to be changed is determined relative to the directory
-associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-The values for the
-.Fa atflag
-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, then the flags of the symbolic link are changed.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.It Dv AT_EMPTY_PATH
-If the
-.Fa path
-argument is an empty string, operate on the file or directory
-referenced by the descriptor
-.Fa fd .
-If
-.Fa fd
-is equal to
-.Dv AT_FDCWD ,
-operate on the current working directory.
-.El
-.Pp
-If
-.Fn chflagsat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used.
-If also
-.Fa atflag
-is zero, the behavior is identical to a call to
-.Fn chflags .
-.Pp
-The flags specified are formed by
-.Em or Ns 'ing
-the following values
-.Pp
-.Bl -tag -width ".Dv SF_IMMUTABLE" -compact -offset indent
-.It Dv SF_APPEND
-The file may only be appended to.
-.It Dv SF_ARCHIVED
-The file has been archived.
-This flag means the opposite of the DOS, Windows and CIFS
-FILE_ATTRIBUTE_ARCHIVE attribute.
-This flag has been deprecated, and may be removed in a future release.
-.It Dv SF_IMMUTABLE
-The file may not be changed.
-.It Dv SF_NOUNLINK
-The file may not be renamed or deleted.
-.It Dv SF_SNAPSHOT
-The file is a snapshot file.
-.It Dv UF_APPEND
-The file may only be appended to.
-.It Dv UF_ARCHIVE
-The file needs to be archived.
-This flag has the same meaning as the DOS, Windows and CIFS
-FILE_ATTRIBUTE_ARCHIVE attribute.
-Filesystems in FreeBSD may or may not have special handling for this flag.
-For instance, ZFS tracks changes to files and will set this bit when a
-file is updated.
-UFS only stores the flag, and relies on the application to change it when
-needed.
-.It Dv UF_HIDDEN
-The file may be hidden from directory listings at the application's
-discretion.
-The file has the DOS, Windows and CIFS FILE_ATTRIBUTE_HIDDEN attribute.
-.It Dv UF_IMMUTABLE
-The file may not be changed.
-.It Dv UF_NODUMP
-Do not dump the file.
-.It Dv UF_NOUNLINK
-The file may not be renamed or deleted.
-.It Dv UF_OFFLINE
-The file is offline, or has the Windows and CIFS FILE_ATTRIBUTE_OFFLINE
-attribute.
-Filesystems in FreeBSD store and display this flag, but do not provide any
-special handling when it is set.
-.It Dv UF_OPAQUE
-The directory is opaque when viewed through a union stack.
-.It Dv UF_READONLY
-The file is read only, and may not be written or appended.
-Filesystems may use this flag to maintain compatibility with the DOS, Windows
-and CIFS FILE_ATTRIBUTE_READONLY attribute.
-.It Dv UF_REPARSE
-The file contains a Windows reparse point and has the Windows and CIFS
-FILE_ATTRIBUTE_REPARSE_POINT attribute.
-.It Dv UF_SPARSE
-The file has the Windows FILE_ATTRIBUTE_SPARSE_FILE attribute.
-This may also be used by a filesystem to indicate a sparse file.
-.It Dv UF_SYSTEM
-The file has the DOS, Windows and CIFS FILE_ATTRIBUTE_SYSTEM attribute.
-Filesystems in FreeBSD may store and display this flag, but do not provide
-any special handling when it is set.
-.El
-.Pp
-If one of
-.Dv SF_IMMUTABLE , SF_APPEND ,
-or
-.Dv SF_NOUNLINK
-is set a non-super-user cannot change any flags and even the super-user
-can change flags only if securelevel is 0.
-(See
-.Xr init 8
-for details.)
-.Pp
-The
-.Dv UF_IMMUTABLE , UF_APPEND , UF_NOUNLINK , UF_NODUMP ,
-and
-.Dv UF_OPAQUE
-flags may be set or unset by either the owner of a file or the super-user.
-.Pp
-The
-.Dv SF_IMMUTABLE , SF_APPEND , SF_NOUNLINK ,
-and
-.Dv SF_ARCHIVED
-flags may only be set or unset by the super-user.
-Attempts to toggle these flags by non-super-users are rejected.
-These flags may be set at any time, but normally may only be unset when
-the system is in single-user mode.
-(See
-.Xr init 8
-for details.)
-.Pp
-The implementation of all flags is filesystem-dependent.
-See the description of the
-.Dv UF_ARCHIVE
-flag above for one example of the differences in behavior.
-Care should be exercised when writing applications to account for
-support or lack of support of these flags in various filesystems.
-.Pp
-The
-.Dv SF_SNAPSHOT
-flag is maintained by the system and cannot be toggled.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn chflags
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The effective user ID does not match the owner of the file and
-the effective user ID is not the super-user.
-.It Bq Er EPERM
-One of
-.Dv SF_IMMUTABLE , SF_APPEND ,
-or
-.Dv SF_NOUNLINK
-is set and the user is either not the super-user or
-securelevel is greater than 0.
-.It Bq Er EPERM
-A non-super-user attempted to toggle one of
-.Dv SF_ARCHIVED , SF_IMMUTABLE , SF_APPEND ,
-or
-.Dv SF_NOUNLINK .
-.It Bq Er EPERM
-An attempt was made to toggle the
-.Dv SF_SNAPSHOT
-flag.
-.It Bq Er EROFS
-The named file resides on a read-only file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EOPNOTSUPP
-The underlying file system does not support file flags, or
-does not support all of the flags set in
-.Fa flags .
-.El
-.Pp
-The
-.Fn fchflags
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The descriptor is not valid.
-.It Bq Er EINVAL
-The
-.Fa fd
-argument
-refers to a socket, not to a file.
-.It Bq Er EPERM
-The effective user ID does not match the owner of the file and
-the effective user ID is not the super-user.
-.It Bq Er EPERM
-One of
-.Dv SF_IMMUTABLE , SF_APPEND ,
-or
-.Dv SF_NOUNLINK
-is set and the user is either not the super-user or
-securelevel is greater than 0.
-.It Bq Er EPERM
-A non-super-user attempted to toggle one of
-.Dv SF_ARCHIVED , SF_IMMUTABLE , SF_APPEND ,
-or
-.Dv SF_NOUNLINK .
-.It Bq Er EPERM
-An attempt was made to toggle the
-.Dv SF_SNAPSHOT
-flag.
-.It Bq Er EROFS
-The file resides on a read-only file system.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EOPNOTSUPP
-The underlying file system does not support file flags, or
-does not support all of the flags set in
-.Fa flags .
-.It Bq Er ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode or the
-.Dv AT_RESOLVE_BENEATH
-flag was specified.
-.El
-.Sh SEE ALSO
-.Xr chflags 1 ,
-.Xr fflagstostr 3 ,
-.Xr strtofflags 3 ,
-.Xr init 8 ,
-.Xr mount_unionfs 8
-.Sh HISTORY
-The
-.Fn chflags
-and
-.Fn fchflags
-system calls first appeared in
-.Bx 4.4 .
-The
-.Fn lchflags
-system call first appeared in
-.Fx 5.0 .
-The
-.Fn chflagsat
-system call first appeared in
-.Fx 10.0 .
diff --git a/lib/libc/sys/chmod.2 b/lib/libc/sys/chmod.2
deleted file mode 100644
index 44a1b18718f1..000000000000
--- a/lib/libc/sys/chmod.2
+++ /dev/null
@@ -1,360 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)chmod.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2021
-.Dt CHMOD 2
-.Os
-.Sh NAME
-.Nm chmod ,
-.Nm fchmod ,
-.Nm lchmod ,
-.Nm fchmodat
-.Nd change mode of file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/stat.h
-.Ft int
-.Fn chmod "const char *path" "mode_t mode"
-.Ft int
-.Fn fchmod "int fd" "mode_t mode"
-.Ft int
-.Fn lchmod "const char *path" "mode_t mode"
-.Ft int
-.Fn fchmodat "int fd" "const char *path" "mode_t mode" "int flag"
-.Sh DESCRIPTION
-The file permission bits of the file named specified by
-.Fa path
-or referenced by the file descriptor
-.Fa fd
-are changed to
-.Fa mode .
-The
-.Fn chmod
-system call verifies that the process owner (user) either owns
-the file specified by
-.Fa path
-(or
-.Fa fd ) ,
-or
-is the super-user.
-The
-.Fn chmod
-system call follows symbolic links to operate on the target of the link
-rather than the link itself.
-.Pp
-The
-.Fn lchmod
-system call is similar to
-.Fn chmod
-but does not follow symbolic links.
-.Pp
-The
-.Fn fchmodat
-is equivalent to either
-.Fn chmod
-or
-.Fn lchmod
-depending on the
-.Fa flag
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the file to be changed is determined relative to the directory
-associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-The values for the
-.Fa flag
-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, then the mode of the symbolic link is changed.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.It Dv AT_EMPTY_PATH
-If the
-.Fa path
-argument is an empty string, operate on the file or directory
-referenced by the descriptor
-.Fa fd .
-If
-.Fa fd
-is equal to
-.Dv AT_FDCWD ,
-operate on the current working directory.
-.El
-.Pp
-If
-.Fn fchmodat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used.
-If also
-.Fa flag
-is zero, the behavior is identical to a call to
-.Fn chmod .
-.Pp
-A mode is created from
-.Em or'd
-permission bit masks
-defined in
-.In sys/stat.h :
-.Pp
-.Bd -literal -offset indent -compact
-#define S_IRWXU 0000700 /* RWX mask for owner */
-#define S_IRUSR 0000400 /* R for owner */
-#define S_IWUSR 0000200 /* W for owner */
-#define S_IXUSR 0000100 /* X for owner */
-
-#define S_IRWXG 0000070 /* RWX mask for group */
-#define S_IRGRP 0000040 /* R for group */
-#define S_IWGRP 0000020 /* W for group */
-#define S_IXGRP 0000010 /* X for group */
-
-#define S_IRWXO 0000007 /* RWX mask for other */
-#define S_IROTH 0000004 /* R for other */
-#define S_IWOTH 0000002 /* W for other */
-#define S_IXOTH 0000001 /* X for other */
-
-#define S_ISUID 0004000 /* set user id on execution */
-#define S_ISGID 0002000 /* set group id on execution */
-#define S_ISVTX 0001000 /* sticky bit */
-.Ed
-.Pp
-The non-standard
-.Dv S_ISTXT
-is a synonym for
-.Dv S_ISVTX .
-.Pp
-The
-.Fx
-VM system totally ignores the sticky bit
-.Pq Dv S_ISVTX
-for executables.
-On UFS-based file systems (FFS, LFS) the sticky
-bit may only be set upon directories.
-.Pp
-If mode
-.Dv S_ISVTX
-(the `sticky bit') is set on a directory,
-an unprivileged user may not delete or rename
-files of other users in that directory.
-The sticky bit may be
-set by any user on a directory which the user owns or has appropriate
-permissions.
-For more details of the properties of the sticky bit, see
-.Xr sticky 7 .
-.Pp
-If mode ISUID (set UID) is set on a directory,
-and the MNT_SUIDDIR option was used in the mount of the file system,
-then the owner of any new files and sub-directories
-created within this directory are set
-to be the same as the owner of that directory.
-If this function is enabled, new directories will inherit
-the bit from their parents.
-Execute bits are removed from
-the file, and it will not be given to root.
-This behavior does not change the
-requirements for the user to be allowed to write the file, but only the eventual
-owner after it has been created.
-Group inheritance is not affected.
-.Pp
-This feature is designed for use on fileservers serving PC users via
-ftp, SAMBA, or netatalk.
-It provides security holes for shell users and as
-such should not be used on shell machines, especially on home directories.
-This option requires the SUIDDIR
-option in the kernel to work.
-Only UFS file systems support this option.
-For more details of the suiddir mount option, see
-.Xr mount 8 .
-.Pp
-Writing or changing the owner of a file
-turns off the set-user-id and set-group-id bits
-unless the user is the super-user.
-This makes the system somewhat more secure
-by protecting set-user-id (set-group-id) files
-from remaining set-user-id (set-group-id) if they are modified,
-at the expense of a degree of compatibility.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn chmod
-system call
-will fail and the file mode will be unchanged if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The effective user ID does not match the owner of the file and
-the effective user ID is not the super-user.
-.It Bq Er EPERM
-The effective user ID is not the super-user, the effective user ID do match the
-owner of the file, but the group ID of the file does not match the effective
-group ID nor one of the supplementary group IDs.
-.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 named file resides on a read-only file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFTYPE
-The effective user ID is not the super-user, the mode includes the sticky bit
-.Dv ( S_ISVTX ) ,
-and path does not refer to a directory.
-.El
-.Pp
-The
-.Fn fchmod
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The descriptor is not valid.
-.It Bq Er EINVAL
-The
-.Fa fd
-argument
-refers to a socket, not to a file.
-.It Bq Er EROFS
-The file resides on a read-only file system.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-In addition to the
-.Fn chmod
-errors,
-.Fn fchmodat
-fails if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa path
-argument does not specify an absolute path and the
-.Fa fd
-argument is neither
-.Fa AT_FDCWD
-nor a valid file descriptor open for searching.
-.It Bq Er EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.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 ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode or the
-.Dv AT_RESOLVE_BENEATH
-flag was specified.
-.El
-.Sh SEE ALSO
-.Xr chmod 1 ,
-.Xr chflags 2 ,
-.Xr chown 2 ,
-.Xr open 2 ,
-.Xr stat 2 ,
-.Xr sticky 7
-.Sh STANDARDS
-The
-.Fn chmod
-system call is expected to conform to
-.St -p1003.1-90 ,
-except for the return of
-.Er EFTYPE .
-The
-.Dv S_ISVTX
-bit on directories is expected to conform to
-.St -susv3 .
-The
-.Fn fchmodat
-system call is expected to conform to
-.St -p1003.1-2008 .
-.Sh HISTORY
-The
-.Fn chmod
-function appeared in
-.At v1 .
-The
-.Fn fchmod
-system call appeared in
-.Bx 4.2 .
-The
-.Fn lchmod
-system call appeared in
-.Fx 3.0 .
-The
-.Fn fchmodat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/chown.2 b/lib/libc/sys/chown.2
deleted file mode 100644
index 467ff8a87e55..000000000000
--- a/lib/libc/sys/chown.2
+++ /dev/null
@@ -1,301 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993, 1994
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)chown.2 8.4 (Berkeley) 4/19/94
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2021
-.Dt CHOWN 2
-.Os
-.Sh NAME
-.Nm chown ,
-.Nm fchown ,
-.Nm lchown ,
-.Nm fchownat
-.Nd change owner and group of a file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn chown "const char *path" "uid_t owner" "gid_t group"
-.Ft int
-.Fn fchown "int fd" "uid_t owner" "gid_t group"
-.Ft int
-.Fn lchown "const char *path" "uid_t owner" "gid_t group"
-.Ft int
-.Fn fchownat "int fd" "const char *path" "uid_t owner" "gid_t group" "int flag"
-.Sh DESCRIPTION
-The owner ID and group ID of the file
-named by
-.Fa path
-or referenced by
-.Fa fd
-is changed as specified by the arguments
-.Fa owner
-and
-.Fa group .
-The owner of a file may change the
-.Fa group
-to a group of which
-he or she is a member,
-but the change
-.Fa owner
-capability is restricted to the super-user.
-.Pp
-The
-.Fn chown
-system call
-clears the set-user-id and set-group-id bits
-on the file
-to prevent accidental or mischievous creation of
-set-user-id and set-group-id programs if not executed
-by the super-user.
-The
-.Fn chown
-system call
-follows symbolic links to operate on the target of the link
-rather than the link itself.
-.Pp
-The
-.Fn fchown
-system call
-is particularly useful when used in conjunction
-with the file locking primitives (see
-.Xr flock 2 ) .
-.Pp
-The
-.Fn lchown
-system call is similar to
-.Fn chown
-but does not follow symbolic links.
-.Pp
-The
-.Fn fchownat
-system call is equivalent to the
-.Fn chown
-and
-.Fn lchown
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the file to be changed is determined relative to the directory
-associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-.Pp
-Values for
-.Fa flag
-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, ownership of the symbolic link is changed.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.It Dv AT_EMPTY_PATH
-If the
-.Fa path
-argument is an empty string, operate on the file or directory
-referenced by the descriptor
-.Fa fd .
-If
-.Fa fd
-is equal to
-.Dv AT_FDCWD ,
-operate on the current working directory.
-.El
-.Pp
-If
-.Fn fchownat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is identical
-to a call to
-.Fn chown
-or
-.Fn lchown
-respectively, depending on whether or not the
-.Dv AT_SYMLINK_NOFOLLOW
-bit is set in the
-.Fa flag
-argument.
-.Pp
-One of the owner or group id's
-may be left unchanged by specifying it as -1.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn chown
-and
-.Fn lchown
-will fail and the file will be unchanged if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The operation would change the ownership, but the effective user ID 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 named file resides on a read-only file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-The
-.Fn fchown
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-does not refer to a valid descriptor.
-.It Bq Er EINVAL
-The
-.Fa fd
-argument
-refers to a socket, not a file.
-.It Bq Er EPERM
-The effective user ID is not the super-user.
-.It Bq Er EROFS
-The named file resides on a read-only file system.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-In addition to the errors specified for
-.Fn chown
-and
-.Fn lchown ,
-the
-.Fn fchownat
-system call may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.It Bq Er EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.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 ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode or the
-.Dv AT_RESOLVE_BENEATH
-flag was specified.
-.El
-.Sh SEE ALSO
-.Xr chgrp 1 ,
-.Xr chflags 2 ,
-.Xr chmod 2 ,
-.Xr flock 2 ,
-.Xr chown 8
-.Sh STANDARDS
-The
-.Fn chown
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Fn fchownat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn chown
-function appeared in
-.At v1 .
-The
-.Fn fchown
-system call appeared in
-.Bx 4.2 .
-.Pp
-The
-.Fn chown
-system call was changed to follow symbolic links in
-.Bx 4.4 .
-The
-.Fn lchown
-system call was added in
-.Fx 3.0
-to compensate for the loss of functionality.
-.Pp
-The
-.Fn fchownat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/chroot.2 b/lib/libc/sys/chroot.2
deleted file mode 100644
index f5d9fa5a8515..000000000000
--- a/lib/libc/sys/chroot.2
+++ /dev/null
@@ -1,165 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)chroot.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd September 29, 2020
-.Dt CHROOT 2
-.Os
-.Sh NAME
-.Nm chroot
-.Nd change root directory
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn chroot "const char *dirname"
-.Sh DESCRIPTION
-The
-.Fa dirname
-argument
-is the address of the pathname of a directory, terminated by an ASCII NUL.
-The
-.Fn chroot
-system call causes
-.Fa dirname
-to become the root directory,
-that is, the starting point for path searches of pathnames
-beginning with
-.Ql / .
-.Pp
-In order for a directory to become the root directory
-a process must have execute (search) access for that directory.
-.Pp
-It should be noted that
-.Fn chroot
-has no effect on the process's current directory.
-.Pp
-This call is restricted to the super-user.
-.Pp
-Depending on the setting of the
-.Ql kern.chroot_allow_open_directories
-sysctl variable, open filedescriptors which reference directories
-will make the
-.Fn chroot
-fail as follows:
-.Pp
-If
-.Ql kern.chroot_allow_open_directories
-is set to zero,
-.Fn chroot
-will always fail with
-.Er EPERM
-if there are any directories open.
-.Pp
-If
-.Ql kern.chroot_allow_open_directories
-is set to one (the default),
-.Fn chroot
-will fail with
-.Er EPERM
-if there are any directories open and the
-process is already subject to the
-.Fn chroot
-system call.
-.Pp
-Any other value for
-.Ql kern.chroot_allow_open_directories
-will bypass the check for open directories,
-mimicking the historic insecure behavior of
-.Fn chroot
-still present on other systems.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn chroot
-system call
-will fail and the root directory will be unchanged if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path name is not a directory.
-.It Bq Er EPERM
-The effective user ID is not the super-user, or one or more
-filedescriptors are open directories.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named directory does not exist.
-.It Bq Er EACCES
-Search permission is denied for any component of the path name.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EFAULT
-The
-.Fa dirname
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Sh SEE ALSO
-.Xr chdir 2 ,
-.Xr jail 2
-.Sh HISTORY
-The
-.Fn chroot
-system call appeared in
-.At v7 .
-It was marked as
-.Dq legacy
-in
-.St -susv2 ,
-and was removed in subsequent standards.
-.Sh BUGS
-If the process is able to change its working directory to the target
-directory, but another access control check fails (such as a check for
-open directories, or a MAC check), it is possible that this system
-call may return an error, with the working directory of the process
-left changed.
-.Sh SECURITY CONSIDERATIONS
-The system has many hardcoded paths to files which it may load after
-the process starts.
-It is generally recommended to drop privileges immediately after a
-successful
-.Nm
-call,
-and restrict write access to a limited subtree of the
-.Nm
-root.
-For instance,
-setup the sandbox so that the sandboxed user will have no write
-access to any well-known system directories.
-.Pp
-For complete isolation from the rest of the system, use
-.Xr jail 2
-instead.
diff --git a/lib/libc/sys/clock_gettime.2 b/lib/libc/sys/clock_gettime.2
deleted file mode 100644
index d620ed0f03f2..000000000000
--- a/lib/libc/sys/clock_gettime.2
+++ /dev/null
@@ -1,196 +0,0 @@
-.\" $OpenBSD: clock_gettime.2,v 1.4 1997/05/08 20:21:16 kstailey Exp $
-.\"
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 1, 2021
-.Dt CLOCK_GETTIME 2
-.Os
-.Sh NAME
-.Nm clock_gettime ,
-.Nm clock_settime ,
-.Nm clock_getres
-.Nd get/set/calibrate date and time
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In time.h
-.Ft int
-.Fn clock_gettime "clockid_t clock_id" "struct timespec *tp"
-.Ft int
-.Fn clock_settime "clockid_t clock_id" "const struct timespec *tp"
-.Ft int
-.Fn clock_getres "clockid_t clock_id" "struct timespec *tp"
-.Sh DESCRIPTION
-The
-.Fn clock_gettime
-and
-.Fn clock_settime
-system calls allow the calling process to retrieve or set the value
-used by a clock which is specified by
-.Fa clock_id .
-.Pp
-The
-.Fa clock_id
-argument can be a value obtained from
-.Xr clock_getcpuclockid 3
-or
-.Xr pthread_getcpuclockid 3
-as well as the following values:
-.Pp
-.Bl -tag -width indent -compact
-.It Dv CLOCK_REALTIME
-.It Dv CLOCK_REALTIME_PRECISE
-.It Dv CLOCK_REALTIME_FAST
-.It Dv CLOCK_REALTIME_COARSE
-Increments as a wall clock should.
-.It Dv CLOCK_MONOTONIC
-.It Dv CLOCK_MONOTONIC_PRECISE
-.It Dv CLOCK_MONOTONIC_FAST
-.It Dv CLOCK_MONOTONIC_COARSE
-Increments in SI seconds.
-.It Dv CLOCK_UPTIME
-.It Dv CLOCK_UPTIME_PRECISE
-.It Dv CLOCK_UPTIME_FAST
-.It Dv CLOCK_BOOTTIME
-Starts at zero when the kernel boots and increments
-monotonically in SI seconds while the machine is running.
-.It Dv CLOCK_VIRTUAL
-Increments only when
-the CPU is running in user mode on behalf of the calling process.
-.It Dv CLOCK_PROF
-Increments when the CPU is running in user or kernel mode.
-.It Dv CLOCK_SECOND
-Returns the current second without performing a full time counter
-query, using an in-kernel cached value of the current second.
-.It Dv CLOCK_PROCESS_CPUTIME_ID
-Returns the execution time of the calling process.
-.It Dv CLOCK_THREAD_CPUTIME_ID
-Returns the execution time of the calling thread.
-.El
-.Pp
-The clock IDs
-.Fa CLOCK_REALTIME_FAST ,
-.Fa CLOCK_MONOTONIC_FAST ,
-.Fa CLOCK_UPTIME_FAST
-are analogs of corresponding IDs without _FAST suffix but do not perform
-a full time counter query, so their accuracy is one timer tick.
-Similarly,
-.Fa CLOCK_REALTIME_PRECISE ,
-.Fa CLOCK_MONOTONIC_PRECISE ,
-.Fa CLOCK_UPTIME_PRECISE
-are used to get the most exact value as possible, at the expense of
-execution time.
-The clock IDs
-.Fa CLOCK_REALTIME_COARSE ,
-.Fa CLOCK_MONOTONIC_COARSE
-are aliases of corresponding IDs with _FAST suffix for compatibility with other
-systems.
-Finally,
-.Dv CLOCK_BOOTTIME
-is an alias for
-.Dv CLOCK_UPTIME
-for compatibility with other systems.
-.Pp
-The structure pointed to by
-.Fa tp
-is defined in
-.In sys/timespec.h
-as:
-.Bd -literal
-struct timespec {
- time_t tv_sec; /* seconds */
- long tv_nsec; /* and nanoseconds */
-};
-.Ed
-.Pp
-Only the super-user may set the time of day, using only
-.Fa CLOCK_REALTIME .
-If the system securelevel is greater than 1 (see
-.Xr init 8 ) ,
-the time may only be advanced.
-This limitation is imposed to prevent a malicious super-user
-from setting arbitrary time stamps on files.
-The system time can still be adjusted backwards using the
-.Xr adjtime 2
-system call even when the system is secure.
-.Pp
-The resolution (granularity) of a clock is returned by the
-.Fn clock_getres
-system call.
-This value is placed in a (non-NULL)
-.Fa *tp .
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The following error codes may be set in
-.Va errno :
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa clock_id
-or
-.Fa timespec
-argument
-was not a valid value.
-.It Bq Er EPERM
-A user other than the super-user attempted to set the time.
-.El
-.Sh SEE ALSO
-.Xr date 1 ,
-.Xr adjtime 2 ,
-.Xr clock_getcpuclockid 3 ,
-.Xr ctime 3 ,
-.Xr pthread_getcpuclockid 3
-.Sh STANDARDS
-The
-.Fn clock_gettime ,
-.Fn clock_settime ,
-and
-.Fn clock_getres
-system calls conform to
-.St -p1003.1b-93 .
-The clock IDs
-.Fa CLOCK_REALTIME_FAST ,
-.Fa CLOCK_REALTIME_PRECISE ,
-.Fa CLOCK_MONOTONIC_FAST ,
-.Fa CLOCK_MONOTONIC_PRECISE ,
-.Fa CLOCK_UPTIME ,
-.Fa CLOCK_UPTIME_FAST ,
-.Fa CLOCK_UPTIME_PRECISE ,
-.Fa CLOCK_SECOND
-are FreeBSD extensions to the POSIX interface.
-.Sh HISTORY
-The
-.Fn clock_gettime ,
-.Fn clock_settime ,
-and
-.Fn clock_getres
-system calls first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/clock_nanosleep.c b/lib/libc/sys/clock_nanosleep.c
index e6afea809943..a50af30e1fb3 100644
--- a/lib/libc/sys/clock_nanosleep.c
+++ b/lib/libc/sys/clock_nanosleep.c
@@ -30,9 +30,6 @@
* 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"
@@ -44,9 +41,5 @@ int
clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp,
struct timespec *rmtp)
{
-
- return (((int (*)(clockid_t, int, const struct timespec *,
- struct timespec *))
- __libc_interposing[INTERPOS_clock_nanosleep])(clock_id, flags,
- rqtp, rmtp));
+ return (INTERPOS_SYS(clock_nanosleep, clock_id, flags, rqtp, rmtp));
}
diff --git a/lib/libc/sys/close.2 b/lib/libc/sys/close.2
deleted file mode 100644
index 92815aa3a859..000000000000
--- a/lib/libc/sys/close.2
+++ /dev/null
@@ -1,144 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993, 1994
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)close.2 8.2 (Berkeley) 4/19/94
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2017
-.Dt CLOSE 2
-.Os
-.Sh NAME
-.Nm close
-.Nd delete a descriptor
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn close "int fd"
-.Sh DESCRIPTION
-The
-.Fn close
-system call deletes a descriptor from the per-process object
-reference table.
-If this is the last reference to the underlying object, the
-object will be deactivated.
-For example, on the last close of a file
-the current
-.Em seek
-pointer associated with the file is lost;
-on the last close of a
-.Xr socket 2
-associated naming information and queued data are discarded;
-on the last close of a file holding an advisory lock
-the lock is released (see further
-.Xr flock 2 ) .
-However, the semantics of System V and
-.St -p1003.1-88
-dictate that all
-.Xr fcntl 2
-advisory record locks associated with a file for a given process
-are removed when
-.Em any
-file descriptor for that file is closed by that process.
-.Pp
-When a process exits,
-all associated file descriptors are freed, but since there is
-a limit on active descriptors per processes, the
-.Fn close
-system call
-is useful when a large quantity of file descriptors are being handled.
-.Pp
-When a process forks (see
-.Xr fork 2 ) ,
-all descriptors for the new child process reference the same
-objects as they did in the parent before the fork.
-If a new process is then to be run using
-.Xr execve 2 ,
-the process would normally inherit these descriptors.
-Most
-of the descriptors can be rearranged with
-.Xr dup2 2
-or deleted with
-.Fn close
-before the
-.Xr execve 2
-is attempted, but if some of these descriptors will still
-be needed if the execve fails, it is necessary to arrange for them
-to be closed if the execve succeeds.
-For this reason, the call
-.Dq Li fcntl(d, F_SETFD, FD_CLOEXEC)
-is provided,
-which arranges that a descriptor will be closed after a successful
-execve; the call
-.Dq Li fcntl(d, F_SETFD, 0)
-restores the default,
-which is to not close the descriptor.
-.Sh RETURN VALUES
-.Rv -std close
-.Sh ERRORS
-The
-.Fn close
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not an active descriptor.
-.It Bq Er EINTR
-An interrupt was received.
-.It Bq Er ENOSPC
-The underlying object did not fit, cached data was lost.
-.It Bq Er ECONNRESET
-The underlying object was a stream socket that was shut down by the peer
-before all pending data was delivered.
-.El
-.Pp
-In case of any error except
-.Er EBADF ,
-the supplied file descriptor is deallocated and therefore is no longer valid.
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr closefrom 2 ,
-.Xr execve 2 ,
-.Xr fcntl 2 ,
-.Xr flock 2 ,
-.Xr open 2 ,
-.Xr pipe 2 ,
-.Xr socket 2 ,
-.Xr socketpair 2
-.Sh STANDARDS
-The
-.Fn close
-system call is expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn close
-function appeared in
-.At v1 .
diff --git a/lib/libc/sys/close.c b/lib/libc/sys/close.c
index f7b36f85ddd5..08a5419361a9 100644
--- a/lib/libc/sys/close.c
+++ b/lib/libc/sys/close.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/types.h>
#include <sys/fcntl.h>
#include <unistd.h>
@@ -44,6 +40,5 @@ __weak_reference(__sys_close, __close);
int
close(int fd)
{
-
- return (((int (*)(int))__libc_interposing[INTERPOS_close])(fd));
+ return (INTERPOS_SYS(close, fd));
}
diff --git a/lib/libc/sys/closefrom.2 b/lib/libc/sys/closefrom.2
deleted file mode 100644
index 64c210f7897a..000000000000
--- a/lib/libc/sys/closefrom.2
+++ /dev/null
@@ -1,94 +0,0 @@
-.\" Copyright (c) 2009 Hudson River Trading LLC
-.\" Written by: John H. Baldwin <jhb@FreeBSD.org>
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 3, 2022
-.Dt CLOSEFROM 2
-.Os
-.Sh NAME
-.Nm closefrom ,
-.Nm close_range
-.Nd delete open file descriptors
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft void
-.Fn closefrom "int lowfd"
-.Ft int
-.Fn close_range "u_int lowfd" "u_int highfd" "int flags"
-.Sh DESCRIPTION
-The
-.Fn closefrom
-system call deletes all open file descriptors greater than or equal to
-.Fa lowfd
-from the per-process object reference table.
-Any errors encountered while closing file descriptors are ignored.
-.Pp
-The
-.Fn close_range
-system call deletes all open file descriptors between
-.Fa lowfd
-and
-.Fa highfd
-inclusive, clamped to the range of open file descriptors.
-Any errors encountered while closing file descriptors are ignored.
-Supported
-.Fa flags :
-.Bl -tag -width ".Dv CLOSE_RANGE_CLOEXEC"
-.It Dv CLOSE_RANGE_CLOEXEC
-Set the close-on-exec flag on descriptors in the range instead of closing them.
-.El
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn close_range
-returns a value
-of 0.
-Otherwise, a value of -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn close_range
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa highfd
-argument is lower than the
-.Fa lowfd
-argument.
-.It Bq Er EINVAL
-An invalid flag was set.
-.El
-.Sh SEE ALSO
-.Xr close 2
-.Sh HISTORY
-The
-.Fn closefrom
-function first appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/closefrom.c b/lib/libc/sys/closefrom.c
index 8ff2f9e96e4a..292702fad38c 100644
--- a/lib/libc/sys/closefrom.c
+++ b/lib/libc/sys/closefrom.c
@@ -1,5 +1,5 @@
/*
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2020 Kyle Evans <kevans@FreeBSD.org>
*
@@ -25,9 +25,6 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/param.h>
#include <sys/syscall.h>
#include <unistd.h>
diff --git a/lib/libc/sys/compat-ino64.h b/lib/libc/sys/compat-ino64.h
deleted file mode 100644
index 009efd63c590..000000000000
--- a/lib/libc/sys/compat-ino64.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*-
- * Copyright (c) 2017 M. Warner Losh <imp@FreeBSD.org>
- *
- * 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.
- *
- * $FreeBSD$
- */
-
-/*
- * Forward compatibility shim to convert old stat buffer to
- * new so we can call the old system call, but return data in
- * the new system call's format.
- */
-#define _WANT_FREEBSD11_STATFS
-#include <sys/fcntl.h>
-#include <sys/mount.h>
-
-#define _WANT_FREEBSD11_STAT
-#include <sys/stat.h>
-
-#include <string.h>
-
-#define INO64_FIRST 1200031
-
-static __inline void
-__stat11_to_stat(const struct freebsd11_stat *sb11, struct stat *sb)
-{
-
- sb->st_dev = sb11->st_dev;
- sb->st_ino = sb11->st_ino;
- sb->st_nlink = sb11->st_nlink;
- sb->st_mode = sb11->st_mode;
- sb->st_uid = sb11->st_uid;
- sb->st_gid = sb11->st_gid;
- sb->st_rdev = sb11->st_rdev;
- sb->st_atim = sb11->st_atim;
- sb->st_mtim = sb11->st_mtim;
- sb->st_ctim = sb11->st_ctim;
-#ifdef __STAT_TIME_T_EXT
- sb->st_atim_ext = 0;
- sb->st_mtim_ext = 0;
- sb->st_ctim_ext = 0;
- sb->st_btim_ext = 0;
-#endif
- sb->st_birthtim = sb11->st_birthtim;
- sb->st_size = sb11->st_size;
- sb->st_blocks = sb11->st_blocks;
- sb->st_blksize = sb11->st_blksize;
- sb->st_flags = sb11->st_flags;
- sb->st_gen = sb11->st_gen;
- sb->st_padding0 = 0;
- sb->st_padding1 = 0;
- memset(sb->st_spare, 0, sizeof(sb->st_spare));
-}
-
-static __inline void
-__statfs11_to_statfs(const struct freebsd11_statfs *sf11, struct statfs *sf)
-{
-
- sf->f_version = STATFS_VERSION;
- sf->f_type = sf11->f_type;
- sf->f_flags = sf11->f_flags;
- sf->f_bsize = sf11->f_bsize;
- sf->f_iosize = sf11->f_iosize;
- sf->f_blocks = sf11->f_blocks;
- sf->f_bfree = sf11->f_bfree;
- sf->f_bavail = sf11->f_bavail;
- sf->f_files = sf11->f_files;
- sf->f_ffree = sf11->f_ffree;
- sf->f_syncwrites = sf11->f_syncwrites;
- sf->f_asyncwrites = sf11->f_asyncwrites;
- sf->f_syncreads = sf11->f_syncreads;
- sf->f_asyncreads = sf11->f_asyncreads;
- sf->f_namemax = sf11->f_namemax;
- sf->f_owner = sf11->f_owner;
- sf->f_fsid = sf11->f_fsid;
- memset(sf->f_spare, 0, sizeof(sf->f_spare));
- memset(sf->f_charspare, 0, sizeof(sf->f_charspare));
- strlcpy(sf->f_fstypename, sf11->f_fstypename, sizeof(sf->f_fstypename));
- strlcpy(sf->f_mntfromname, sf11->f_mntfromname, sizeof(sf->f_mntfromname));
- strlcpy(sf->f_mntonname, sf11->f_mntonname, sizeof(sf->f_mntonname));
-}
diff --git a/lib/libc/sys/compat-stub.c b/lib/libc/sys/compat-stub.c
index 2031b7dc4c20..d23eaf3f89b8 100644
--- a/lib/libc/sys/compat-stub.c
+++ b/lib/libc/sys/compat-stub.c
@@ -29,11 +29,8 @@
* 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.
- *
- * $FreeBSD$
*/
-#include <sys/cdefs.h>
#include <sys/types.h>
#include <sys/errno.h>
diff --git a/lib/libc/sys/connect.2 b/lib/libc/sys/connect.2
deleted file mode 100644
index 33c7cf3bc01f..000000000000
--- a/lib/libc/sys/connect.2
+++ /dev/null
@@ -1,185 +0,0 @@
-.\" Copyright (c) 1983, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)connect.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd August 18, 2016
-.Dt CONNECT 2
-.Os
-.Sh NAME
-.Nm connect
-.Nd initiate a connection on a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft int
-.Fn connect "int s" "const struct sockaddr *name" "socklen_t namelen"
-.Sh DESCRIPTION
-The
-.Fa s
-argument
-is a socket.
-If it is of type
-.Dv SOCK_DGRAM ,
-this call specifies the peer with which the socket is to be associated;
-this address is that to which datagrams are to be sent,
-and the only address from which datagrams are to be received.
-If the socket is of type
-.Dv SOCK_STREAM ,
-this call attempts to make a connection to
-another socket.
-The other socket is specified by
-.Fa name ,
-which is an address in the communications space of the socket.
-.Fa namelen
-indicates the amount of space pointed to by
-.Fa name ,
-in bytes; the
-.Fa sa_len
-member of
-.Fa name
-is ignored.
-Each communications space interprets the
-.Fa name
-argument in its own way.
-Generally, stream sockets may successfully
-.Fn connect
-only once; datagram sockets may use
-.Fn connect
-multiple times to change their association.
-Datagram sockets may dissolve the association
-by connecting to an invalid address, such as a null address.
-.Sh RETURN VALUES
-.Rv -std connect
-.Sh ERRORS
-The
-.Fn connect
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa s
-argument
-is not a valid descriptor.
-.It Bq Er EINVAL
-The
-.Fa namelen
-argument is not a valid length for the address family.
-.It Bq Er ENOTSOCK
-The
-.Fa s
-argument
-is a descriptor for a file, not a socket.
-.It Bq Er EADDRNOTAVAIL
-The specified address is not available on this machine.
-.It Bq Er EAFNOSUPPORT
-Addresses in the specified address family cannot be used with this socket.
-.It Bq Er EISCONN
-The socket is already connected.
-.It Bq Er ETIMEDOUT
-Connection establishment timed out without establishing a connection.
-.It Bq Er ECONNREFUSED
-The attempt to connect was forcefully rejected.
-.It Bq Er ECONNRESET
-The connection was reset by the remote host.
-.It Bq Er ENETUNREACH
-The network is not reachable from this host.
-.It Bq Er EHOSTUNREACH
-The remote host is not reachable from this host.
-.It Bq Er EADDRINUSE
-The address is already in use.
-.It Bq Er EFAULT
-The
-.Fa name
-argument specifies an area outside
-the process address space.
-.It Bq Er EINPROGRESS
-The socket is non-blocking
-and the connection cannot
-be completed immediately.
-It is possible to
-.Xr select 2
-for completion by selecting the socket for writing.
-.It Bq Er EINTR
-The connection attempt was interrupted by the delivery of a signal.
-The connection will be established in the background,
-as in the case of
-.Er EINPROGRESS .
-.It Bq Er EALREADY
-A previous connection attempt has not yet been completed.
-.It Bq Er EACCES
-An attempt is made to connect to a broadcast address (obtained through the
-.Dv INADDR_BROADCAST
-constant or the
-.Dv INADDR_NONE
-return value) through a socket that does not provide broadcast functionality.
-.It Bq Er EAGAIN
-An auto-assigned port number was requested but no auto-assigned ports
-are available.
-Increasing the port range specified by
-.Xr sysctl 3
-MIB variables
-.Va net.inet.ip.portrange.first
-and
-.Va net.inet.ip.portrange.last
-may alleviate the problem.
-.El
-.Pp
-The following errors are specific to connecting names in the UNIX domain.
-These errors may not apply in future versions of the UNIX IPC domain.
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named socket does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er EACCES
-Write access to the named socket is denied.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-Write access to the named socket is denied.
-.El
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr getpeername 2 ,
-.Xr getsockname 2 ,
-.Xr select 2 ,
-.Xr socket 2 ,
-.Xr sysctl 3 ,
-.Xr sysctl 8
-.Sh HISTORY
-The
-.Fn connect
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/connect.c b/lib/libc/sys/connect.c
index 7969142ad072..e64451683abc 100644
--- a/lib/libc/sys/connect.c
+++ b/lib/libc/sys/connect.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -44,7 +40,5 @@ __weak_reference(__sys_connect, __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));
+ return (INTERPOS_SYS(connect, s, addr, addrlen));
}
diff --git a/lib/libc/sys/connectat.2 b/lib/libc/sys/connectat.2
deleted file mode 100644
index 3b90baa0b6f2..000000000000
--- a/lib/libc/sys/connectat.2
+++ /dev/null
@@ -1,109 +0,0 @@
-.\" Copyright (c) 2013 The FreeBSD Foundation
-.\" All rights reserved.
-.\"
-.\" This documentation was written by Pawel Jakub Dawidek 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 13, 2013
-.Dt CONNECTAT 2
-.Os
-.Sh NAME
-.Nm connectat
-.Nd initiate a connection on a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Pp
-.In fcntl.h
-.Ft int
-.Fn connectat "int fd" "int s" "const struct sockaddr *name" "socklen_t namelen"
-.Sh DESCRIPTION
-The
-.Fn connectat
-system call initiates a connection on the socket
-.Fa s .
-When passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the behavior is identical to a call to
-.Xr connect 2 .
-Otherwise,
-.Fn connectat
-works like the
-.Xr connect 2
-system call with two exceptions:
-.Pp
-.Bl -enum -offset indent -compact
-.It
-It is limited to sockets in the PF_LOCAL domain.
-.Pp
-.It
-If the file path stored in the
-.Fa sun_path
-field of the sockaddr_un structure is a relative path, it is located relative
-to the directory associated with the file descriptor
-.Fa fd .
-.El
-.Sh RETURN VALUES
-.Rv -std connectat
-.Sh ERRORS
-The
-.Fn connectat
-system call may fail with the same errors as the
-.Xr connect 2
-system call or with the following errors:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa sun_path
-field does not specify an absolute path and the
-.Fa fd
-argument is neither
-.Dv AT_FDCWD
-nor a valid file descriptor.
-.It Bq Er ENOTDIR
-The
-.Fa sun_path
-field is not an absolute path and
-.Fa fd
-is neither
-.Dv AT_FDCWD
-nor a file descriptor associated with a directory.
-.El
-.Sh SEE ALSO
-.Xr bindat 2 ,
-.Xr connect 2 ,
-.Xr socket 2 ,
-.Xr unix 4
-.Sh AUTHORS
-The
-.Nm
-was developed by
-.An Pawel Jakub Dawidek Aq Mt pawel@dawidek.net
-under sponsorship from the FreeBSD Foundation.
diff --git a/lib/libc/sys/copy_file_range.2 b/lib/libc/sys/copy_file_range.2
deleted file mode 100644
index 22106b397ef2..000000000000
--- a/lib/libc/sys/copy_file_range.2
+++ /dev/null
@@ -1,212 +0,0 @@
-.\" SPDX-License-Identifier: BSD-2-Clause
-.\"
-.\" Copyright (c) 2019 Rick Macklem
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 2, 2021
-.Dt COPY_FILE_RANGE 2
-.Os
-.Sh NAME
-.Nm copy_file_range
-.Nd kernel copy of a byte range from one file to another
-or within one file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In unistd.h
-.Ft ssize_t
-.Fo copy_file_range
-.Fa "int infd"
-.Fa "off_t *inoffp"
-.Fa "int outfd"
-.Fa "off_t *outoffp"
-.Fa "size_t len"
-.Fa "unsigned int flags"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn copy_file_range
-system call
-copies up to
-.Fa len
-bytes from
-.Fa infd
-to
-.Fa outfd
-in the kernel.
-It may do this using a file system specific technique if
-.Fa infd
-and
-.Fa outfd
-are on the same file system.
-If
-.Fa infd
-and
-.Fa outfd
-refer to the same file, the byte ranges defined by
-the input file offset, output file offset and
-.Fa len
-cannot overlap.
-The
-.Fa infd
-argument must be opened for reading and the
-.Fa outfd
-argument must be opened for writing, but not
-.Dv O_APPEND .
-If
-.Fa inoffp
-or
-.Fa outoffp
-is
-.Dv NULL ,
-the file offset for
-.Fa infd
-or
-.Fa outfd
-respectively will be used and updated by
-the number of bytes copied.
-If
-.Fa inoffp
-or
-.Fa outoffp
-is not
-.Dv NULL ,
-the byte offset pointed to by
-.Fa inoffp
-or
-.Fa outoffp
-respectively will be used/updated and the file offset for
-.Fa infd
-or
-.Fa outfd
-respectively will not be affected.
-The
-.Fa flags
-argument must be 0.
-.Pp
-This system call attempts to maintain holes in the output file for
-the byte range being copied.
-However, this does not always work well.
-It is recommended that sparse files be copied in a loop using
-.Xr lseek 2
-with
-.Dv SEEK_HOLE ,
-.Dv SEEK_DATA
-arguments and this system call for the
-data ranges found.
-.Pp
-For best performance, call
-.Fn copy_file_range
-with the largest
-.Fa len
-value possible.
-It is interruptible on most file systems,
-so there is no penalty for using very large len values, even SSIZE_MAX.
-.Pp
-.Sh RETURN VALUES
-If it succeeds, the call returns the number of bytes copied, which can be fewer
-than
-.Fa len .
-Returning fewer bytes than
-.Fa len
-does not necessarily indicate that EOF was reached.
-However, a return of zero for a non-zero
-.Fa len
-argument indicates that the offset for
-.Fa infd
-is at or beyond EOF.
-.Fn copy_file_range
-should be used in a loop until copying of the desired byte range has been
-completed.
-If an error has occurred, a \-1 is returned and the error code is placed in
-the global variable
-.Va errno .
-.Sh ERRORS
-The
-.Fn copy_file_range
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-If
-.Fa infd
-is not open for reading or
-.Fa outfd
-is not open for writing, or opened for writing with
-.Dv O_APPEND ,
-or if
-.Fa infd
-and
-.Fa outfd
-refer to the same file.
-.It Bq Er EFBIG
-If the copy exceeds the process's file size limit or the maximum file size
-for the file system
-.Fa outfd
-resides on.
-.It Bq Er EINTR
-A signal interrupted the system call
-before it could be completed.
-This may happen for files on some NFS mounts.
-When this happens, the values pointed to by
-.Fa inoffp
-and
-.Fa outoffp
-are reset to the initial values for the system call.
-.It Bq Er EINVAL
-.Fa infd
-and
-.Fa outfd
-refer to the same file and the byte ranges overlap or
-.Fa flags
-is not zero.
-.It Bq Er EIO
-An I/O error occurred while reading/writing the files.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from a file system.
-.It Bq Er EISDIR
-If either
-.Fa infd
-or
-.Fa outfd
-refers to a directory.
-.It Bq Er ENOSPC
-File system that stores
-.Fa outfd
-is full.
-.El
-.Sh SEE ALSO
-.Xr lseek 2
-.Sh STANDARDS
-The
-.Fn copy_file_range
-system call is expected to be compatible with the Linux system call of
-the same name.
-.Sh HISTORY
-The
-.Fn copy_file_range
-function appeared in
-.Fx 13.0 .
diff --git a/lib/libc/sys/cpuset.2 b/lib/libc/sys/cpuset.2
deleted file mode 100644
index 8b17f537e7fa..000000000000
--- a/lib/libc/sys/cpuset.2
+++ /dev/null
@@ -1,302 +0,0 @@
-.\" Copyright (c) 2008 Christian Brueffer
-.\" Copyright (c) 2008 Jeffrey Roberson
-.\" Copyright (c) 2021 Robert N. M. Watson
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 3, 2017
-.Dt CPUSET 2
-.Os
-.Sh NAME
-.Nm cpuset ,
-.Nm cpuset_getid ,
-.Nm cpuset_setid
-.Nd manage CPU affinity sets
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/cpuset.h
-.Ft int
-.Fn cpuset "cpusetid_t *setid"
-.Ft int
-.Fn cpuset_setid "cpuwhich_t which" "id_t id" "cpusetid_t setid"
-.Ft int
-.Fn cpuset_getid "cpulevel_t level" "cpuwhich_t which" "id_t id" "cpusetid_t *setid"
-.Sh DESCRIPTION
-The
-.Nm
-family of system calls allow applications to control sets of processors and
-memory domains and assign processes and threads to these sets.
-Processor sets contain lists of CPUs and domains that members may run on
-and exist only as long as some process is a member of the set.
-All processes in the system have an assigned set.
-The default set for all processes in the system is the set numbered 1.
-Threads belong to the same set as the process which contains them,
-however, they may further restrict their set with the anonymous
-per-thread mask to bind to a specific CPU or subset of CPUs and memory domains.
-.Pp
-Sets are referenced by a number of type
-.Ft cpuset_id_t .
-Each thread has a root set, an assigned set, and an anonymous mask.
-Only the root and assigned sets are numbered.
-The root set is the set of all CPUs and memory domains available in the system
-or in the system partition the thread is running in.
-The assigned set is a subset of the root set and is administratively
-assignable on a per-process basis.
-Many processes and threads may be members of a numbered set.
-.Pp
-The anonymous set is a further thread-specific refinement on the assigned
-set.
-It is intended that administrators will manipulate numbered sets using
-.Xr cpuset 1
-while application developers will manipulate anonymous sets using
-.Xr cpuset_setaffinity 2 and
-.Xr cpuset_setdomain 2 .
-.Pp
-To select the correct set a value of type
-.Ft cpulevel_t
-is used.
-The following values for
-.Fa level
-are supported:
-.Bl -column CPU_LEVEL_CPUSET -offset indent
-.It Dv CPU_LEVEL_ROOT Ta "Root set"
-.It Dv CPU_LEVEL_CPUSET Ta "Assigned set"
-.It Dv CPU_LEVEL_WHICH Ta "Set specified by which argument"
-.El
-.Pp
-The
-.Fa which
-argument determines how the value of
-.Fa id
-is interpreted and is of type
-.Ft cpuwhich_t .
-The
-.Fa which
-argument may have the following values:
-.Bl -column CPU_WHICH_INTRHANDLER -offset indent
-.It Dv CPU_WHICH_TID Ta "id is lwpid_t (thread id)"
-.It Dv CPU_WHICH_PID Ta "id is pid_t (process id)"
-.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_INTRHANDLER Ta "id is an irq number for an interrupt handler"
-.It Dv CPU_WHICH_ITHREAD Ta "id is an irq number for an ithread"
-.It Dv CPU_WHICH_DOMAIN Ta "id is a NUMA domain"
-.El
-.Pp
-An
-.Fa id
-of '-1' may be used with a
-.Fa which
-of
-.Dv CPU_WHICH_TID ,
-.Dv CPU_WHICH_PID ,
-or
-.Dv CPU_WHICH_CPUSET
-to mean the current thread, process, or current thread's
-cpuset.
-All cpuset syscalls allow this usage.
-.Pp
-A
-.Fa level
-argument of
-.Dv CPU_LEVEL_WHICH
-combined with a
-.Fa which
-argument other than
-.Dv CPU_WHICH_CPUSET
-refers to the anonymous mask of the object.
-This mask does not have an id and may only be manipulated with
-.Xr cpuset_setaffinity 2 .
-.Pp
-.Fn cpuset
-creates a new set containing the same CPUs as the root set of the current
-process and stores its id in the space provided by
-.Fa setid .
-On successful completion the calling process joins the set and is the
-only member.
-Children inherit this set after a call to
-.Xr fork 2 .
-.Pp
-.Fn cpuset_setid
-attempts to set the id of the object specified by the
-.Fa which
-argument.
-Currently
-.Dv CPU_WHICH_PID
-is the only acceptable value for which as
-threads do not have an id distinct from their process and the API does
-not permit changing the id of an existing set.
-Upon successful completion all of the threads in the target process will
-be running on CPUs permitted by the set.
-.Pp
-.Fn cpuset_getid
-retrieves a set id from the object indicated by
-.Fa which
-and stores it in the space pointed to by
-.Fa setid .
-The retrieved id may be that of either the root or assigned set
-depending on the value of
-.Fa level .
-.Fa level
-should be
-.Dv CPU_LEVEL_CPUSET
-or
-.Dv CPU_LEVEL_ROOT
-to get the set id from
-the process or thread specified by the
-.Fa id
-argument.
-Specifying
-.Dv CPU_LEVEL_WHICH
-with a process or thread is unsupported since
-this references the unnumbered anonymous mask.
-.Pp
-The actual contents of the sets may be retrieved or manipulated using
-.Xr cpuset_getaffinity 2 ,
-.Xr cpuset_setaffinity 2 ,
-.Xr cpuset_getdomain 2 , and
-.Xr cpuset_setdomain 2 .
-The
-.Xr cpuset 9
-macros may be used to manipulate masks of type
-.Ft cpuset_t
-get and set using those APIs.
-See those manual pages for more detail.
-.Sh RETURN VALUES
-.Rv -std
-.Sh EXAMPLES
-In this example, a CPU set mask is configured to limit execution to the first
-CPU using
-.Xr CPU_ZERO 9
-and
-.Xr CPU_SET 9 ,
-members of the
-.Xr cpuset 9
-programming interface.
-Then, the mask is applied to a new anonymous CPU set associated with the
-current process using
-.Xr cpuset_setaffinity 2 .
-This mask will be used by the current process, and inherited by any new
-child processes.
-.Bd -literal -offset indent
-#include <sys/param.h>
-#include <sys/cpuset.h>
-
-#include <sysexits.h>
-
-cpuset_t cpuset_mask;
-
-/* Initialize a CPU mask and enable CPU 0. */
-CPU_ZERO(&cpuset_mask);
-CPU_SET(0, &cpuset_mask);
-
-/* Set affinity for the CPU set for the current process. */
-if (cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_PID, -1,
- sizeof(cpuset_mask), &cpuset_mask) < 0)
- err(EX_OSERR, "cpuset_setaffinity");
-.Ed
-.Pp
-In the next example, a named CPU set is created containing the current
-process, and its affinity similarly configured.
-The resulting CPU set ID can then be used for further external management of
-the affinity of the set.
-.Bd -literal -offset indent
-#include <sys/param.h>
-#include <sys/cpuset.h>
-
-#include <sysexits.h>
-
-cpusetid_t cpuset_id;
-cpuset_t cpuset_mask;
-
-/* Create new cpuset for the current process. */
-if (cpuset(&cpuset_id) < 0)
- err(EX_OSERR, "cpuset");
-
-/* Initialize a CPU mask and enable CPU 0. */
-CPU_ZERO(&cpuset_mask);
-CPU_SET(0, &cpuset_mask);
-
-/* Set affinity for the CPU set for the current process. */
-if (cpuset_setaffinity(CPU_LEVEL_SET, CPU_WHICH_CPUSET, cpuset_id,
- sizeof(cpuset_mask), &cpuset_mask) < 0)
- err(EX_OSERR, "cpuset_setaffinity");
-.Ed
-.Sh ERRORS
-The following error codes may be set in
-.Va errno :
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa which
-or
-.Fa level
-argument was not a valid value.
-.It Bq Er EDEADLK
-The
-.Fn cpuset_setid
-call would leave a thread without a valid CPU to run on because the set
-does not overlap with the thread's anonymous mask.
-.It Bq Er EFAULT
-The setid pointer passed to
-.Fn cpuset_getid
-or
-.Fn cpuset
-was invalid.
-.It Bq Er ESRCH
-The object specified by the
-.Fa id
-and
-.Fa which
-arguments could not be found.
-.It Bq Er EPERM
-The calling process did not have the credentials required to complete the
-operation.
-.It Bq Er ENFILE
-There was no free
-.Ft cpusetid_t
-for allocation.
-.El
-.Sh SEE ALSO
-.Xr cpuset 1 ,
-.Xr cpuset_getaffinity 2 ,
-.Xr cpuset_getdomain 2 ,
-.Xr cpuset_setaffinity 2 ,
-.Xr cpuset_setdomain 2 ,
-.Xr pthread_affinity_np 3 ,
-.Xr pthread_attr_affinity_np 3 ,
-.Xr CPU_SET 9 ,
-.Xr CPU_ZERO 9 ,
-.Xr cpuset 9
-.Sh HISTORY
-The
-.Nm
-family of system calls first appeared in
-.Fx 7.1 .
-.Sh AUTHORS
-.An Jeffrey Roberson Aq Mt jeff@FreeBSD.org
diff --git a/lib/libc/sys/cpuset_getaffinity.2 b/lib/libc/sys/cpuset_getaffinity.2
deleted file mode 100644
index f7ac3873a9be..000000000000
--- a/lib/libc/sys/cpuset_getaffinity.2
+++ /dev/null
@@ -1,179 +0,0 @@
-.\" Copyright (c) 2008 Christian Brueffer
-.\" Copyright (c) 2008 Jeffrey Roberson
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd April 27, 2022
-.Dt CPUSET_GETAFFINITY 2
-.Os
-.Sh NAME
-.Nm cpuset_getaffinity ,
-.Nm cpuset_setaffinity
-.Nd manage CPU affinity
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/cpuset.h
-.Ft int
-.Fn cpuset_getaffinity "cpulevel_t level" "cpuwhich_t which" "id_t id" "size_t setsize" "cpuset_t *mask"
-.Ft int
-.Fn cpuset_setaffinity "cpulevel_t level" "cpuwhich_t which" "id_t id" "size_t setsize" "const cpuset_t *mask"
-.Sh DESCRIPTION
-.Fn cpuset_getaffinity
-and
-.Fn cpuset_setaffinity
-allow the manipulation of sets of CPUs available to processes, threads,
-interrupts, jails and other resources.
-These functions may manipulate sets of CPUs that contain many processes
-or per-object anonymous masks that effect only a single object.
-.Pp
-The valid values for the
-.Fa level
-and
-.Fa which
-arguments are documented in
-.Xr cpuset 2 .
-These arguments specify which object and which set of the object we are
-referring to.
-Not all possible combinations are valid.
-For example, only processes may belong to a numbered set accessed by a
-.Fa level
-argument of
-.Dv CPU_LEVEL_CPUSET .
-All resources, however, have a mask which may be manipulated with
-.Dv CPU_LEVEL_WHICH .
-.Pp
-Masks of type
-.Ft cpuset_t
-are composed using the
-.Dv CPU_SET
-macros.
-If the user-supplied mask is not large enough to fit all of the matching CPUs,
-.Fn cpuset_getaffinity
-fails with
-.Er ERANGE .
-Calls to
-.Fn cpuset_setaffinity
-tolerate masks of any size with no restrictions.
-The kernel uses the meaningful part of the mask, where the upper bound is
-the maximum CPU id present in the system.
-If bits for non-existing CPUs are set, calls to
-.Fn cpuset_setaffinity
-fails with
-.Er EINVAL .
-.Pp
-The supplied mask should have a size of
-.Fa setsize
-bytes.
-This size is usually provided by calling
-.Li sizeof(mask)
-which is ultimately determined by the value of
-.Dv CPU_SETSIZE
-as defined in
-.In sys/cpuset.h .
-.Pp
-.Fn cpuset_getaffinity
-retrieves the
-mask from the object specified by
-.Fa level ,
-.Fa which
-and
-.Fa id
-and stores it in the space provided by
-.Fa mask .
-.Pp
-.Fn cpuset_setaffinity
-attempts to set the mask for the object specified by
-.Fa level ,
-.Fa which
-and
-.Fa id
-to the value in
-.Fa mask .
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The following error codes may be set in
-.Va errno :
-.Bl -tag -width Er
-.\" When changing this list, consider updating share/man/man3/pthread_create.3,
-.\" since that function can return any of these errors.
-.It Bq Er EINVAL
-The
-.Fa level
-or
-.Fa which
-argument was not a valid value.
-.It Bq Er EINVAL
-The
-.Fa mask
-argument specified when calling
-.Fn cpuset_setaffinity
-was not a valid value.
-.It Bq Er EDEADLK
-The
-.Fn cpuset_setaffinity
-call would leave a thread without a valid CPU to run on because the set
-does not overlap with the thread's anonymous mask.
-.It Bq Er EFAULT
-The mask pointer passed was invalid.
-.It Bq Er ESRCH
-The object specified by the
-.Fa id
-and
-.Fa which
-arguments could not be found.
-.It Bq Er ERANGE
-The
-.Fa cpusetsize
-was smaller than needed to fit all of the matching CPUs.
-.It Bq Er EPERM
-The calling process did not have the credentials required to complete the
-operation.
-.It Bq Er ECAPMODE
-The calling process attempted to act on a process other than itself, while
-in capability mode.
-See
-.Xr capsicum 4 .
-.El
-.Sh SEE ALSO
-.Xr cpuset 1 ,
-.Xr cpuset 2 ,
-.Xr cpuset_getdomain 2 ,
-.Xr cpuset_getid 2 ,
-.Xr cpuset_setdomain 2 ,
-.Xr cpuset_setid 2 ,
-.Xr pthread_affinity_np 3 ,
-.Xr pthread_attr_affinity_np 3 ,
-.Xr capsicum 4 ,
-.Xr cpuset 9
-.Sh HISTORY
-The
-.Nm
-family of system calls first appeared in
-.Fx 7.1 .
-.Sh AUTHORS
-.An Jeffrey Roberson Aq Mt jeff@FreeBSD.org
diff --git a/lib/libc/sys/cpuset_getdomain.2 b/lib/libc/sys/cpuset_getdomain.2
deleted file mode 100644
index 6d969b051155..000000000000
--- a/lib/libc/sys/cpuset_getdomain.2
+++ /dev/null
@@ -1,191 +0,0 @@
-.\" Copyright (c) 2018 Jeffrey Roberson
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd June 18, 2020
-.Dt CPUSET_GETDOMAIN 2
-.Os
-.Sh NAME
-.Nm cpuset_getdomain ,
-.Nm cpuset_setdomain
-.Nd manage memory domain policy
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/domainset.h
-.Ft int
-.Fn cpuset_getdomain "cpulevel_t level" "cpuwhich_t which" "id_t id" "size_t setsize" "domainset_t *mask" "int *policy"
-.Ft int
-.Fn cpuset_setdomain "cpulevel_t level" "cpuwhich_t which" "id_t id" "size_t setsize" "const domainset_t *mask" "int policy"
-.Sh DESCRIPTION
-.Fn cpuset_getdomain
-and
-.Fn cpuset_setdomain
-allow the manipulation of sets of memory domains and allocation policy available
-to processes, threads, jails and other resources.
-These functions may manipulate sets of memory domains that contain many processes
-or per-object anonymous masks that affect only a single object.
-.Pp
-The valid values for the
-.Fa level
-and
-.Fa which
-arguments are documented in
-.Xr cpuset 2 .
-These arguments specify which object and which set of the object we are
-referring to.
-Not all possible combinations are valid.
-For example, only processes may belong to a numbered set accessed by a
-.Fa level
-argument of
-.Dv CPU_LEVEL_CPUSET .
-All resources, however, have a mask which may be manipulated with
-.Dv CPU_LEVEL_WHICH .
-.Pp
-Masks of type
-.Ft domainset_t
-are composed using the
-.Dv DOMAINSET
-macros.
-The kernel tolerates large sets as long as all domains specified
-in the set exist.
-Sets smaller than the kernel uses generate an error on calls to
-.Fn cpuset_getdomain
-even if the result set would fit within the user supplied set.
-Calls to
-.Fn cpuset_setdomain
-tolerate small sets with no restrictions.
-.Pp
-The supplied mask should have a size of
-.Fa setsize
-bytes.
-This size is usually provided by calling
-.Li sizeof(mask)
-which is ultimately determined by the value of
-.Dv DOMAINSET_SETSIZE
-as defined in
-.In sys/domainset.h .
-.Pp
-.Fn cpuset_getdomain
-retrieves the
-mask and policy from the object specified by
-.Fa level ,
-.Fa which
-and
-.Fa id
-and stores it in the space provided by
-.Fa mask
-and
-.Fa policy .
-.Pp
-.Fn cpuset_setdomain
-attempts to set the mask and policy for the object specified by
-.Fa level ,
-.Fa which
-and
-.Fa id
-to the values in
-.Fa mask
-and
-.Fa policy .
-.Sh ALLOCATION POLICIES
-Valid policy values are as follows:
-.Bl -tag -width "foo"
-.It Dv DOMAINSET_POLICY_ROUNDROBIN
-Memory is allocated on a round-robin basis by cycling through each domain in
-.Fa mask .
-.It Dv DOMAINSET_POLICY_FIRSTTOUCH
-Memory is allocated on the domain local to the CPU the requesting thread is
-running on.
-Failure to allocate from this domain will fallback to round-robin.
-.It Dv DOMAINSET_POLICY_PREFER
-Memory is allocated preferentially from the single domain specified in the mask.
-If memory is unavailable the domains listed in the parent cpuset will be
-visited in a round-robin order.
-.El
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The following error codes may be set in
-.Va errno :
-.Bl -tag -width Er
-.\" When changing this list, consider updating share/man/man3/pthread_create.3,
-.\" since that function can return any of these errors.
-.It Bq Er EINVAL
-The
-.Fa level
-or
-.Fa which
-argument was not a valid value.
-.It Bq Er EINVAL
-The
-.Fa mask or
-.Fa policy
-argument specified when calling
-.Fn cpuset_setdomain
-was not a valid value.
-.It Bq Er EDEADLK
-The
-.Fn cpuset_setdomain
-call would leave a thread without a valid CPU to run on because the set
-does not overlap with the thread's anonymous mask.
-.It Bq Er EFAULT
-The mask pointer passed was invalid.
-.It Bq Er ESRCH
-The object specified by the
-.Fa id
-and
-.Fa which
-arguments could not be found.
-.It Bq Er ERANGE
-The
-.Fa domainsetsize
-was either preposterously large or smaller than the kernel set size.
-.It Bq Er EPERM
-The calling process did not have the credentials required to complete the
-operation.
-.It Bq Er ECAPMODE
-The calling process attempted to act on a process other than itself, while
-in capability mode.
-See
-.Xr capsicum 4 .
-.El
-.Sh SEE ALSO
-.Xr cpuset 1 ,
-.Xr cpuset 2 ,
-.Xr cpuset_getaffinity 2 ,
-.Xr cpuset_getid 2 ,
-.Xr cpuset_setaffinity 2 ,
-.Xr cpuset_setid 2 ,
-.Xr capsicum 4 ,
-.Xr cpuset 9
-.Sh HISTORY
-The
-.Nm
-family of system calls first appeared in
-.Fx 12.0 .
-.Sh AUTHORS
-.An Jeffrey Roberson Aq Mt jeff@FreeBSD.org
diff --git a/lib/libc/sys/fstat.c b/lib/libc/sys/creat.c
index d31b1f54bb11..afd626e928bb 100644
--- a/lib/libc/sys/fstat.c
+++ b/lib/libc/sys/creat.c
@@ -1,5 +1,8 @@
/*-
- * Copyright (c) 2017 M. Warner Losh <imp@FreeBSD.org>
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1989, 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 +12,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.
+ * 3. 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,31 +29,21 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include "namespace.h"
-#include <sys/param.h>
-#include <sys/syscall.h>
-#include "compat-ino64.h"
-#include <unistd.h>
-
+#include <fcntl.h>
+#include "un-namespace.h"
#include "libc_private.h"
-#undef fstat
-__weak_reference(_fstat, fstat);
+__weak_reference(__creat, creat);
+__weak_reference(__creat, _creat);
-#pragma weak _fstat
+int __creat(const char *path, mode_t mode);
+
+#pragma weak creat
int
-_fstat(int fd, struct stat *sb)
+__creat(const char *path, mode_t mode)
{
- struct freebsd11_stat stat11;
- int rv;
-
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_fstat(fd, sb));
- rv = syscall(SYS_freebsd11_fstat, fd, &stat11);
- if (rv == 0)
- __stat11_to_stat(&stat11, sb);
- return (rv);
+ return (INTERPOS_SYS(openat, AT_FDCWD, path,
+ O_WRONLY | O_CREAT | O_TRUNC, mode));
}
+
diff --git a/lib/libc/sys/dup.2 b/lib/libc/sys/dup.2
deleted file mode 100644
index a617ab0da9e6..000000000000
--- a/lib/libc/sys/dup.2
+++ /dev/null
@@ -1,171 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)dup.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2017
-.Dt DUP 2
-.Os
-.Sh NAME
-.Nm dup ,
-.Nm dup2
-.Nd duplicate an existing file descriptor
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn dup "int oldd"
-.Ft int
-.Fn dup2 "int oldd" "int newd"
-.Sh DESCRIPTION
-The
-.Fn dup
-system call
-duplicates an existing object descriptor and returns its value to
-the calling process
-.Fa ( newd
-=
-.Fn dup oldd ) .
-The argument
-.Fa oldd
-is a small non-negative integer index in
-the per-process descriptor table.
-The new descriptor returned by the call
-is the lowest numbered descriptor
-currently not in use by the process.
-.Pp
-The object referenced by the descriptor does not distinguish
-between
-.Fa oldd
-and
-.Fa newd
-in any way.
-Thus if
-.Fa newd
-and
-.Fa oldd
-are duplicate references to an open
-file,
-.Xr read 2 ,
-.Xr write 2
-and
-.Xr lseek 2
-calls all move a single pointer into the file,
-and append mode, non-blocking I/O and asynchronous I/O options
-are shared between the references.
-If a separate pointer into the file is desired, a different
-object reference to the file must be obtained by issuing an
-additional
-.Xr open 2
-system call.
-The close-on-exec flag on the new file descriptor is unset.
-.Pp
-In
-.Fn dup2 ,
-the value of the new descriptor
-.Fa newd
-is specified.
-If this descriptor is already in use and
-.Fa oldd
-\*(Ne
-.Fa newd ,
-the descriptor is first deallocated as if the
-.Xr close 2
-system call had been used.
-If
-.Fa oldd
-is not a valid descriptor, then
-.Fa newd
-is not closed.
-If
-.Fa oldd
-==
-.Fa newd
-and
-.Fa oldd
-is a valid descriptor, then
-.Fn dup2
-is successful, and does nothing.
-.Sh RETURN VALUES
-These calls return the new file descriptor if successful;
-otherwise the value -1 is returned and
-the external variable
-.Va errno
-is set to indicate the cause of the error.
-.Sh ERRORS
-The
-.Fn dup
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa oldd
-argument
-is not a valid active descriptor
-.It Bq Er EMFILE
-Too many descriptors are active.
-.El
-.Pp
-The
-.Fn dup2
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa oldd
-argument is not a valid active descriptor or the
-.Fa newd
-argument is negative or exceeds the maximum allowable descriptor number
-.El
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr close 2 ,
-.Xr fcntl 2 ,
-.Xr getdtablesize 2 ,
-.Xr open 2 ,
-.Xr pipe 2 ,
-.Xr socket 2 ,
-.Xr socketpair 2 ,
-.Xr dup3 3
-.Sh STANDARDS
-The
-.Fn dup
-and
-.Fn dup2
-system calls are expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn dup
-function appeared in
-.At v3 .
-The
-.Fn dup2
-function appeared in
-.At v7 .
diff --git a/lib/libc/sys/eventfd.2 b/lib/libc/sys/eventfd.2
deleted file mode 100644
index ae9e44efc853..000000000000
--- a/lib/libc/sys/eventfd.2
+++ /dev/null
@@ -1,208 +0,0 @@
-.\" SPDX-License-Identifier: BSD-2-Clause
-.\"
-.\" Copyright (c) 2020 Greg V <greg@unrelenting.technology>
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 8, 2020
-.Dt EVENTFD 2
-.Os
-.Sh NAME
-.Nm eventfd
-.Nd create a file descriptor for event notification
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/eventfd.h
-.Ft int
-.Fn eventfd "unsigned int initval" "int flags"
-.Ft int
-.Fn eventfd_read "int fd" "eventfd_t *value"
-.Ft int
-.Fn eventfd_write "int fd" "eventfd_t value"
-.Sh DESCRIPTION
-.Fn eventfd
-creates a special file descriptor with event counter or semaphore semantics,
-designed for interprocess communication.
-The returned file descriptor refers to a kernel object containing an
-unsigned 64-bit integer counter, which is initialized with the value of the
-.Fa initval
-argument.
-.Pp
-The
-.Fa flags
-argument may contain the result of
-.Em or Ns 'ing
-the following values:
-.Pp
-.Bl -tag -width "EFD_SEMAPHORE" -compact
-.It Dv EFD_CLOEXEC
-set FD_CLOEXEC on the file descriptor
-.It Dv EFD_NONBLOCK
-do not block on read/write operations
-.It Dv EFD_SEMAPHORE
-use semaphore semantics
-.El
-.Pp
-File operations have the following semantics:
-.Bl -tag -width EFD_SEMAPHORE
-.It Xr read 2
-If the counter is zero, the call blocks until the counter becomes non-zero, unless
-.Dv EFD_NONBLOCK
-was set, in which case it would fail with
-.Dv EAGAIN
-instead.
-.Pp
-If the counter is non-zero:
-.Bl -bullet
-.It
-If
-.Dv EFD_SEMAPHORE
-is not set, the current value of the counter is returned,
-and the value is reset to zero.
-.It
-If
-.Dv EFD_SEMAPHORE
-is set, the constant 1 is returned, and the value is decremented by 1.
-.El
-.Pp
-The numeric value is encoded as 64-bit (8 bytes) in host byte order.
-The
-.Xr read 2
-call fails with
-.Dv EINVAL
-if there is less than 8 bytes available in the supplied buffer.
-.It Xr write 2
-Adds the given value to the counter.
-The maximum value that can be stored in the counter is the
-maximum unsigned 64-bit integer value minus one (0xfffffffffffffffe).
-.Pp
-If the resulting value exceeds the maximum, the call would block
-until the value is reduced by
-.Xr read 2 ,
-unless
-.Dv EFD_NONBLOCK
-was set, in which case it would fail with
-.Dv EAGAIN
-instead.
-.Pp
-The numeric value is encoded as 64-bit (8 bytes) in host byte order.
-The
-.Xr write 2
-call fails with
-.Dv EINVAL
-if there is less than 8 bytes available in the supplied buffer,
-or if the value 0xffffffffffffffff is given.
-.It Xr poll 2
-When receiving notifications via
-.Xr poll 2 /
-.Xr ppoll 2 /
-.Xr select 2 /
-.Xr pselect 2 /
-.Xr kqueue 2 ,
-the following semantics apply:
-.Bl -bullet
-.It
-The file descriptor is readable when the counter is greater than zero.
-.It
-The file descriptor is writable when the counter is less than the maximum value.
-.El
-.El
-.Pp
-File descriptors created by
-.Fn eventfd
-are passable to other processes via
-.Xr sendmsg 2
-and are preserved across
-.Xr fork 2 ;
-in both cases the descriptors refer to the same counter from both processes.
-Unless
-.Dv O_CLOEXEC
-flag was specified,
-the created file descriptor will remain open across
-.Xr execve 2
-system calls; see
-.Xr close 2 ,
-.Xr fcntl 2
-and
-.Dv O_CLOEXEC
-description.
-.Pp
-.Fn eventfd_read
-and
-.Fn eventfd_write
-are thin wrappers around
-.Xr read 2
-and
-.Xr write 2
-system calls,
-provided for compatibility with glibc.
-.Sh RETURN VALUES
-If successful,
-.Fn eventfd
-returns a non-negative integer, termed a file descriptor.
-It returns \-1 on failure, and sets
-.Va errno
-to indicate the error.
-.Pp
-The
-.Fn eventfd_read
-and
-.Fn eventfd_write
-functions return 0 if the operation succeeded, -1 otherwise.
-.Sh ERRORS
-.Fn eventfd
-may fail with:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa flags
-argument given to
-.Fn eventfd
-has unknown bits set.
-.It Bq Er EMFILE
-The process has already reached its limit for open
-file descriptors.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er ENOMEM
-No memory was available to create the kernel object.
-.El
-.Sh SEE ALSO
-.Xr close 2 ,
-.Xr kqueue 2 ,
-.Xr poll 2 ,
-.Xr read 2 ,
-.Xr select 2 ,
-.Xr write 2
-.Sh STANDARDS
-The
-.Fn eventfd
-system call is non-standard.
-It is present in Linux.
-.Sh HISTORY
-The
-.Fn eventfd
-system call first appeared in
-.Fx 13.0 .
diff --git a/lib/libc/sys/execve.2 b/lib/libc/sys/execve.2
deleted file mode 100644
index 1abadba13d91..000000000000
--- a/lib/libc/sys/execve.2
+++ /dev/null
@@ -1,382 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)execve.2 8.5 (Berkeley) 6/1/94
-.\" $FreeBSD$
-.\"
-.Dd January 26, 2022
-.Dt EXECVE 2
-.Os
-.Sh NAME
-.Nm execve ,
-.Nm fexecve
-.Nd execute a file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn execve "const char *path" "char *const argv[]" "char *const envp[]"
-.Ft int
-.Fn fexecve "int fd" "char *const argv[]" "char *const envp[]"
-.Sh DESCRIPTION
-The
-.Fn execve
-system call
-transforms the calling process into a new process.
-The new process is constructed from an ordinary file,
-whose name is pointed to by
-.Fa path ,
-called the
-.Em new process file .
-The
-.Fn fexecve
-system call is equivalent to
-.Fn execve
-except that the file to be executed is determined by the file
-descriptor
-.Fa fd
-instead of a
-.Fa path .
-This file is either an executable object file,
-or a file of data for an interpreter.
-An executable object file consists of an identifying header,
-followed by pages of data representing the initial program (text)
-and initialized data pages.
-Additional pages may be specified
-by the header to be initialized with zero data; see
-.Xr elf 5
-and
-.Xr a.out 5 .
-.Pp
-An interpreter file begins with a line of the form:
-.Pp
-.Bd -ragged -offset indent -compact
-.Sy \&#!
-.Em interpreter
-.Bq Em arg
-.Ed
-.Pp
-When an interpreter file is
-.Sy execve Ap d ,
-the system actually
-.Sy execve Ap s
-the specified
-.Em interpreter .
-If the optional
-.Em arg
-is specified, it becomes the first argument to the
-.Em interpreter ,
-and the name of the originally
-.Sy execve Ap d
-file becomes the second argument;
-otherwise, the name of the originally
-.Sy execve Ap d
-file becomes the first argument.
-The original arguments are shifted over to
-become the subsequent arguments.
-The zeroth argument is set to the specified
-.Em interpreter .
-.Pp
-The argument
-.Fa argv
-is a pointer to a null-terminated array of
-character pointers to null-terminated character strings.
-These strings construct the argument list to be made available to the new
-process.
-At least one argument must be present in
-the array; by custom, the first element should be
-the name of the executed program (for example, the last component of
-.Fa path ) .
-.Pp
-The argument
-.Fa envp
-is also a pointer to a null-terminated array of
-character pointers to null-terminated strings.
-A pointer to this array is normally stored in the global variable
-.Va environ .
-These strings pass information to the
-new process that is not directly an argument to the command (see
-.Xr environ 7 ) .
-.Pp
-File descriptors open in the calling process image remain open in
-the new process image, except for those for which the close-on-exec
-flag is set (see
-.Xr close 2
-and
-.Xr fcntl 2 ) .
-Descriptors that remain open are unaffected by
-.Fn execve .
-If any of the standard descriptors (0, 1, and/or 2) are closed at the
-time
-.Fn execve
-is called, and the process will gain privilege as a result of set-id
-semantics, those descriptors will be re-opened automatically.
-No programs, whether privileged or not, should assume that these descriptors
-will remain closed across a call to
-.Fn execve .
-.Pp
-Signals set to be ignored in the calling process are set to be ignored in
-the
-new process.
-Signals which are set to be caught in the calling process image
-are set to default action in the new process image.
-Blocked signals remain blocked regardless of changes to the signal action.
-The signal stack is reset to be undefined (see
-.Xr sigaction 2
-for more information).
-.Pp
-If the set-user-ID mode bit of the new process image file is set
-(see
-.Xr chmod 2 ) ,
-the effective user ID of the new process image is set to the owner ID
-of the new process image file.
-If the set-group-ID mode bit of the new process image file is set,
-the effective group ID of the new process image is set to the group ID
-of the new process image file.
-(The effective group ID is the first element of the group list.)
-The real user ID, real group ID and
-other group IDs of the new process image remain the same as the calling
-process image.
-After any set-user-ID and set-group-ID processing,
-the effective user ID is recorded as the saved set-user-ID,
-and the effective group ID is recorded as the saved set-group-ID.
-These values may be used in changing the effective IDs later (see
-.Xr setuid 2 ) .
-.Pp
-The set-ID bits are not honored if the respective file system has the
-.Cm nosuid
-option enabled or if the new process file is an interpreter file.
-Syscall
-tracing is disabled if effective IDs are changed.
-.Pp
-The new process also inherits the following attributes from
-the calling process:
-.Pp
-.Bl -column parent_process_ID -offset indent -compact
-.It process ID Ta see Xr getpid 2
-.It parent process ID Ta see Xr getppid 2
-.It process group ID Ta see Xr getpgrp 2
-.It access groups Ta see Xr getgroups 2
-.It working directory Ta see Xr chdir 2
-.It root directory Ta see Xr chroot 2
-.It control terminal Ta see Xr termios 4
-.It resource usages Ta see Xr getrusage 2
-.It interval timers Ta see Xr getitimer 2
-.It resource limits Ta see Xr getrlimit 2
-.It file mode mask Ta see Xr umask 2
-.It signal mask Ta see Xr sigaction 2 ,
-.Xr sigprocmask 2
-.El
-.Pp
-When a program is executed as a result of an
-.Fn execve
-system call, it is entered as follows:
-.Bd -literal -offset indent
-main(argc, argv, envp)
-int argc;
-char **argv, **envp;
-.Ed
-.Pp
-where
-.Fa argc
-is the number of elements in
-.Fa argv
-(the ``arg count'')
-and
-.Fa argv
-points to the array of character pointers
-to the arguments themselves.
-.Pp
-The
-.Fn fexecve
-ignores the file offset of
-.Fa fd .
-Since execute permission is checked by
-.Fn fexecve ,
-the file descriptor
-.Fa fd
-need not have been opened with the
-.Dv O_EXEC
-flag.
-However, if the file to be executed denies read permission for the process
-preparing to do the exec, the only way to provide the
-.Fa fd
-to
-.Fn fexecve
-is to use the
-.Dv O_EXEC
-flag when opening
-.Fa fd .
-Note that the file to be executed can not be open for writing.
-.Sh RETURN VALUES
-As the
-.Fn execve
-system call overlays the current process image
-with a new process image the successful call
-has no process to return to.
-If
-.Fn execve
-does return to the calling process an error has occurred; the
-return value will be -1 and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn execve
-system call
-will fail and return to the calling process if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOEXEC
-When invoking an interpreted script, the length of the first line,
-inclusive of the
-.Sy \&#!
-prefix and terminating newline, exceeds
-.Dv MAXSHELLCMDLEN
-characters.
-.It Bq Er ENOENT
-The new process file does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er EACCES
-The new process file is not an ordinary file.
-.It Bq Er EACCES
-The new process file mode denies execute permission.
-.It Bq Er EINVAL
-.Fa argv
-did not contain at least one element.
-.It Bq Er ENOEXEC
-The new process file has the appropriate access
-permission, but has an invalid magic number in its header.
-.It Bq Er ETXTBSY
-The new process file is a pure procedure (shared text)
-file that is currently open for writing by some process.
-.It Bq Er ENOMEM
-The new process requires more virtual memory than
-is allowed by the imposed maximum
-.Pq Xr getrlimit 2 .
-.It Bq Er E2BIG
-The number of bytes in the new process' argument list
-is larger than the system-imposed limit.
-This limit is specified by the
-.Xr sysctl 3
-MIB variable
-.Dv KERN_ARGMAX .
-.It Bq Er EFAULT
-The new process file is not as long as indicated by
-the size values in its header.
-.It Bq Er EFAULT
-The
-.Fa path ,
-.Fa argv ,
-or
-.Fa envp
-arguments
-point
-to an illegal address.
-.It Bq Er EIO
-An I/O error occurred while reading from the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-In addition, the
-.Fn fexecve
-will fail and return to the calling process if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid file descriptor open for executing.
-.El
-.Sh SEE ALSO
-.Xr ktrace 1 ,
-.Xr _exit 2 ,
-.Xr fork 2 ,
-.Xr open 2 ,
-.Xr execl 3 ,
-.Xr exit 3 ,
-.Xr sysctl 3 ,
-.Xr a.out 5 ,
-.Xr elf 5 ,
-.Xr fdescfs 5 ,
-.Xr environ 7 ,
-.Xr mount 8
-.Sh STANDARDS
-The
-.Fn execve
-system call conforms to
-.St -p1003.1-2001 ,
-with the exception of reopening descriptors 0, 1, and/or 2 in certain
-circumstances.
-A future update of the Standard is expected to require this behavior,
-and it may become the default for non-privileged processes as well.
-.\" NB: update this caveat when TC1 is blessed.
-The support for executing interpreted programs is an extension.
-The
-.Fn fexecve
-system call conforms to The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn execve
-system call appeared in
-.At v7 .
-The
-.Fn fexecve
-system call appeared in
-.Fx 8.0 .
-.Sh CAVEATS
-If a program is
-.Em setuid
-to a non-super-user, but is executed when
-the real
-.Em uid
-is ``root'', then the program has some of the powers
-of a super-user as well.
-.Pp
-When executing an interpreted program through
-.Fn fexecve ,
-kernel supplies
-.Pa /dev/fd/n
-as a second argument to the interpreter,
-where
-.Ar n
-is the file descriptor passed in the
-.Fa fd
-argument to
-.Fn fexecve .
-For this construction to work correctly, the
-.Xr fdescfs 5
-filesystem shall be mounted on
-.Pa /dev/fd .
diff --git a/lib/libc/sys/extattr_get_file.2 b/lib/libc/sys/extattr_get_file.2
deleted file mode 100644
index c38b27e17423..000000000000
--- a/lib/libc/sys/extattr_get_file.2
+++ /dev/null
@@ -1,292 +0,0 @@
-.\"
-.\" Copyright (c) 2001 Dima Dorfman <dima@unixfreak.org>
-.\" Copyright (c) 2003 Robert Watson <rwatson@FreeBSD.org>
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 11, 2021
-.Dt EXTATTR 2
-.Os
-.Sh NAME
-.Nm extattr_delete_fd ,
-.Nm extattr_delete_file ,
-.Nm extattr_delete_link ,
-.Nm extattr_get_fd ,
-.Nm extattr_get_file ,
-.Nm extattr_get_link ,
-.Nm extattr_list_fd ,
-.Nm extattr_list_file ,
-.Nm extattr_list_link ,
-.Nm extattr_set_fd ,
-.Nm extattr_set_file ,
-.Nm extattr_set_link
-.Nd system calls to manipulate VFS extended attributes
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/extattr.h
-.Ft int
-.Fn extattr_delete_fd "int fd" "int attrnamespace" "const char *attrname"
-.Ft int
-.Fn extattr_delete_file "const char *path" "int attrnamespace" "const char *attrname"
-.Ft int
-.Fn extattr_delete_link "const char *path" "int attrnamespace" "const char *attrname"
-.Ft ssize_t
-.Fn extattr_get_fd "int fd" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_get_file "const char *path" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_get_link "const char *path" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_list_fd "int fd" "int attrnamespace" "void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_list_file "const char *path" "int attrnamespace" "void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_list_link "const char *path" "int attrnamespace" "void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_set_fd "int fd" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_set_file "const char *path" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes"
-.Ft ssize_t
-.Fn extattr_set_link "const char *path" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes"
-.Sh DESCRIPTION
-Named extended attributes are meta-data associated with vnodes
-representing files and directories.
-They exist as
-.Qq Li name=value
-pairs within a set of namespaces.
-.Pp
-The
-.Fn extattr_get_file
-system call retrieves the value of the specified extended attribute into
-a buffer pointed to by
-.Fa data
-of size
-.Fa nbytes .
-The
-.Fn extattr_set_file
-system call sets the value of the specified extended attribute to the data
-described by
-.Fa data .
-The
-.Fn extattr_delete_file
-system call deletes the extended attribute specified.
-The
-.Fn extattr_list_file
-returns a list of attributes present in the requested namespace.
-Each list entry consists of a single byte containing the length
-of the attribute name, followed by the attribute name.
-The attribute name is not terminated by ASCII 0 (nul).
-The
-.Fn extattr_get_file
-and
-.Fn extattr_list_file
-calls consume the
-.Fa data
-and
-.Fa nbytes
-arguments in the style of
-.Xr read 2 ;
-.Fn extattr_set_file
-consumes these arguments in the style of
-.Xr write 2 .
-.Pp
-If
-.Fa data
-is
-.Dv NULL
-in a call to
-.Fn extattr_get_file
-and
-.Fn extattr_list_file
-then the size of defined extended attribute data will be returned, rather
-than the quantity read, permitting applications to test the size of the
-data without performing a read.
-The
-.Fn extattr_delete_link ,
-.Fn extattr_get_link ,
-and
-.Fn extattr_set_link
-system calls behave in the same way as their _file counterparts, except that
-they do not follow symlinks.
-.Pp
-The
-.Fn extattr_get_fd ,
-.Fn extattr_delete_fd ,
-.Fn extattr_list_fd ,
-and
-.Fn extattr_set_fd
-calls are identical to their
-.Qq Li _file
-counterparts except for the first argument.
-The
-.Qq Li _fd
-functions take a file descriptor, while the
-.Qq Li _file
-functions take a path.
-Both arguments describe a file associated with the extended attribute
-that should be manipulated.
-The
-.Qq Li _fd
-functions can be used with file descriptors opened with the
-.Dv O_PATH
-flag.
-.Pp
-The following arguments are common to all the system calls described here:
-.Bl -tag -width attrnamespace
-.It Fa attrnamespace
-the namespace in which the extended attribute resides; see
-.Xr extattr 9
-.It Fa attrname
-the name of the extended attribute
-.El
-.Pp
-Named extended attribute semantics vary by file system implementing the call.
-Not all operations may be supported for a particular attribute.
-Additionally, the format of the data in
-.Fa data
-is attribute-specific.
-.Pp
-For more information on named extended attributes, please see
-.Xr extattr 9 .
-.Sh RETURN VALUES
-If successful, the
-.Fn extattr_get_fd ,
-.Fn extattr_get_file ,
-.Fn extattr_get_link ,
-.Fn extattr_list_fd ,
-.Fn extattr_list_file ,
-.Fn extattr_list_link ,
-.Fn extattr_set_fd ,
-.Fn extattr_set_file ,
-and
-.Fn extattr_set_link
-calls return the number of bytes
-that were read or written from the
-.Fa data ,
-respectively.
-If
-.Fa data
-was
-.Dv NULL ,
-then
-.Fn extattr_get_fd ,
-.Fn extattr_get_file ,
-.Fn extattr_get_link ,
-.Fn extattr_list_fd ,
-.Fn extattr_list_file ,
-and
-.Fn extattr_list_link
-return the number of bytes available to read.
-If any of the calls are unsuccessful, the value \-1 is returned
-and the global variable
-.Va errno
-is set to indicate the error.
-.Pp
-.Rv -std extattr_delete_file
-.Sh ERRORS
-The following errors may be returned by the system calls themselves.
-Additionally, the file system implementing the call may return any
-other errors it desires.
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa attrnamespace
-and
-.Fa attrname
-arguments,
-or the memory range defined by
-.Fa data
-and
-.Fa nbytes
-point outside the process's allocated address space.
-.It Bq Er ENAMETOOLONG
-The attribute name was longer than
-.Dv EXTATTR_MAXNAMELEN .
-.El
-.Pp
-The
-.Fn extattr_get_fd ,
-.Fn extattr_set_fd ,
-.Fn extattr_delete_fd ,
-and
-.Fn extattr_list_fd
-system calls may also fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The file descriptor referenced by
-.Fa fd
-was invalid.
-.El
-.Pp
-Additionally, the
-.Fn extattr_get_file ,
-.Fn extattr_set_file ,
-and
-.Fn extattr_delete_file
-calls may also fail due to the following errors:
-.Bl -tag -width Er
-.It Bq Er ENOATTR
-The requested attribute was not defined for this file.
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of the path name that must exist does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.\" XXX are any missing?
-.El
-.Sh SEE ALSO
-.Xr extattr 3 ,
-.Xr getextattr 8 ,
-.Xr setextattr 8 ,
-.Xr extattr 9 ,
-.Xr VOP_GETEXTATTR 9 ,
-.Xr VOP_SETEXTATTR 9
-.Sh HISTORY
-Extended attribute support was developed as part of the
-.Tn TrustedBSD
-Project, and introduced in
-.Fx 5.0 .
-It was developed to support security extensions requiring additional labels
-to be associated with each file or directory.
-.Sh CAVEATS
-This interface is under active development, and as such is subject to
-change as applications are adapted to use it.
-Developers are discouraged from relying on its stability.
-.Sh BUGS
-In earlier versions of this API, passing an empty string for the
-attribute name to
-.Fn extattr_get_fd ,
-.Fn extattr_get_file ,
-or
-.Fn extattr_get_link
-would return the list of attributes defined for the target object.
-This interface has been deprecated in preference to using the explicit
-list API, and should not be used.
diff --git a/lib/libc/sys/fcntl.2 b/lib/libc/sys/fcntl.2
deleted file mode 100644
index d6d48f7a4797..000000000000
--- a/lib/libc/sys/fcntl.2
+++ /dev/null
@@ -1,793 +0,0 @@
-.\" Copyright (c) 1983, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94
-.\" $FreeBSD$
-.\"
-.Dd December 7, 2021
-.Dt FCNTL 2
-.Os
-.Sh NAME
-.Nm fcntl
-.Nd file control
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In fcntl.h
-.Ft int
-.Fn fcntl "int fd" "int cmd" "..."
-.Sh DESCRIPTION
-The
-.Fn fcntl
-system call provides for control over descriptors.
-The argument
-.Fa fd
-is a descriptor to be operated on by
-.Fa cmd
-as described below.
-Depending on the value of
-.Fa cmd ,
-.Fn fcntl
-can take an additional third argument
-.Fa arg .
-Unless otherwise noted below for a specific operation,
-.Fa arg
-has type
-.Vt int .
-.Bl -tag -width F_DUP2FD_CLOEXEC
-.It Dv F_DUPFD
-Return a new descriptor as follows:
-.Pp
-.Bl -bullet -compact -offset 4n
-.It
-Lowest numbered available descriptor greater than or equal to
-.Fa arg .
-.It
-Same object references as the original descriptor.
-.It
-New descriptor shares the same file offset if the object
-was a file.
-.It
-Same access mode (read, write or read/write).
-.It
-Same file status flags (i.e., both file descriptors
-share the same file status flags).
-.It
-The close-on-exec flag
-.Dv FD_CLOEXEC
-associated with the new file descriptor is cleared, so the file descriptor is
-to remain open across
-.Xr execve 2
-system calls.
-.El
-.It Dv F_DUPFD_CLOEXEC
-Like
-.Dv F_DUPFD ,
-but the
-.Dv FD_CLOEXEC
-flag associated with the new file descriptor is set, so the file descriptor
-is closed when
-.Xr execve 2
-system call executes.
-.It Dv F_DUP2FD
-It is functionally equivalent to
-.Bd -literal -offset indent
-dup2(fd, arg)
-.Ed
-.It Dv F_DUP2FD_CLOEXEC
-Like
-.Dv F_DUP2FD ,
-but the
-.Dv FD_CLOEXEC
-flag associated with the new file descriptor is set.
-.Pp
-The
-.Dv F_DUP2FD
-and
-.Dv F_DUP2FD_CLOEXEC
-constants are not portable, so they should not be used if
-portability is needed.
-Use
-.Fn dup2
-instead of
-.Dv F_DUP2FD .
-.It Dv F_GETFD
-Get the close-on-exec flag associated with the file descriptor
-.Fa fd
-as
-.Dv FD_CLOEXEC .
-If the returned value ANDed with
-.Dv FD_CLOEXEC
-is 0,
-the file will remain open across
-.Fn exec ,
-otherwise the file will be closed upon execution of
-.Fn exec
-.Fa ( arg
-is ignored).
-.It Dv F_SETFD
-Set the close-on-exec flag associated with
-.Fa fd
-to
-.Fa arg ,
-where
-.Fa arg
-is either 0 or
-.Dv FD_CLOEXEC ,
-as described above.
-.It Dv F_GETFL
-Get descriptor status flags, as described below
-.Fa ( arg
-is ignored).
-.It Dv F_SETFL
-Set descriptor status flags to
-.Fa arg .
-.It Dv F_GETOWN
-Get the process ID or process group
-currently receiving
-.Dv SIGIO
-and
-.Dv SIGURG
-signals; process groups are returned
-as negative values
-.Fa ( arg
-is ignored).
-.It Dv F_SETOWN
-Set the process or process group
-to receive
-.Dv SIGIO
-and
-.Dv SIGURG
-signals;
-process groups are specified by supplying
-.Fa arg
-as negative, otherwise
-.Fa arg
-is interpreted as a process ID.
-.It Dv F_READAHEAD
-Set or clear the read ahead amount for sequential access to the third
-argument,
-.Fa arg ,
-which is rounded up to the nearest block size.
-A zero value in
-.Fa arg
-turns off read ahead, a negative value restores the system default.
-.It Dv F_RDAHEAD
-Equivalent to Darwin counterpart which sets read ahead amount of 128KB
-when the third argument,
-.Fa arg
-is non-zero.
-A zero value in
-.Fa arg
-turns off read ahead.
-.It Dv F_ADD_SEALS
-Add seals to the file as described below, if the underlying filesystem supports
-seals.
-.It Dv F_GET_SEALS
-Get seals associated with the file, if the underlying filesystem supports seals.
-.It Dv F_ISUNIONSTACK
-Check if the vnode is part of a union stack (either the "union" flag from
-.Xr mount 2
-or unionfs).
-This is a hack not intended to be used outside of libc.
-.It Dv F_KINFO
-Fills a
-.Vt struct kinfo_file
-for the file referenced by the specified file descriptor.
-The
-.Fa arg
-argument should point to the storage for
-.Vt struct kinfo_file .
-The
-.Va kf_structsize
-member of the passed structure must be initialized with the sizeof of
-.Vt struct kinfo_file ,
-to allow for the interface versioning and evolution.
-.El
-.Pp
-The flags for the
-.Dv F_GETFL
-and
-.Dv F_SETFL
-commands are as follows:
-.Bl -tag -width O_NONBLOCKX
-.It Dv O_NONBLOCK
-Non-blocking I/O; if no data is available to a
-.Xr read 2
-system call, or if a
-.Xr write 2
-operation would block,
-the read or write call returns -1 with the error
-.Er EAGAIN .
-.It Dv O_APPEND
-Force each write to append at the end of file;
-corresponds to the
-.Dv O_APPEND
-flag of
-.Xr open 2 .
-.It Dv O_DIRECT
-Minimize or eliminate the cache effects of reading and writing.
-The system
-will attempt to avoid caching the data you read or write.
-If it cannot
-avoid caching the data, it will minimize the impact the data has on the cache.
-Use of this flag can drastically reduce performance if not used with care.
-.It Dv O_ASYNC
-Enable the
-.Dv SIGIO
-signal to be sent to the process group
-when I/O is possible, e.g.,
-upon availability of data to be read.
-.It Dv O_SYNC
-Enable synchronous writes.
-Corresponds to the
-.Dv O_SYNC
-flag of
-.Xr open 2 .
-.Dv O_FSYNC
-is an historical synonym for
-.Dv O_SYNC .
-.It Dv O_DSYNC
-Enable synchronous data writes.
-Corresponds to the
-.Dv O_DSYNC
-flag of
-.Xr open 2 .
-.El
-.Pp
-The seals that may be applied with
-.Dv F_ADD_SEALS
-are as follows:
-.Bl -tag -width F_SEAL_SHRINK
-.It Dv F_SEAL_SEAL
-Prevent any further seals from being applied to the file.
-.It Dv F_SEAL_SHRINK
-Prevent the file from being shrunk with
-.Xr ftruncate 2 .
-.It Dv F_SEAL_GROW
-Prevent the file from being enlarged with
-.Xr ftruncate 2 .
-.It Dv F_SEAL_WRITE
-Prevent any further
-.Xr write 2
-calls to the file.
-Any writes in progress will finish before
-.Fn fcntl
-returns.
-If any writeable mappings exist, F_ADD_SEALS will fail and return
-.Dv EBUSY .
-.El
-.Pp
-Seals are on a per-inode basis and require support by the underlying filesystem.
-If the underlying filesystem does not support seals,
-.Dv F_ADD_SEALS
-and
-.Dv F_GET_SEALS
-will fail and return
-.Dv EINVAL .
-.Pp
-Several operations are available for doing advisory file locking;
-they all operate on the following structure:
-.Bd -literal
-struct flock {
- off_t l_start; /* starting offset */
- off_t l_len; /* len = 0 means until end of file */
- pid_t l_pid; /* lock owner */
- short l_type; /* lock type: read/write, etc. */
- short l_whence; /* type of l_start */
- int l_sysid; /* remote system id or zero for local */
-};
-.Ed
-These advisory file locking operations take a pointer to
-.Vt struct flock
-as the third argument
-.Fa arg .
-The commands available for advisory record locking are as follows:
-.Bl -tag -width F_SETLKWX
-.It Dv F_GETLK
-Get the first lock that blocks the lock description pointed to by the
-third argument,
-.Fa arg ,
-taken as a pointer to a
-.Fa "struct flock"
-(see above).
-The information retrieved overwrites the information passed to
-.Fn fcntl
-in the
-.Fa flock
-structure.
-If no lock is found that would prevent this lock from being created,
-the structure is left unchanged by this system call except for the
-lock type which is set to
-.Dv F_UNLCK .
-.It Dv F_SETLK
-Set or clear a file segment lock according to the lock description
-pointed to by the third argument,
-.Fa arg ,
-taken as a pointer to a
-.Fa "struct flock"
-(see above).
-.Dv F_SETLK
-is used to establish shared (or read) locks
-.Pq Dv F_RDLCK
-or exclusive (or write) locks,
-.Pq Dv F_WRLCK ,
-as well as remove either type of lock
-.Pq Dv F_UNLCK .
-If a shared or exclusive lock cannot be set,
-.Fn fcntl
-returns immediately with
-.Er EAGAIN .
-.It Dv F_SETLKW
-This command is the same as
-.Dv F_SETLK
-except that if a shared or exclusive lock is blocked by other locks,
-the process waits until the request can be satisfied.
-If a signal that is to be caught is received while
-.Fn fcntl
-is waiting for a region, the
-.Fn fcntl
-will be interrupted if the signal handler has not specified the
-.Dv SA_RESTART
-(see
-.Xr sigaction 2 ) .
-.El
-.Pp
-When a shared lock has been set on a segment of a file,
-other processes can set shared locks on that segment
-or a portion of it.
-A shared lock prevents any other process from setting an exclusive
-lock on any portion of the protected area.
-A request for a shared lock fails if the file descriptor was not
-opened with read access.
-.Pp
-An exclusive lock prevents any other process from setting a shared lock or
-an exclusive lock on any portion of the protected area.
-A request for an exclusive lock fails if the file was not
-opened with write access.
-.Pp
-The value of
-.Fa l_whence
-is
-.Dv SEEK_SET ,
-.Dv SEEK_CUR ,
-or
-.Dv SEEK_END
-to indicate that the relative offset,
-.Fa l_start
-bytes, will be measured from the start of the file,
-current position, or end of the file, respectively.
-The value of
-.Fa l_len
-is the number of consecutive bytes to be locked.
-If
-.Fa l_len
-is negative,
-.Fa l_start
-means end edge of the region.
-The
-.Fa l_pid
-and
-.Fa l_sysid
-fields are only used with
-.Dv F_GETLK
-to return the process ID of the process holding a blocking lock and
-the system ID of the system that owns that process.
-Locks created by the local system will have a system ID of zero.
-After a successful
-.Dv F_GETLK
-request, the value of
-.Fa l_whence
-is
-.Dv SEEK_SET .
-.Pp
-Locks may start and extend beyond the current end of a file,
-but may not start or extend before the beginning of the file.
-A lock is set to extend to the largest possible value of the
-file offset for that file if
-.Fa l_len
-is set to zero.
-If
-.Fa l_whence
-and
-.Fa l_start
-point to the beginning of the file, and
-.Fa l_len
-is zero, the entire file is locked.
-If an application wishes only to do entire file locking, the
-.Xr flock 2
-system call is much more efficient.
-.Pp
-There is at most one type of lock set for each byte in the file.
-Before a successful return from an
-.Dv F_SETLK
-or an
-.Dv F_SETLKW
-request when the calling process has previously existing locks
-on bytes in the region specified by the request,
-the previous lock type for each byte in the specified
-region is replaced by the new lock type.
-As specified above under the descriptions
-of shared locks and exclusive locks, an
-.Dv F_SETLK
-or an
-.Dv F_SETLKW
-request fails or blocks respectively when another process has existing
-locks on bytes in the specified region and the type of any of those
-locks conflicts with the type specified in the request.
-.Pp
-The queuing for
-.Dv F_SETLKW
-requests on local files is fair;
-that is, while the thread is blocked,
-subsequent requests conflicting with its requests will not be granted,
-even if these requests do not conflict with existing locks.
-.Pp
-This interface follows the completely stupid semantics of System V and
-.St -p1003.1-88
-that require that all locks associated with a file for a given process are
-removed when
-.Em any
-file descriptor for that file is closed by that process.
-This semantic means that applications must be aware of any files that
-a subroutine library may access.
-For example if an application for updating the password file locks the
-password file database while making the update, and then calls
-.Xr getpwnam 3
-to retrieve a record,
-the lock will be lost because
-.Xr getpwnam 3
-opens, reads, and closes the password database.
-The database close will release all locks that the process has
-associated with the database, even if the library routine never
-requested a lock on the database.
-Another minor semantic problem with this interface is that
-locks are not inherited by a child process created using the
-.Xr fork 2
-system call.
-The
-.Xr flock 2
-interface has much more rational last close semantics and
-allows locks to be inherited by child processes.
-The
-.Xr flock 2
-system call is recommended for applications that want to ensure the integrity
-of their locks when using library routines or wish to pass locks
-to their children.
-.Pp
-The
-.Fn fcntl ,
-.Xr flock 2 ,
-and
-.Xr lockf 3
-locks are compatible.
-Processes using different locking interfaces can cooperate
-over the same file safely.
-However, only one of such interfaces should be used within
-the same process.
-If a file is locked by a process through
-.Xr flock 2 ,
-any record within the file will be seen as locked
-from the viewpoint of another process using
-.Fn fcntl
-or
-.Xr lockf 3 ,
-and vice versa.
-Note that
-.Fn fcntl F_GETLK
-returns \-1 in
-.Fa l_pid
-if the process holding a blocking lock previously locked the
-file descriptor by
-.Xr flock 2 .
-.Pp
-All locks associated with a file for a given process are
-removed when the process terminates.
-.Pp
-All locks obtained before a call to
-.Xr execve 2
-remain in effect until the new program releases them.
-If the new program does not know about the locks, they will not be
-released until the program exits.
-.Pp
-A potential for deadlock occurs if a process controlling a locked region
-is put to sleep by attempting to lock the locked region of another process.
-This implementation detects that sleeping until a locked region is unlocked
-would cause a deadlock and fails with an
-.Er EDEADLK
-error.
-.Sh RETURN VALUES
-Upon successful completion, the value returned depends on
-.Fa cmd
-as follows:
-.Bl -tag -width F_GETOWNX -offset indent
-.It Dv F_DUPFD
-A new file descriptor.
-.It Dv F_DUP2FD
-A file descriptor equal to
-.Fa arg .
-.It Dv F_GETFD
-Value of flag (only the low-order bit is defined).
-.It Dv F_GETFL
-Value of flags.
-.It Dv F_GETOWN
-Value of file descriptor owner.
-.It other
-Value other than -1.
-.El
-.Pp
-Otherwise, a value of -1 is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn fcntl
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The argument
-.Fa cmd
-is
-.Dv F_SETLK ,
-the type of lock
-.Pq Fa l_type
-is a shared lock
-.Pq Dv F_RDLCK
-or exclusive lock
-.Pq Dv F_WRLCK ,
-and the segment of a file to be locked is already
-exclusive-locked by another process;
-or the type is an exclusive lock and some portion of the
-segment of a file to be locked is already shared-locked or
-exclusive-locked by another process.
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid open file descriptor.
-.Pp
-The argument
-.Fa cmd
-is
-.Dv F_DUP2FD ,
-and
-.Fa arg
-is not a valid file descriptor.
-.Pp
-The argument
-.Fa cmd
-is
-.Dv F_SETLK
-or
-.Dv F_SETLKW ,
-the type of lock
-.Pq Fa l_type
-is a shared lock
-.Pq Dv F_RDLCK ,
-and
-.Fa fd
-is not a valid file descriptor open for reading.
-.Pp
-The argument
-.Fa cmd
-is
-.Dv F_SETLK
-or
-.Dv F_SETLKW ,
-the type of lock
-.Pq Fa l_type
-is an exclusive lock
-.Pq Dv F_WRLCK ,
-and
-.Fa fd
-is not a valid file descriptor open for writing.
-.It Bq Er EBUSY
-The argument
-.Fa cmd
-is
-.Dv F_ADD_SEALS ,
-attempting to set
-.Dv F_SEAL_WRITE ,
-and writeable mappings of the file exist.
-.It Bq Er EDEADLK
-The argument
-.Fa cmd
-is
-.Dv F_SETLKW ,
-and a deadlock condition was detected.
-.It Bq Er EINTR
-The argument
-.Fa cmd
-is
-.Dv F_SETLKW ,
-and the system call was interrupted by a signal.
-.It Bq Er EINVAL
-The
-.Fa cmd
-argument
-is
-.Dv F_DUPFD
-and
-.Fa arg
-is negative or greater than the maximum allowable number
-(see
-.Xr getdtablesize 2 ) .
-.Pp
-The argument
-.Fa cmd
-is
-.Dv F_GETLK ,
-.Dv F_SETLK
-or
-.Dv F_SETLKW
-and the data to which
-.Fa arg
-points is not valid.
-.Pp
-The argument
-.Fa cmd
-is
-.Dv F_ADD_SEALS
-or
-.Dv F_GET_SEALS ,
-and the underlying filesystem does not support sealing.
-.Pp
-The argument
-.Fa cmd
-is invalid.
-.It Bq Er EMFILE
-The argument
-.Fa cmd
-is
-.Dv F_DUPFD
-and the maximum number of file descriptors permitted for the
-process are already in use,
-or no file descriptors greater than or equal to
-.Fa arg
-are available.
-.It Bq Er ENOTTY
-The
-.Fa fd
-argument is not a valid file descriptor for the requested operation.
-This may be the case if
-.Fa fd
-is a device node, or a descriptor returned by
-.Xr kqueue 2 .
-.It Bq Er ENOLCK
-The argument
-.Fa cmd
-is
-.Dv F_SETLK
-or
-.Dv F_SETLKW ,
-and satisfying the lock or unlock request would result in the
-number of locked regions in the system exceeding a system-imposed limit.
-.It Bq Er EOPNOTSUPP
-The argument
-.Fa cmd
-is
-.Dv F_GETLK ,
-.Dv F_SETLK
-or
-.Dv F_SETLKW
-and
-.Fa fd
-refers to a file for which locking is not supported.
-.It Bq Er EOVERFLOW
-The argument
-.Fa cmd
-is
-.Dv F_GETLK ,
-.Dv F_SETLK
-or
-.Dv F_SETLKW
-and an
-.Fa off_t
-calculation overflowed.
-.It Bq Er EPERM
-The
-.Fa cmd
-argument
-is
-.Dv F_SETOWN
-and
-the process ID or process group given as an argument is in a
-different session than the caller.
-.Pp
-The
-.Fa cmd
-argument
-is
-.Dv F_ADD_SEALS
-and the
-.Dv F_SEAL_SEAL
-seal has already been set.
-.It Bq Er ESRCH
-The
-.Fa cmd
-argument
-is
-.Dv F_SETOWN
-and
-the process ID given as argument is not in use.
-.El
-.Pp
-In addition, if
-.Fa fd
-refers to a descriptor open on a terminal device (as opposed to a
-descriptor open on a socket), a
-.Fa cmd
-of
-.Dv F_SETOWN
-can fail for the same reasons as in
-.Xr tcsetpgrp 3 ,
-and a
-.Fa cmd
-of
-.Dv F_GETOWN
-for the reasons as stated in
-.Xr tcgetpgrp 3 .
-.Sh SEE ALSO
-.Xr close 2 ,
-.Xr dup2 2 ,
-.Xr execve 2 ,
-.Xr flock 2 ,
-.Xr getdtablesize 2 ,
-.Xr open 2 ,
-.Xr sigaction 2 ,
-.Xr lockf 3 ,
-.Xr tcgetpgrp 3 ,
-.Xr tcsetpgrp 3
-.Sh STANDARDS
-The
-.Dv F_DUP2FD
-constant is non portable.
-It is provided for compatibility with AIX and Solaris.
-.Pp
-Per
-.St -susv4 ,
-a call with
-.Dv F_SETLKW
-should fail with
-.Bq Er EINTR
-after any caught signal
-and should continue waiting during thread suspension such as a stop signal.
-However, in this implementation a call with
-.Dv F_SETLKW
-is restarted after catching a signal with a
-.Dv SA_RESTART
-handler or a thread suspension such as a stop signal.
-.Sh HISTORY
-The
-.Fn fcntl
-system call appeared in
-.Bx 4.2 .
-.Pp
-The
-.Dv F_DUP2FD
-constant first appeared in
-.Fx 7.1 .
diff --git a/lib/libc/sys/fcntl.c b/lib/libc/sys/fcntl.c
index f61cf426cc30..fc225fdeb379 100644
--- a/lib/libc/sys/fcntl.c
+++ b/lib/libc/sys/fcntl.c
@@ -1,12 +1,11 @@
/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2008 Isilon Inc http://www.isilon.com/
* 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.
@@ -33,9 +32,6 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <fcntl.h>
#include <stdarg.h>
#include <sys/types.h>
@@ -53,6 +49,5 @@ fcntl(int fd, int cmd, ...)
arg = va_arg(args, long);
va_end(args);
- return (((int (*)(int, int, ...))
- __libc_interposing[INTERPOS_fcntl])(fd, cmd, arg));
+ return (INTERPOS_SYS(fcntl, fd, cmd, arg));
}
diff --git a/lib/libc/sys/fdatasync.c b/lib/libc/sys/fdatasync.c
index fed97913d31e..15cef821dc1e 100644
--- a/lib/libc/sys/fdatasync.c
+++ b/lib/libc/sys/fdatasync.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2016 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/types.h>
#include <sys/fcntl.h>
#include <unistd.h>
@@ -41,6 +37,5 @@ __FBSDID("$FreeBSD$");
int
fdatasync(int fd)
{
-
- return (((int (*)(int))__libc_interposing[INTERPOS_fdatasync])(fd));
+ return (INTERPOS_SYS(fdatasync, fd));
}
diff --git a/lib/libc/sys/ffclock.2 b/lib/libc/sys/ffclock.2
deleted file mode 100644
index 78fed527b148..000000000000
--- a/lib/libc/sys/ffclock.2
+++ /dev/null
@@ -1,177 +0,0 @@
-.\" Copyright (c) 2011 The University of Melbourne
-.\" All rights reserved.
-.\"
-.\" This documentation was written by Julien Ridoux at the University of
-.\" Melbourne 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, 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd November 21, 2011
-.Dt FFCLOCK 2
-.Os
-.Sh NAME
-.Nm ffclock_getcounter ,
-.Nm ffclock_getestimate ,
-.Nm ffclock_setestimate
-.Nd Retrieve feed-forward counter, get and set feed-forward clock estimates
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/timeffc.h
-.Ft int
-.Fn ffclock_getcounter "ffcounter *ffcount"
-.Ft int
-.Fn ffclock_getestimate "struct ffclock_estimate *cest"
-.Ft int
-.Fn ffclock_setestimate "struct ffclock_estimate *cest"
-.Sh DESCRIPTION
-The ffclock is an alternative method to synchronise the system clock.
-The ffclock implements a feed-forward paradigm and decouples the timestamping
-and timekeeping kernel functions.
-This ensures that past clock errors do not affect current timekeeping, an
-approach radically different from the feedback alternative implemented by the
-ntpd daemon when adjusting the system clock.
-The feed-forward approach has demonstrated better performance and higher
-robustness than a feedback approach when synchronising over the network.
-.Pp
-In the feed-forward context, a
-.Em timestamp
-is a cumulative value of the ticks of the timecounter, which can be converted
-into seconds by using the feed-forward
-.Em clock estimates .
-.Pp
-The
-.Fn ffclock_getcounter
-system call allows the calling process to retrieve the current value of the
-feed-forward counter maintained by the kernel.
-.Pp
-The
-.Fn ffclock_getestimate
-and
-.Fn ffclock_setestimate
-system calls allow the caller to get and set the kernel's feed-forward clock
-parameter estimates respectively.
-The
-.Fn ffclock_setestimate
-system call should be invoked by a single instance of a feed-forward
-synchronisation daemon.
-The
-.Fn ffclock_getestimate
-system call can be called by any process to retrieve the feed-forward clock
-estimates.
-.Pp
-The feed-forward approach does not require that the clock estimates be retrieved
-every time a timestamp is to be converted into seconds.
-The number of system calls can therefore be greatly reduced if the calling
-process retrieves the clock estimates from the clock synchronisation daemon
-instead.
-The
-.Fn ffclock_getestimate
-must be used when the feed-forward synchronisation daemon is not running
-.Po see
-.Sx USAGE
-below
-.Pc .
-.Pp
-The clock parameter estimates structure pointed to by
-.Fa cest
-is defined in
-.In sys/timeffc.h
-as:
-.Bd -literal
-struct ffclock_estimate {
- struct bintime update_time; /* Time of last estimates update. */
- ffcounter update_ffcount; /* Counter value at last update. */
- ffcounter leapsec_next; /* Counter value of next leap second. */
- uint64_t period; /* Estimate of counter period. */
- uint32_t errb_abs; /* Bound on absolute clock error [ns]. */
- uint32_t errb_rate; /* Bound on counter rate error [ps/s]. */
- uint32_t status; /* Clock status. */
- int16_t leapsec_total; /* All leap seconds seen so far. */
- int8_t leapsec; /* Next leap second (in {-1,0,1}). */
-};
-.Ed
-.Pp
-Only the super-user may set the feed-forward clock estimates.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The following error codes may be set in
-.Va errno :
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa ffcount
-or
-.Fa cest
-pointer referenced invalid memory.
-.It Bq Er EPERM
-A user other than the super-user attempted to set the feed-forward clock
-parameter estimates.
-.El
-.Sh USAGE
-The feed-forward paradigm enables the definition of specialised clock functions.
-.Pp
-In its simplest form,
-.Fn ffclock_getcounter
-can be used to establish strict order between events or to measure small time
-intervals very accurately with a minimum performance cost.
-.Pp
-Different methods exist to access absolute time
-.Po or
-.Qq wall-clock time
-.Pc tracked by the ffclock.
-The simplest method uses the ffclock sysctl interface
-.Va kern.ffclock
-to make the system clock return the ffclock time.
-The
-.Xr clock_gettime 2
-system call can then be used to retrieve the current time seen by the
-feed-forward clock.
-Note that this setting affects the entire system and that a feed-forward
-synchronisation daemon should be running.
-.Pp
-A less automated method consists of retrieving the feed-forward counter
-timestamp from the kernel and using the feed-forward clock parameter estimates
-to convert the timestamp into seconds.
-The feed-forward clock parameter estimates can be retrieved from the kernel or
-from the synchronisation daemon directly (preferred).
-This method allows converting timestamps using different clock models as needed
-by the application, while collecting meaningful upper bounds on current clock
-error.
-.Sh SEE ALSO
-.Xr date 1 ,
-.Xr adjtime 2 ,
-.Xr clock_gettime 2 ,
-.Xr ctime 3
-.Sh HISTORY
-Feed-forward clock support first appeared in
-.Fx 10.0 .
-.Sh AUTHORS
-.An -nosplit
-The feed-forward clock support was written by
-.An Julien Ridoux Aq Mt jridoux@unimelb.edu.au
-in collaboration with
-.An Darryl Veitch Aq Mt dveitch@unimelb.edu.au
-at the University of Melbourne under sponsorship from the FreeBSD Foundation.
diff --git a/lib/libc/sys/fhlink.2 b/lib/libc/sys/fhlink.2
deleted file mode 100644
index 029ec8d7c2eb..000000000000
--- a/lib/libc/sys/fhlink.2
+++ /dev/null
@@ -1,250 +0,0 @@
-.\" SPDX-License-Identifier: BSD-2-Clause
-.\"
-.\" Copyright (c) 2018 Gandi
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 23, 2021
-.Dt FHLINK 2
-.Os
-.Sh NAME
-.Nm fhlink ,
-.Nm fhlinkat
-.Nd make a hard file link
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn fhlink "fhandle_t *fhp" "const char *to"
-.Ft int
-.Fn fhlinkat "fhandle_t *fhp" "int tofd" "const char *to"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn fhlink
-system call
-atomically creates the specified directory entry (hard link)
-.Fa to
-with the attributes of the underlying object pointed at by
-.Fa fhp .
-If the link is successful: the link count of the underlying object
-is incremented;
-.Fa fhp
-and
-.Fa to
-share equal access and rights
-to the
-underlying object.
-.Pp
-If
-.Fa fhp
-is removed, the file
-.Fa to
-is not deleted and the link count of the
-underlying object is
-decremented.
-.Pp
-The object pointed at by the
-.Fa fhp
-argument
-must exist for the hard link to
-succeed and
-both
-.Fa fhp
-and
-.Fa to
-must be in the same file system.
-The
-.Fa fhp
-argument
-may not be a directory.
-.Pp
-The
-.Fn fhlinkat
-system call is equivalent to
-.Fa fhlink
-except in the case where
-.Fa to
-is a relative paths.
-In this case a relative path
-.Fa to
-is interpreted relative to
-the directory associated with the file descriptor
-.Fa tofd
-instead of the current working directory.
-.Pp
-If
-.Fn fhlinkat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa tofd
-parameter, the current working directory is used for the
-.Fa to
-argument.
-If
-.Fa tofd
-has value
-.Dv AT_FDCWD ,
-the behavior is identical to a call to
-.Fn link .
-Unless
-.Fa flag
-contains the
-.Dv AT_SYMLINK_FOLLOW
-flag, if
-.Fa fhp
-names a symbolic link, a new link is created for the symbolic link
-.Fa fhp
-and not its target.
-.Sh RETURN VALUES
-.Rv -std link
-.Sh ERRORS
-The
-.Fn fhlink
-system call
-will fail and no link will be created if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of
-.Fa to
-prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of
-.Fa to
-exceeded 255 characters,
-or entire length of
-.Fa to
-name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of
-.Fa to
-prefix does not exist.
-.It Bq Er EOPNOTSUPP
-The file system containing the file pointed at by
-.Fa fhp
-does not support links.
-.It Bq Er EMLINK
-The link count of the file pointed at by
-.Fa fhp
-would exceed 32767.
-.It Bq Er EACCES
-A component of
-.Fa to
-prefix denies search permission.
-.It Bq Er EACCES
-The requested link requires writing in a directory with a mode
-that denies write permission.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating one of the pathnames.
-.It Bq Er ENOENT
-The file pointed at by
-.Fa fhp
-does not exist.
-.It Bq Er EEXIST
-The link named by
-.Fa to
-does exist.
-.It Bq Er EPERM
-The file pointed at by
-.Fa fhp
-is a directory.
-.It Bq Er EPERM
-The file pointed at by
-.Fa fhp
-has its immutable or append-only flag set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EPERM
-The parent directory of the file named by
-.Fa to
-has its immutable flag set.
-.It Bq Er EXDEV
-The link named by
-.Fa to
-and the file pointed at by
-.Fa fhp
-are on different file systems.
-.It Bq Er ENOSPC
-The directory in which the entry for the new link is being placed
-cannot be extended because there is no space left on the file
-system containing the directory.
-.It Bq Er EDQUOT
-The directory in which the entry for the new link
-is being placed cannot be extended because the
-user's quota of disk blocks on the file system
-containing the directory has been exhausted.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to
-the file system to make the directory entry.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EROFS
-The requested link requires writing in a directory on a read-only file
-system.
-.It Bq Er EFAULT
-One of the pathnames specified
-is outside the process's allocated address space.
-.It Bq Er ESTALE
-The file handle
-.Fa fhp
-is no longer valid
-.El
-.Pp
-In addition to the errors returned by the
-.Fn fhlink ,
-the
-.Fn fhlinkat
-system call may fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fhp
-or
-.Fa to
-argument does not specify an absolute path and the
-.Fa tofd
-argument, is not
-.Dv AT_FDCWD
-nor a valid file descriptor open for searching.
-.It Bq Er EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.It Bq Er ENOTDIR
-The
-.Fa fhp
-or
-.Fa to
-argument is not an absolute path and
-.Fa tofd
-is not
-.Dv AT_FDCWD
-nor a file descriptor associated with a directory.
-.El
-.Sh SEE ALSO
-.Xr fhopen 2 ,
-.Xr fhreadlink 2 ,
-.Xr fhstat 2
diff --git a/lib/libc/sys/fhopen.2 b/lib/libc/sys/fhopen.2
deleted file mode 100644
index 2a609c1c2cd2..000000000000
--- a/lib/libc/sys/fhopen.2
+++ /dev/null
@@ -1,147 +0,0 @@
-.\" $NetBSD: fhopen.2,v 1.1 1999/06/30 01:32:15 wrstuden Exp $
-.\"
-.\" Copyright (c) 1999 National Aeronautics & Space Administration
-.\" All rights reserved.
-.\"
-.\" This software was written by William Studenmund of the
-.\" Numerical Aerospace Simulation Facility, NASA Ames Research Center.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the National Aeronautics & Space Administration
-.\" 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 NATIONAL AERONAUTICS & SPACE ADMINISTRATION
-.\" ``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 ADMINISTRATION OR CONTRIB-
-.\" UTORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd June 29, 1999
-.Dt FHOPEN 2
-.Os
-.Sh NAME
-.Nm fhopen ,
-.Nm fhstat ,
-.Nm fhstatfs
-.Nd access file via file handle
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/mount.h
-.In sys/stat.h
-.Ft int
-.Fn fhopen "const fhandle_t *fhp" "int flags"
-.Ft int
-.Fn fhstat "const fhandle_t *fhp" "struct stat *sb"
-.Ft int
-.Fn fhstatfs "const fhandle_t *fhp" "struct statfs *buf"
-.Sh DESCRIPTION
-These system calls provide a means to access a file given the file handle
-.Fa fhp .
-As this method bypasses directory access restrictions, these calls are
-restricted to the superuser.
-.Pp
-The
-.Fn fhopen
-system call
-opens the file referenced by
-.Fa fhp
-for reading and/or writing as specified by the argument
-.Fa flags
-and returns the file descriptor to the calling process.
-The
-.Fa flags
-argument
-is specified by
-.Em or Ns 'ing
-together the flags used for the
-.Xr open 2
-system call.
-All said flags are valid except for
-.Dv O_CREAT .
-.Pp
-The
-.Fn fhstat
-and
-.Fn fhstatfs
-system calls
-provide the functionality of the
-.Xr fstat 2
-and
-.Xr fstatfs 2
-calls except that they return information for the file referred to by
-.Fa fhp
-rather than an open file.
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn fhopen
-returns the file descriptor for the opened file;
-otherwise the value \-1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Pp
-.Rv -std fhstat fhstatfs
-.Sh ERRORS
-In addition to the errors returned by
-.Xr open 2 ,
-.Xr fstat 2 ,
-and
-.Xr fstatfs 2
-respectively,
-.Fn fhopen ,
-.Fn fhstat ,
-and
-.Fn fhstatfs
-will return
-.Bl -tag -width Er
-.It Bq Er EINVAL
-Calling
-.Fn fhopen
-with
-.Dv O_CREAT
-set.
-.It Bq Er ESTALE
-The file handle
-.Fa fhp
-is no longer valid.
-.El
-.Sh SEE ALSO
-.Xr fstat 2 ,
-.Xr fstatfs 2 ,
-.Xr getfh 2 ,
-.Xr open 2
-.Sh HISTORY
-The
-.Fn fhopen ,
-.Fn fhstat ,
-and
-.Fn fhstatfs
-system calls first appeared in
-.Nx 1.5
-and were adapted to
-.Fx 4.0
-by
-.An Alfred Perlstein .
-.Sh AUTHORS
-This manual page was written by
-.An William Studenmund
-for
-.Nx .
diff --git a/lib/libc/sys/fhreadlink.2 b/lib/libc/sys/fhreadlink.2
deleted file mode 100644
index 2837fd593d84..000000000000
--- a/lib/libc/sys/fhreadlink.2
+++ /dev/null
@@ -1,94 +0,0 @@
-.\" SPDX-License-Identifier: BSD-2-Clause
-.\"
-.\" Copyright (c) 2018 Gandi
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt FHREADLINK 2
-.Os
-.Sh NAME
-.Nm fhreadlink
-.Nd read value of a symbolic link
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/mount.h
-.Ft int
-.Fn fhreadlink "fhandle_t *fhp" "char *buf" "size_t bufsize"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn fhreadlink
-system call
-places the contents of the symbolic link
-.Fa fhp
-in the buffer
-.Fa buf ,
-which has size
-.Fa bufsiz .
-The
-.Fn fhreadlink
-system call does not append a
-.Dv NUL
-character to
-.Fa buf .
-.Pp
-.Sh RETURN VALUES
-The call returns the count of characters placed in the buffer
-if it succeeds, or a \-1 if an error occurs, placing the error
-code in the global variable
-.Va errno .
-.Sh ERRORS
-The
-.Fn readlink
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the file handle
-.Fa fhp .
-.It Bq Er EINVAL
-The named file is not a symbolic link.
-.It Bq Er EIO
-An I/O error occurred while reading from the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFAULT
-The
-.Fa buf
-argument
-extends outside the process's allocated address space.
-.It Bq Er ESTALE
-The file handle
-.Fa fhp
-is no longer valid
-.El
-.El
-.Sh SEE ALSO
-.Xr fhstat 2 ,
-.Xr fhlink 2 ,
diff --git a/lib/libc/sys/flock.2 b/lib/libc/sys/flock.2
deleted file mode 100644
index a13320895f40..000000000000
--- a/lib/libc/sys/flock.2
+++ /dev/null
@@ -1,173 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)flock.2 8.2 (Berkeley) 12/11/93
-.\" $FreeBSD$
-.\"
-.Dd November 9, 2011
-.Dt FLOCK 2
-.Os
-.Sh NAME
-.Nm flock
-.Nd "apply or remove an advisory lock on an open file"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/file.h
-.Fd "#define LOCK_SH 0x01 /* shared file lock */"
-.Fd "#define LOCK_EX 0x02 /* exclusive file lock */"
-.Fd "#define LOCK_NB 0x04 /* do not block when locking */"
-.Fd "#define LOCK_UN 0x08 /* unlock file */"
-.Ft int
-.Fn flock "int fd" "int operation"
-.Sh DESCRIPTION
-The
-.Fn flock
-system call applies or removes an
-.Em advisory
-lock on the file associated with the file descriptor
-.Fa fd .
-A lock is applied by specifying an
-.Fa operation
-argument that is one of
-.Dv LOCK_SH
-or
-.Dv LOCK_EX
-with the optional addition of
-.Dv LOCK_NB .
-To unlock
-an existing lock
-.Dv operation
-should be
-.Dv LOCK_UN .
-.Pp
-Advisory locks allow cooperating processes to perform
-consistent operations on files, but do not guarantee
-consistency (i.e., processes may still access files
-without using advisory locks possibly resulting in
-inconsistencies).
-.Pp
-The locking mechanism allows two types of locks:
-.Em shared
-locks and
-.Em exclusive
-locks.
-At any time multiple shared locks may be applied to a file,
-but at no time are multiple exclusive, or both shared and exclusive,
-locks allowed simultaneously on a file.
-.Pp
-A shared lock may be
-.Em upgraded
-to an exclusive lock, and vice versa, simply by specifying
-the appropriate lock type; this results in the previous
-lock being released and the new lock applied (possibly
-after other processes have gained and released the lock).
-.Pp
-Requesting a lock on an object that is already locked
-normally causes the caller to be blocked until the lock may be
-acquired.
-If
-.Dv LOCK_NB
-is included in
-.Fa operation ,
-then this will not happen; instead the call will fail and
-the error
-.Er EWOULDBLOCK
-will be returned.
-.Sh NOTES
-Locks are on files, not file descriptors.
-That is, file descriptors
-duplicated through
-.Xr dup 2
-or
-.Xr fork 2
-do not result in multiple instances of a lock, but rather multiple
-references to a single lock.
-If a process holding a lock on a file
-forks and the child explicitly unlocks the file, the parent will
-lose its lock.
-.Pp
-The
-.Fn flock ,
-.Xr fcntl 2 ,
-and
-.Xr lockf 3
-locks are compatible.
-Processes using different locking interfaces can cooperate
-over the same file safely.
-However, only one of such interfaces should be used within
-the same process.
-If a file is locked by a process through
-.Fn flock ,
-any record within the file will be seen as locked
-from the viewpoint of another process using
-.Xr fcntl 2
-or
-.Xr lockf 3 ,
-and vice versa.
-.Pp
-Processes blocked awaiting a lock may be awakened by signals.
-.Sh RETURN VALUES
-.Rv -std flock
-.Sh ERRORS
-The
-.Fn flock
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EWOULDBLOCK
-The file is locked and the
-.Dv LOCK_NB
-option was specified.
-.It Bq Er EBADF
-The argument
-.Fa fd
-is an invalid descriptor.
-.It Bq Er EINVAL
-The argument
-.Fa fd
-refers to an object other than a file.
-.It Bq Er EOPNOTSUPP
-The argument
-.Fa fd
-refers to an object that does not support file locking.
-.It Bq Er ENOLCK
-A lock was requested, but no locks are available.
-.El
-.Sh SEE ALSO
-.Xr close 2 ,
-.Xr dup 2 ,
-.Xr execve 2 ,
-.Xr fcntl 2 ,
-.Xr fork 2 ,
-.Xr open 2 ,
-.Xr flopen 3 ,
-.Xr lockf 3
-.Sh HISTORY
-The
-.Fn flock
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/fork.2 b/lib/libc/sys/fork.2
deleted file mode 100644
index dbde8f5275aa..000000000000
--- a/lib/libc/sys/fork.2
+++ /dev/null
@@ -1,271 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)fork.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd August 5, 2021
-.Dt FORK 2
-.Os
-.Sh NAME
-.Nm fork
-.Nd create a new process
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft pid_t
-.Fn fork void
-.Ft pid_t
-.Fn _Fork void
-.Sh DESCRIPTION
-The
-.Fn fork
-function causes creation of a new process.
-The new process (child process) is an exact copy of the
-calling process (parent process) except for the following:
-.Bl -bullet -offset indent
-.It
-The child process has a unique process ID.
-.It
-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.
-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
-.Xr lseek 2
-on a descriptor in the child process can affect a subsequent
-.Xr read 2
-or
-.Xr write 2
-by the parent.
-This descriptor copying is also used by the shell to
-establish standard input and output for newly created processes
-as well as to set up pipes.
-.It
-The child process' resource utilizations
-are set to 0; see
-.Xr setrlimit 2 .
-.It
-All interval timers are cleared; see
-.Xr setitimer 2 .
-.It
-The robust mutexes list (see
-.Xr pthread_mutexattr_setrobust 3 )
-is cleared for the child.
-.It
-The atfork handlers established with the
-.Xr pthread_atfork 3
-function are called as appropriate before fork in the parent process,
-and after the child is created, in parent and child.
-.It
-The child process has only one thread,
-corresponding to the calling thread in the parent process.
-If the process has more than one thread,
-locks and other resources held by the other threads are not released
-and therefore only async-signal-safe functions
-(see
-.Xr sigaction 2 )
-are guaranteed to work in the child process until a call to
-.Xr execve 2
-or a similar function.
-The
-.Fx
-implementation of
-.Fn fork
-provides a usable
-.Xr malloc 3 ,
-and
-.Xr rtld 1
-services in the child process.
-.El
-.Pp
-The
-.Fn fork
-function is not async-signal safe and creates a cancellation point
-in the parent process.
-It cannot be safely used from signal handlers, and the atfork handlers
-established by
-.Xr pthread_atfork 3
-do not need to be async-signal safe either.
-.Pp
-The
-.Fn _Fork
-function creates a new process, similarly to
-.Fn fork ,
-but it is async-signal safe.
-.Fn _Fork
-does not call atfork handlers, and does not create a cancellation point.
-It can be used safely from signal handlers, but then no userspace
-services (
-.Xr malloc 3
-or
-.Xr rtld 1 )
-are available in the child if forked from multi-threaded parent.
-In particular, if using dynamic linking, all dynamic symbols used by the
-child after
-.Fn _Fork
-must be pre-resolved.
-Note: resolving can be done globally by specifying the
-.Ev LD_BIND_NOW
-environment variable to the dynamic linker, or per-binary by passing the
-.Fl z Ar now
-option to the static linker
-.Xr ld 1 ,
-or by using each symbol before the
-.Fn _Fork
-call to force the binding.
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn fork
-and
-.Fn _Fork
-return a value
-of 0 to the child process and return the process ID of the child
-process to the parent process.
-Otherwise, a value of -1 is returned
-to the parent process, no child process is created, and the global
-variable
-.Va errno
-is set to indicate the error.
-.Sh EXAMPLES
-The following example shows a common pattern of how
-.Fn fork
-is used in practice.
-.Bd -literal -offset indent
-#include <err.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-int
-main(void)
-{
- pid_t pid;
-
- /*
- * If child is expected to use stdio(3), state of
- * the reused io streams must be synchronized between
- * parent and child, to avoid double output and other
- * possible issues.
- */
- fflush(stdout);
-
- switch (pid = fork()) {
- case -1:
- err(1, "Failed to fork");
- case 0:
- printf("Hello from child process!\en");
-
- /*
- * Since we wrote into stdout, child needs to use
- * exit(3) and not _exit(2). This causes handlers
- * registered with atexit(3) to be called twice,
- * once in parent, and once in the child. If such
- * behavior is undesirable, consider
- * terminating child with _exit(2) or _Exit(3).
- */
- exit(0);
- default:
- break;
- }
-
- printf("Hello from parent process (child's PID: %d)!\en", pid);
-
- return (0);
-}
-.Ed
-.Pp
-The output of such a program is along the lines of:
-.Bd -literal -offset indent
-Hello from parent process (child's PID: 27804)!
-Hello from child process!
-.Ed
-.Sh ERRORS
-The
-.Fn fork
-system call will fail and no child process will be created if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The system-imposed limit on the total
-number of processes under execution would be exceeded.
-The limit is given by the
-.Xr sysctl 3
-MIB variable
-.Dv KERN_MAXPROC .
-(The limit is actually ten less than this
-except for the super user).
-.It Bq Er EAGAIN
-The user is not the super user, and
-the system-imposed limit
-on the total number of
-processes under execution by a single user would be exceeded.
-The limit is given by the
-.Xr sysctl 3
-MIB variable
-.Dv KERN_MAXPROCPERUID .
-.It Bq Er EAGAIN
-The user is not the super user, and
-the soft resource limit corresponding to the
-.Fa resource
-argument
-.Dv RLIMIT_NPROC
-would be exceeded (see
-.Xr getrlimit 2 ) .
-.It Bq Er ENOMEM
-There is insufficient swap space for the new process.
-.El
-.Sh SEE ALSO
-.Xr execve 2 ,
-.Xr rfork 2 ,
-.Xr setitimer 2 ,
-.Xr setrlimit 2 ,
-.Xr sigaction 2 ,
-.Xr vfork 2 ,
-.Xr wait 2 ,
-.Xr pthread_atfork 3
-.Sh HISTORY
-The
-.Fn fork
-function appeared in
-.At v1 .
-.Pp
-The
-.Fn _Fork
-function was defined by Austin Group together with the removal
-of a requirement that the
-.Fn fork
-implementation must be async-signal safe.
-The
-.Fn _Fork
-function appeared in
-.Fx 14.0 .
diff --git a/lib/libc/sys/fork.c b/lib/libc/sys/fork.c
index 695540a7264f..e907c51b5cee 100644
--- a/lib/libc/sys/fork.c
+++ b/lib/libc/sys/fork.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -43,6 +39,5 @@ __weak_reference(__sys_fork, __fork);
pid_t
fork(void)
{
-
- return (((pid_t (*)(void))__libc_interposing[INTERPOS_fork])());
+ return (INTERPOS_SYS(fork));
}
diff --git a/lib/libc/sys/fspacectl.2 b/lib/libc/sys/fspacectl.2
deleted file mode 100644
index 430f3de950df..000000000000
--- a/lib/libc/sys/fspacectl.2
+++ /dev/null
@@ -1,205 +0,0 @@
-.\"
-.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD
-.\"
-.\" Copyright (c) 2021 The FreeBSD Foundation
-.\"
-.\" This manual page was written by Ka Ho Ng 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, 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.
-.\"
-.Dd August 25, 2021
-.Dt FSPACECTL 2
-.Os
-.Sh NAME
-.Nm fspacectl
-.Nd space management in a file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In fcntl.h
-.Ft int
-.Fo fspacectl
-.Fa "int fd"
-.Fa "int cmd"
-.Fa "const struct spacectl_range *rqsr"
-.Fa "int flags"
-.Fa "struct spacectl_range *rmsr"
-.Fc
-.Sh DESCRIPTION
-.Nm
-is a system call performing space management over a file.
-The
-.Fa fd
-argument specifies the file descriptor to be operated on by the
-.Fa cmd
-argument.
-The
-.Fa rqsr
-argument points to a
-.Fa spacectl_range
-structure that contains the requested operation range.
-The
-.Fa flags
-argument controls the behavior of the operation to take place.
-If the
-.Fa rmsr
-argument is non-NULL, the
-.Fa spacectl_range
-structure it points to is updated to contain the unprocessed operation range
-after the system call returns.
-.Pp
-For a successful completion without an unprocessed part in the requested
-operation range,
-.Fa "rmsr->r_len"
-is updated to be the value 0, and
-.Fa "rmsr->r_offset"
-is updated to be
-.Fa "rqsr->r_offset"
-plus the number of bytes zeroed before the end-of-file.
-The file descriptor's file offset is not used or modified by the system call.
-Both
-.Fa rqsr
-and
-.Fa rmsr
-arguments can point to the same structure.
-.Pp
-The
-.Fa spacectl_range
-structure is defined as:
-.Bd -literal
-struct spacectl_range {
- off_t r_offset;
- off_t r_len;
-};
-.Ed
-.Pp
-The operation specified by the
-.Fa cmd
-argument may be one of:
-.Bl -tag -width SPACECTL_DEALLOC
-.It Dv SPACECTL_DEALLOC
-Zero a region in the file specified by the
-.Fa rqsr
-argument.
-The
-.Fa "rqsr->r_offset"
-has to be a value greater than or equal to 0, and the
-.Fa "rqsr->r_len"
-has to be a value greater than 0.
-.Pp
-If the file system supports hole-punching,
-file system space deallocation may be performed in the given region.
-.El
-.Pp
-The
-.Fa flags
-argument needs to be the value 0 currently.
-.Sh RETURN VALUES
-Upon successful completion, the value 0 is returned;
-otherwise the value -1 is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-Possible failure conditions:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid file descriptor.
-.It Bq Er EBADF
-The
-.Fa fd
-argument references a file that was opened without write permission.
-.It Bq Er EINTR
-A signal was caught during execution.
-.It Bq Er EINVAL
-The
-.Fa cmd
-argument is not valid.
-.It Bq Er EINVAL
-If the
-.Fa cmd
-argument is
-.Dv SPACECTL_DEALLOC ,
-either the
-.Fa "rqsr->r_offset"
-argument was less than zero, or the
-.Fa "rqsr->r_len"
-argument was less than or equal to zero.
-.It Bq Er EINVAL
-The value of
-.Fa "rqsr->r_offset" +
-.Fa "rqsr->r_len"
-is greater than
-.Dv OFF_MAX .
-.It Bq Er EINVAL
-An invalid or unsupported flag is included in
-.Fa flags .
-.It Bq Er EINVAL
-A flag included in
-.Fa flags
-is not supported by the operation specified by the
-.Fa cmd
-argument.
-.It Bq Er EFAULT
-The
-.Fa rqsr
-or a non-NULL
-.Fa rmsr
-argument point outside the process' allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to a file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ENODEV
-The
-.Fa fd
-argument does not refer to a file that supports
-.Nm .
-.It Bq Er ENOSPC
-There is insufficient free space remaining on the file system storage
-media.
-.It Bq Er ENOTCAPABLE
-The file descriptor
-.Fa fd
-has insufficient rights.
-.It Bq Er ESPIPE
-The
-.Fa fd
-argument is associated with a pipe or FIFO.
-.El
-.Sh SEE ALSO
-.Xr creat 2 ,
-.Xr ftruncate 2 ,
-.Xr open 2 ,
-.Xr unlink 2
-.Sh HISTORY
-The
-.Nm
-system call appeared in
-.Fx 14.0 .
-.Sh AUTHORS
-.Nm
-and this manual page were written by
-.An Ka Ho Ng Aq Mt khng@FreeBSD.org
-under sponsorship from the FreeBSD Foundation.
diff --git a/lib/libc/sys/fsync.2 b/lib/libc/sys/fsync.2
deleted file mode 100644
index 540e02b78493..000000000000
--- a/lib/libc/sys/fsync.2
+++ /dev/null
@@ -1,134 +0,0 @@
-.\" Copyright (c) 1983, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" Parts of this documentation were written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)fsync.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt FSYNC 2
-.Os
-.Sh NAME
-.Nm fdatasync ,
-.Nm fsync
-.Nd "synchronise changes to a file"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn fdatasync "int fd"
-.Ft int
-.Fn fsync "int fd"
-.Sh DESCRIPTION
-The
-.Fn fsync
-system call
-causes all modified data and attributes of the file referenced by
-the file descriptor
-.Fa fd
-to be moved to a permanent storage device.
-This normally results in all in-core modified copies
-of buffers for the associated file to be written to a disk.
-.Pp
-The
-.Fn fdatasync
-system call causes all modified data of
-.Fa fd
-to be moved to a permanent storage device.
-Unlike
-.Fn fsync ,
-the system call does not guarantee that file attributes or
-metadata necessary to access the file are committed to the permanent storage.
-.Pp
-The
-.Fn fsync
-system call
-should be used by programs that require a file to be
-in a known state, for example, in building a simple transaction
-facility.
-If the file metadata has already been committed, using
-.Fn fdatasync
-can be more efficient than
-.Fn fsync .
-.Pp
-Both
-.Fn fdatasync
-and
-.Fn fsync
-calls are cancellation points.
-.Sh RETURN VALUES
-.Rv -std fsync
-.Sh ERRORS
-The
-.Fn fsync
-and
-.Fn fdatasync
-calls fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid descriptor.
-.It Bq Er EINVAL
-The
-.Fa fd
-argument
-refers to a socket, not to a file.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Sh SEE ALSO
-.Xr fsync 1 ,
-.Xr sync 2 ,
-.Xr syncer 4 ,
-.Xr sync 8
-.Sh HISTORY
-The
-.Fn fsync
-system call appeared in
-.Bx 4.2 .
-The
-.Fn fdatasync
-system call appeared in
-.Fx 11.1 .
-.Sh BUGS
-The
-.Fn fdatasync
-system call currently does not guarantee that enqueued
-.Xr aio 4
-requests for the file referenced by
-.Fa fd
-are completed before the syscall returns.
diff --git a/lib/libc/sys/fsync.c b/lib/libc/sys/fsync.c
index 5f1512932baa..e542c8cdea48 100644
--- a/lib/libc/sys/fsync.c
+++ b/lib/libc/sys/fsync.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/types.h>
#include <sys/fcntl.h>
#include <unistd.h>
@@ -43,6 +39,5 @@ __weak_reference(__sys_fsync, __fsync);
int
fsync(int fd)
{
-
- return (((int (*)(int))__libc_interposing[INTERPOS_fsync])(fd));
+ return (INTERPOS_SYS(fsync, fd));
}
diff --git a/lib/libc/sys/getdents.c b/lib/libc/sys/getdents.c
index 480fbf265fb9..df8993a7b0f9 100644
--- a/lib/libc/sys/getdents.c
+++ b/lib/libc/sys/getdents.c
@@ -24,9 +24,6 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include "namespace.h"
#include <sys/param.h>
#include <sys/syscall.h>
@@ -36,11 +33,6 @@ __FBSDID("$FreeBSD$");
ssize_t
getdents(int fd, char *buf, size_t nbytes)
{
- /*
- * _getdirentries knows how to call the right thing and
- * return it in the new format. It assumes that the entire
- * libc expecting the new format.
- */
- return (_getdirentries(fd, buf, nbytes, NULL));
+ return (__sys_getdirentries(fd, buf, nbytes, NULL));
}
diff --git a/lib/libc/sys/getdirentries.2 b/lib/libc/sys/getdirentries.2
deleted file mode 100644
index 66a818ab2907..000000000000
--- a/lib/libc/sys/getdirentries.2
+++ /dev/null
@@ -1,210 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getdirentries.2 8.2 (Berkeley) 5/3/95
-.\" $FreeBSD$
-.\"
-.Dd April 11, 2022
-.Dt GETDIRENTRIES 2
-.Os
-.Sh NAME
-.Nm getdirentries ,
-.Nm getdents
-.Nd "get directory entries in a file system independent format"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In dirent.h
-.Ft ssize_t
-.Fn getdirentries "int fd" "char *buf" "size_t nbytes" "off_t *basep"
-.Ft ssize_t
-.Fn getdents "int fd" "char *buf" "size_t nbytes"
-.Sh DESCRIPTION
-The
-.Fn getdirentries
-and
-.Fn getdents
-system calls read directory entries from the directory
-referenced by the file descriptor
-.Fa fd
-into the buffer pointed to by
-.Fa buf ,
-in a file system independent format.
-Up to
-.Fa nbytes
-of data will be transferred.
-The
-.Fa nbytes
-argument must be greater than or equal to the
-block size associated with the file,
-see
-.Xr stat 2 .
-Some file systems may not support these system calls
-with buffers smaller than this size.
-.Pp
-The data in the buffer is a series of
-.Vt dirent
-structures each containing the following entries:
-.Bd -literal -offset indent
-ino_t d_fileno;
-off_t d_off;
-uint16_t d_reclen;
-uint8_t d_type;
-uint16_t d_namlen;
-char d_name[MAXNAMLEN + 1]; /* see below */
-.Ed
-.Pp
-The
-.Fa d_fileno
-entry is a number which is unique for each
-distinct file in the file system.
-Files that are linked by hard links (see
-.Xr link 2 )
-have the same
-.Fa d_fileno .
-The
-.Fa d_off
-field returns a cookie which, if non-zero, can be used with
-.Xr lseek 2
-to position the directory descriptor to the next entry.
-The
-.Fa d_reclen
-entry is the length, in bytes, of the directory record.
-The
-.Fa d_type
-entry is the type of the file pointed to by the directory record.
-The file type values are defined in
-.Fa <sys/dirent.h> .
-The
-.Fa d_name
-entry contains a null terminated file name.
-The
-.Fa d_namlen
-entry specifies the length of the file name excluding the null byte.
-Thus the actual size of
-.Fa d_name
-may vary from 1 to
-.Dv MAXNAMLEN
-\&+ 1.
-.Pp
-Entries may be separated by extra space.
-The
-.Fa d_reclen
-entry may be used as an offset from the start of a
-.Fa dirent
-structure to the next structure, if any.
-.Pp
-The actual number of bytes transferred is returned.
-The current position pointer associated with
-.Fa fd
-is set to point to the next block of entries.
-The pointer may not advance by the number of bytes returned by
-.Fn getdirentries
-or
-.Fn getdents .
-A value of zero is returned when
-the end of the directory has been reached.
-.Pp
-If the
-.Fa basep
-pointer value is non-NULL,
-the
-.Fn getdirentries
-system call writes the position of the block read into the location pointed to by
-.Fa basep .
-Alternatively, the current position pointer may be set and retrieved by
-.Xr lseek 2 .
-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 ,
-a value returned in the
-.Fa d_off
-field if it is non-zero,
-or zero.
-.Sh IMPLEMENTATION NOTES
-The
-.Fa d_off
-field is currently set to 0 by the NFS client, since the
-directory offset cookies returned by an NFS server cannot
-be used by
-.Xr lseek 2
-at this time.
-.Sh RETURN VALUES
-If successful, the number of bytes actually transferred is returned.
-Otherwise, -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn getdirentries
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid file descriptor open for reading.
-.It Bq Er EFAULT
-Either
-.Fa buf
-or non-NULL
-.Fa basep
-point outside the allocated address space.
-.It Bq Er EINVAL
-The file referenced by
-.Fa fd
-is not a directory, or
-.Fa nbytes
-is too small for returning a directory entry or block of entries,
-or the current position pointer is invalid.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ENOENT
-Directory unlinked but still open.
-.El
-.Sh SEE ALSO
-.Xr lseek 2 ,
-.Xr open 2
-.Sh HISTORY
-The
-.Fn getdirentries
-system call first appeared in
-.Bx 4.4 .
-The
-.Fn getdents
-system call first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/getdirentries.c b/lib/libc/sys/getdirentries.c
deleted file mode 100644
index 5a94c6096d59..000000000000
--- a/lib/libc/sys/getdirentries.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*-
- * Copyright (c) 2017 M. Warner Losh <imp@FreeBSD.org>
- *
- * 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$");
-
-#define _WANT_FREEBSD11_DIRENT
-
-#include "namespace.h"
-#include <sys/param.h>
-#include <sys/syscall.h>
-#include "compat-ino64.h"
-#include <dirent.h>
-#include <errno.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include "libc_private.h"
-
-static ssize_t
-__cvt_dirents_from11(const char *de11, ssize_t len11, char *de, ssize_t len)
-{
- struct dirent *dst;
- const struct freebsd11_dirent *src;
- const char *edst, *esrc;
- ssize_t rlen;
-
- src = (const struct freebsd11_dirent *)de11;
- dst = (struct dirent *)de;
- esrc = de11 + len11;
- edst = de + len;
- while ((const char *)src < esrc && (const char *)dst < edst) {
- rlen = roundup(offsetof(struct dirent, d_name) + src->d_namlen + 1, 8);
- if ((const char *)dst + rlen >= edst)
- break;
- dst->d_fileno = src->d_fileno;
- dst->d_off = 0; /* nothing uses it yet, so safe for now */
- dst->d_reclen = rlen;
- dst->d_type = src->d_type;
- dst->d_pad0 = 0;
- dst->d_namlen = src->d_namlen;
- dst->d_pad1 = 0;
- memset(dst->d_name, 0, roundup(src->d_namlen + 1, 8));
- memcpy(dst->d_name, src->d_name, src->d_namlen);
- dst = (struct dirent *)((char *)dst + rlen);
- src = (const struct freebsd11_dirent *)((const char *)src + src->d_reclen);
- }
- return ((char *)dst - de);
-}
-
-#undef getdirentries
-__weak_reference(_getdirentries, getdirentries);
-
-#pragma weak _getdirentries
-ssize_t
-_getdirentries(int fd, char *buf, size_t nbytes, off_t *basep)
-{
- char *oldbuf;
- size_t len;
- ssize_t rv;
-
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_getdirentries(fd, buf, nbytes, basep));
-
- /*
- * Because the old system call returns entries that are smaller than the
- * new, we could wind up in a situation where we have too many to fit in
- * the buffer with the new encoding. So sacrifice a small bit of
- * efficiency to ensure that never happens. We pick 1/4 the size round
- * up to the next DIRBLKSIZ. This will guarnatee enough room exists in
- * the dst buffer due to changes in efficiency in packing dirent
- * entries. We don't check against minimum block size to avoid a lot of
- * stat calls, we'll see if that's wise or not.
- * TBD: Will this difference matter to lseek?
- */
- len = roundup(nbytes / 4, DIRBLKSIZ);
- oldbuf = malloc(len);
- if (oldbuf == NULL) {
- errno = EINVAL; /* ENOMEM not in possible list */
- return (-1);
- }
- rv = syscall(SYS_freebsd11_getdirentries, fd, oldbuf, len, basep);
- if (rv == -1) {
- free(oldbuf);
- return (rv);
- }
- if (rv > 0)
- rv = __cvt_dirents_from11(oldbuf, rv, buf, nbytes);
- free(oldbuf);
-
- return (rv);
-}
diff --git a/lib/libc/sys/getdtablesize.2 b/lib/libc/sys/getdtablesize.2
deleted file mode 100644
index ef99a6020082..000000000000
--- a/lib/libc/sys/getdtablesize.2
+++ /dev/null
@@ -1,62 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getdtablesize.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd April 24, 2013
-.Dt GETDTABLESIZE 2
-.Os
-.Sh NAME
-.Nm getdtablesize
-.Nd get file descriptor limit
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn getdtablesize void
-.Sh DESCRIPTION
-The
-.Fn getdtablesize
-system call returns the maximum number of file descriptors
-that the current process may open.
-The maximum file descriptor number that the system may assign
-is the return value minus one.
-Existing file descriptor numbers may be higher
-if the limit was lowered after they were opened.
-.Sh SEE ALSO
-.Xr close 2 ,
-.Xr closefrom 2 ,
-.Xr dup 2 ,
-.Xr getrlimit 2 ,
-.Xr sysconf 3
-.Sh HISTORY
-The
-.Fn getdtablesize
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/getfh.2 b/lib/libc/sys/getfh.2
deleted file mode 100644
index e042839a00c4..000000000000
--- a/lib/libc/sys/getfh.2
+++ /dev/null
@@ -1,226 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\" Copyright (c) 2018 Gandi
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getfh.2 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd December 23, 2021
-.Dt GETFH 2
-.Os
-.Sh NAME
-.Nm getfh ,
-.Nm lgetfh ,
-.Nm getfhat
-.Nd get file handle
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/mount.h
-.Ft int
-.Fn getfh "const char *path" "fhandle_t *fhp"
-.Ft int
-.Fn lgetfh "const char *path" "fhandle_t *fhp"
-.Ft int
-.Fn getfhat "int fd" "const char *path" "fhandle_t *fhp" "int flag"
-.Sh DESCRIPTION
-The
-.Fn getfh
-system call
-returns a file handle for the specified file or directory
-in the file handle pointed to by
-.Fa fhp .
-.Pp
-The
-.Fn lgetfh
-system call is like
-.Fn getfh
-except in the case where the named file is a symbolic link,
-in which case
-.Fn lgetfh
-returns information about the link,
-while
-.Fn getfh
-returns information about the file the link references.
-.Pp
-The
-.Fn getfhat
-system call is equivalent to
-.Fn getfh
-and
-.Fn lgetfh
-except when the
-.Fa path
-specifies a relative path.
-For
-.Fn getfhat
-and relative
-.Fa path ,
-the status is retrieved from a file relative to
-the directory associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-.Pp
-The values for the
-.Fa flag
-are constructed by a bitwise-inclusive OR of flags from this list,
-defined in
-.In fcntl.h :
-.Bl -tag -width indent
-.It Dv AT_SYMLINK_NOFOLLOW
-If
-.Fa path
-names a symbolic link, the status of the symbolic link is returned.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.El
-.Pp
-If
-.Fn getfhat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn getfth
-or
-.Fn lgetfh
-respectively, depending on whether or not the
-.Dv AT_SYMLINK_NOFOLLOW
-bit is set in
-.Fa flag .
-.Pp
-When
-.Fn getfhat
-is called with an absolute
-.Fa path ,
-it ignores the
-.Fa fd
-argument.
-.Pp
-These system calls are restricted to the superuser.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn getfh
-and
-.Fn lgetfh
-system calls
-fail if one or more of the following are true:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The caller does not have appropriate privilege to perform the operation.
-.It Bq Er ENOTDIR
-A component of the path prefix of
-.Fa path
-is not a directory.
-.It Bq Er ENAMETOOLONG
-The length of a component of
-.Fa path
-exceeds 255 characters,
-or the length of
-.Fa path
-exceeds 1023 characters.
-.It Bq Er ENOENT
-The file referred to by
-.Fa path
-does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix of
-.Fa path .
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating
-.Fa path .
-.It Bq Er EFAULT
-The
-.Fa fhp
-argument
-points to an invalid address.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points to an invalid address.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ESTALE
-The file handle
-.Fa fhp
-is no longer valid.
-.El
-.Pp
-In addition to the errors returned by
-.Fn getfh ,
-and
-.Fn lgetfh ,
-the
-.Fn getfhat
-system call may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.It Bq Er EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.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.
-.Sh SEE ALSO
-.Xr fhopen 2 ,
-.Xr open 2 ,
-.Xr stat 2
-.Sh HISTORY
-The
-.Fn getfh
-system call first appeared in
-.Bx 4.4 .
diff --git a/lib/libc/sys/getfsstat.2 b/lib/libc/sys/getfsstat.2
deleted file mode 100644
index 1f5b52b69916..000000000000
--- a/lib/libc/sys/getfsstat.2
+++ /dev/null
@@ -1,132 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getfsstat.2 8.3 (Berkeley) 5/25/95
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt GETFSSTAT 2
-.Os
-.Sh NAME
-.Nm getfsstat
-.Nd get list of all mounted file systems
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/ucred.h
-.In sys/mount.h
-.Ft int
-.Fn getfsstat "struct statfs *buf" "long bufsize" "int mode"
-.Sh DESCRIPTION
-The
-.Fn getfsstat
-system call
-returns information about all mounted file systems.
-The
-.Fa buf
-argument
-is a pointer to
-.Vt statfs
-structures, as described in
-.Xr statfs 2 .
-.Pp
-Fields that are undefined for a particular file system are set to -1.
-The buffer is filled with an array of
-.Fa statfs
-structures, one for each mounted file system
-up to the byte count specified by
-.Fa bufsize .
-Note, the
-.Fa bufsize
-argument is the number of bytes that
-.Fa buf
-can hold, not the count of statfs structures it will hold.
-.Pp
-If
-.Fa buf
-is given as NULL,
-.Fn getfsstat
-returns just the number of mounted file systems.
-.Pp
-Normally
-.Fa mode
-should be specified as
-.Dv MNT_WAIT .
-If
-.Fa mode
-is set to
-.Dv MNT_NOWAIT ,
-.Fn getfsstat
-will return the information it has available without requesting
-an update from each file system.
-Thus, some of the information will be out of date, but
-.Fn getfsstat
-will not block waiting for information from a file system that is
-unable to respond.
-It will also skip any file system that is in the process of being
-unmounted, even if the unmount would eventually fail.
-.Sh RETURN VALUES
-Upon successful completion, the number of
-.Fa statfs
-structures is returned.
-Otherwise, -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn getfsstat
-system call
-fails if one or more of the following are true:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa buf
-argument
-points to an invalid address.
-.It Bq Er EINVAL
-.Fa mode
-is set to a value other than
-.Dv MNT_WAIT
-or
-.Dv MNT_NOWAIT .
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Sh SEE ALSO
-.Xr statfs 2 ,
-.Xr fstab 5 ,
-.Xr mount 8
-.Sh HISTORY
-The
-.Fn getfsstat
-system call first appeared in
-.Bx 4.4 .
diff --git a/lib/libc/sys/getfsstat.c b/lib/libc/sys/getfsstat.c
deleted file mode 100644
index edbfaa989b5a..000000000000
--- a/lib/libc/sys/getfsstat.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*-
- * Copyright (c) 2017 M. Warner Losh <imp@FreeBSD.org>
- *
- * 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/param.h>
-#include "compat-ino64.h"
-#include <sys/errno.h>
-#include <sys/syscall.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include "libc_private.h"
-
-int
-getfsstat(struct statfs *buf, long bufsize, int flags)
-{
- struct freebsd11_statfs *statfs11 = NULL;
- ssize_t len = 0;
- int rv, i;
-
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_getfsstat(buf, bufsize, flags));
- if (buf != NULL) {
- len = sizeof(struct freebsd11_statfs) * /* Round down on purpose to avoid */
- (bufsize / sizeof(struct statfs)); /* overflow on translation. */
- statfs11 = malloc(len);
- if (statfs11 == NULL) {
- errno = ENOMEM;
- return (-1);
- }
- }
- rv = syscall(SYS_freebsd11_getfsstat, statfs11, len, flags);
- if (rv != -1 && buf != NULL) {
- for (i = 0; i < rv; i++)
- __statfs11_to_statfs(&statfs11[i], &buf[i]);
- }
- free(statfs11);
- return (rv);
-}
diff --git a/lib/libc/sys/getgid.2 b/lib/libc/sys/getgid.2
deleted file mode 100644
index 272d1ea8b031..000000000000
--- a/lib/libc/sys/getgid.2
+++ /dev/null
@@ -1,85 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getgid.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd May 1, 2020
-.Dt GETGID 2
-.Os
-.Sh NAME
-.Nm getgid ,
-.Nm getegid
-.Nd get group process identification
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft gid_t
-.Fn getgid void
-.Ft gid_t
-.Fn getegid void
-.Sh DESCRIPTION
-The
-.Fn getgid
-system call returns the real group ID of the calling process,
-.Fn getegid
-returns the effective group ID of the calling process.
-.Pp
-The real group ID is specified at login time.
-.Pp
-The real group ID is the group of the user who invoked the program.
-As the effective group ID gives the process additional permissions
-during the execution of
-.Dq Em set-group-ID
-mode processes,
-.Fn getgid
-is used to determine the real-user-id of the calling process.
-.Sh ERRORS
-The
-.Fn getgid
-and
-.Fn getegid
-system calls are always successful, and no return value is reserved to
-indicate an error.
-.Sh SEE ALSO
-.Xr getuid 2 ,
-.Xr issetugid 2 ,
-.Xr setgid 2 ,
-.Xr setregid 2
-.Sh STANDARDS
-The
-.Fn getgid
-and
-.Fn getegid
-system calls are expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn getgid
-function appeared in
-.At v4 .
diff --git a/lib/libc/sys/getgroups.2 b/lib/libc/sys/getgroups.2
deleted file mode 100644
index 47913f4b01cb..000000000000
--- a/lib/libc/sys/getgroups.2
+++ /dev/null
@@ -1,107 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getgroups.2 8.2 (Berkeley) 4/16/94
-.\" $FreeBSD$
-.\"
-.Dd January 21, 2011
-.Dt GETGROUPS 2
-.Os
-.Sh NAME
-.Nm getgroups
-.Nd get group access list
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn getgroups "int gidsetlen" "gid_t *gidset"
-.Sh DESCRIPTION
-The
-.Fn getgroups
-system call
-gets the current group access list of the user process
-and stores it in the array
-.Fa gidset .
-The
-.Fa gidsetlen
-argument
-indicates the number of entries that may be placed in
-.Fa gidset .
-The
-.Fn getgroups
-system call
-returns the actual number of groups returned in
-.Fa gidset .
-At least one and as many as {NGROUPS_MAX}+1 values may be returned.
-If
-.Fa gidsetlen
-is zero,
-.Fn getgroups
-returns the number of supplementary group IDs associated with
-the calling process without modifying the array pointed to by
-.Fa gidset .
-.Pp
-The value of
-.Dv {NGROUPS_MAX}
-should be obtained using
-.Xr sysconf 3
-to avoid hard-coding it into the executable.
-.Sh RETURN VALUES
-A successful call returns the number of groups in the group set.
-A value of -1 indicates that an error occurred, and the error
-code is stored in the global variable
-.Va errno .
-.Sh ERRORS
-The possible errors for
-.Fn getgroups
-are:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The argument
-.Fa gidsetlen
-is smaller than the number of groups in the group set.
-.It Bq Er EFAULT
-The argument
-.Fa gidset
-specifies
-an invalid address.
-.El
-.Sh SEE ALSO
-.Xr setgroups 2 ,
-.Xr initgroups 3 ,
-.Xr sysconf 3
-.Sh STANDARDS
-The
-.Fn getgroups
-system call conforms to
-.St -p1003.1-2008 .
-.Sh HISTORY
-The
-.Fn getgroups
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/getitimer.2 b/lib/libc/sys/getitimer.2
deleted file mode 100644
index 1cb3d5e6a6b2..000000000000
--- a/lib/libc/sys/getitimer.2
+++ /dev/null
@@ -1,195 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getitimer.2 8.3 (Berkeley) 5/16/95
-.\" $FreeBSD$
-.\"
-.Dd May 1, 2020
-.Dt GETITIMER 2
-.Os
-.Sh NAME
-.Nm getitimer ,
-.Nm setitimer
-.Nd get/set value of interval timer
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/time.h
-.Fd "#define ITIMER_REAL 0"
-.Fd "#define ITIMER_VIRTUAL 1"
-.Fd "#define ITIMER_PROF 2"
-.Ft int
-.Fn getitimer "int which" "struct itimerval *value"
-.Ft int
-.Fn setitimer "int which" "const struct itimerval *value" "struct itimerval *ovalue"
-.Sh DESCRIPTION
-The system provides each process with three interval timers,
-defined in
-.In sys/time.h .
-The
-.Fn getitimer
-system call returns the current value for the timer specified in
-.Fa which
-in the structure at
-.Fa value .
-The
-.Fn setitimer
-system call sets a timer to the specified
-.Fa value
-(returning the previous value of the timer if
-.Fa ovalue
-is not a null pointer).
-.Pp
-A timer value is defined by the
-.Fa itimerval
-structure:
-.Bd -literal -offset indent
-struct itimerval {
- struct timeval it_interval; /* timer interval */
- struct timeval it_value; /* current value */
-};
-.Ed
-.Pp
-If
-.Fa it_value
-is non-zero, it indicates the time to the next timer expiration.
-If
-.Fa it_interval
-is non-zero, it specifies a value to be used in reloading
-.Fa it_value
-when the timer expires.
-Setting
-.Fa it_value
-to 0 disables a timer, regardless of the value of
-.Fa it_interval .
-Setting
-.Fa it_interval
-to 0 causes a timer to be disabled after its next expiration (assuming
-.Fa it_value
-is non-zero).
-.Pp
-Time values smaller than the resolution of the
-system clock are rounded up to this resolution
-(typically 10 milliseconds).
-.Pp
-The
-.Dv ITIMER_REAL
-timer decrements in real time.
-A
-.Dv SIGALRM
-signal is
-delivered when this timer expires.
-.Pp
-The
-.Dv ITIMER_VIRTUAL
-timer decrements in process virtual time.
-It runs only when the process is executing.
-A
-.Dv SIGVTALRM
-signal
-is delivered when it expires.
-.Pp
-The
-.Dv ITIMER_PROF
-timer decrements both in process virtual time and
-when the system is running on behalf of the process.
-It is designed
-to be used by interpreters in statistically profiling the execution
-of interpreted programs.
-Each time the
-.Dv ITIMER_PROF
-timer expires, the
-.Dv SIGPROF
-signal is
-delivered.
-Because this signal may interrupt in-progress
-system calls, programs using this timer must be prepared to
-restart interrupted system calls.
-.Pp
-The maximum number of seconds allowed for
-.Fa it_interval
-and
-.Fa it_value
-in
-.Fn setitimer
-is 100000000.
-.Sh NOTES
-Three macros for manipulating time values are defined in
-.In sys/time.h .
-The
-.Fn timerclear
-macro
-sets a time value to zero,
-.Fn timerisset
-tests if a time value is non-zero, and
-.Fn timercmp
-compares two time values.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn getitimer
-and
-.Fn setitimer
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa value
-argument specified a bad address.
-.It Bq Er EINVAL
-The
-.Fa value
-argument specified a time that was too large
-to be handled.
-.El
-.Sh SEE ALSO
-.Xr gettimeofday 2 ,
-.Xr select 2 ,
-.Xr sigaction 2 ,
-.Xr clocks 7
-.Sh STANDARDS
-The
-.Fn getitimer
-and
-.Fn setitimer
-functions conform to
-.St -p1003.1-2001 .
-The later
-.St -p1003.1-2008
-revision however marked both functions as obsolescent,
-recommending the use of
-.Xr timer_gettime 2
-and
-.Xr timer_settime 2
-instead.
-.Sh HISTORY
-The
-.Fn getitimer
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/getlogin.2 b/lib/libc/sys/getlogin.2
deleted file mode 100644
index 2d82aea92aa5..000000000000
--- a/lib/libc/sys/getlogin.2
+++ /dev/null
@@ -1,204 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getlogin.2 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd September 9, 2020
-.Dt GETLOGIN 2
-.Os
-.Sh NAME
-.Nm getlogin ,
-.Nm getlogin_r ,
-.Nm setlogin
-.Nd get/set login name
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft char *
-.Fn getlogin void
-.In sys/param.h
-.Ft int
-.Fn getlogin_r "char *name" "size_t len"
-.Ft int
-.Fn setlogin "const char *name"
-.Sh DESCRIPTION
-The
-.Fn getlogin
-routine
-returns the login name of the user associated with the current session,
-as previously set by
-.Fn setlogin .
-The name is normally associated with a login shell
-at the time a session is created,
-and is inherited by all processes descended from the login shell.
-(This is true even if some of those processes assume another user ID,
-for example when
-.Xr su 1
-is used).
-.Pp
-The
-.Fn getlogin_r
-function
-provides the same service as
-.Fn getlogin
-except the caller must provide the buffer
-.Fa name
-with length
-.Fa len
-bytes
-to hold the result.
-The buffer should be at least
-.Dv MAXLOGNAME
-bytes in length.
-.Pp
-The
-.Fn setlogin
-system call
-sets the login name of the user associated with the current session to
-.Fa name .
-This system call is restricted to the super-user, and
-is normally used only when a new session is being created on behalf
-of the named user
-(for example, at login time, or when a remote shell is invoked).
-.Pp
-.Em NOTE :
-There is only one login name per session.
-.Pp
-It is
-.Em CRITICALLY
-important to ensure that
-.Fn setlogin
-is only ever called after the process has taken adequate steps to ensure
-that it is detached from its parent's session.
-Making a
-.Fn setsid
-system call is the
-.Em ONLY
-way to do this.
-The
-.Xr daemon 3
-function calls
-.Fn setsid
-which is an ideal way of detaching from a controlling terminal and
-forking into the background.
-.Pp
-In particular, doing a
-.Fn ioctl ttyfd TIOCNOTTY ...\&
-or
-.Fn setpgrp ...\&
-is
-.Em NOT
-sufficient.
-.Pp
-Once a parent process does a
-.Fn setsid
-system call, it is acceptable for some child of that process to then do a
-.Fn setlogin
-even though it is not the session leader, but beware that ALL processes
-in the session will change their login name at the same time, even the
-parent.
-.Pp
-This is not the same as the traditional UNIX behavior of inheriting privilege.
-.Pp
-Since the
-.Fn setlogin
-system call is restricted to the super-user, it is assumed that (like
-all other privileged programs) the programmer has taken adequate
-precautions to prevent security violations.
-.Sh RETURN VALUES
-If a call to
-.Fn getlogin
-succeeds, it returns a pointer to a null-terminated string in a static buffer,
-or
-.Dv NULL
-if the name has not been set.
-The
-.Fn getlogin_r
-function
-returns zero if successful, or the error number upon failure.
-.Pp
-.Rv -std setlogin
-.Sh ERRORS
-The following errors may be returned by these calls:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa name
-argument gave an
-invalid address.
-.It Bq Er EINVAL
-The
-.Fa name
-argument
-pointed to a string that was too long.
-Login names are limited to
-.Dv MAXLOGNAME
-(from
-.In sys/param.h )
-characters, currently 33 including null.
-.It Bq Er EPERM
-The caller tried to set the login name and was not the super-user.
-.It Bq Er ERANGE
-The size of the buffer is smaller than the result to be returned.
-.El
-.Sh SEE ALSO
-.Xr setsid 2 ,
-.Xr daemon 3
-.Sh STANDARDS
-The
-.Fn getlogin
-system call
-and
-the
-.Fn getlogin_r
-function
-conform to
-.St -p1003.1-96 .
-.Sh HISTORY
-The
-.Fn getlogin
-system call first appeared in
-.Bx 4.4 .
-The return value of
-.Fn getlogin_r
-was changed from earlier versions of
-.Fx
-to be conformant with
-.St -p1003.1-96 .
-.Sh BUGS
-In earlier versions of the system,
-.Fn getlogin
-failed unless the process was associated with a login terminal.
-The current implementation (using
-.Fn setlogin )
-allows getlogin to succeed even when the process has no controlling terminal.
-In earlier versions of the system, the value returned by
-.Fn getlogin
-could not be trusted without checking the user ID.
-Portable programs should probably still make this check.
diff --git a/lib/libc/sys/getloginclass.2 b/lib/libc/sys/getloginclass.2
deleted file mode 100644
index e35cad0098f7..000000000000
--- a/lib/libc/sys/getloginclass.2
+++ /dev/null
@@ -1,99 +0,0 @@
-.\"-
-.\" Copyright (c) 2011 Edward Tomasz Napierala
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 12, 2016
-.Dt GETLOGINCLASS 2
-.Os
-.Sh NAME
-.Nm getloginclass ,
-.Nm setloginclass
-.Nd get/set login class
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn getloginclass "char *name" "size_t len"
-.Ft int
-.Fn setloginclass "const char *name"
-.Sh DESCRIPTION
-The
-.Fn getloginclass
-routine returns the login class name associated with the calling process,
-as previously set by
-.Fn setloginclass .
-The caller must provide the buffer
-.Fa name
-with length
-.Fa len
-bytes to hold the result.
-The buffer should be at least
-.Dv MAXLOGNAME
-bytes in length.
-.Pp
-The
-.Fn setloginclass
-system call sets the login class of the calling process to
-.Fa name .
-This system call is restricted to the super-user, and is normally used
-only when a new session is being created on behalf of the named user
-(for example, at login time, or when a remote shell is invoked).
-Processes inherit login class from their parents.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The following errors may be returned by these calls:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa name
-argument gave an invalid address.
-.It Bq Er EINVAL
-The
-.Fa name
-argument pointed to a string that was too long.
-Login class names are limited to
-.Dv MAXLOGNAME
-(from
-.In sys/param.h )
-characters, currently 33 including null.
-.It Bq Er EPERM
-The caller tried to set the login class and was not the super-user.
-.It Bq Er ENAMETOOLONG
-The size of the buffer is smaller than the result to be returned.
-.El
-.Sh SEE ALSO
-.Xr ps 1 ,
-.Xr setusercontext 3 ,
-.Xr login.conf 5 ,
-.Xr rctl 8
-.Sh HISTORY
-The
-.Fn getloginclass
-and
-.Fn setloginclass
-system calls first appeared in
-.Fx 9.0 .
diff --git a/lib/libc/sys/getpeername.2 b/lib/libc/sys/getpeername.2
deleted file mode 100644
index 368fd2b02596..000000000000
--- a/lib/libc/sys/getpeername.2
+++ /dev/null
@@ -1,98 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getpeername.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd June 4, 1993
-.Dt GETPEERNAME 2
-.Os
-.Sh NAME
-.Nm getpeername
-.Nd get name of connected peer
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Ft int
-.Fn getpeername "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen"
-.Sh DESCRIPTION
-The
-.Fn getpeername
-system call
-returns the name of the peer connected to
-socket
-.Fa s .
-The
-.Fa namelen
-argument should be initialized to indicate
-the amount of space pointed to by
-.Fa name .
-On return it contains the actual size of the name
-returned (in bytes).
-The name is truncated if the buffer provided is too small.
-.Sh RETURN VALUES
-.Rv -std getpeername
-.Sh ERRORS
-The call succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The argument
-.Fa s
-is not a valid descriptor.
-.It Bq Er ECONNRESET
-The connection has been reset by the peer.
-.It Bq Er EINVAL
-The value of the
-.Fa namelen
-argument is not valid.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is a file, not a socket.
-.It Bq Er ENOTCONN
-The socket is not connected.
-.It Bq Er ENOBUFS
-Insufficient resources were available in the system
-to perform the operation.
-.It Bq Er EFAULT
-The
-.Fa name
-argument points to memory not in a valid part of the
-process address space.
-.El
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr bind 2 ,
-.Xr getsockname 2 ,
-.Xr socket 2
-.Sh HISTORY
-The
-.Fn getpeername
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/getpgrp.2 b/lib/libc/sys/getpgrp.2
deleted file mode 100644
index db6132324ee2..000000000000
--- a/lib/libc/sys/getpgrp.2
+++ /dev/null
@@ -1,142 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getpgrp.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd June 4, 1993
-.Dt GETPGRP 2
-.Os
-.Sh NAME
-.Nm getpgrp
-.Nd get process group
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft pid_t
-.Fn getpgrp void
-.Ft pid_t
-.Fn getpgid "pid_t pid"
-.Sh DESCRIPTION
-The process group of the current process is returned by
-.Fn getpgrp .
-The process group of the process identified by
-.Fa pid
-is returned by
-.Fn getpgid .
-If
-.Fa pid
-is zero,
-.Fn getpgid
-returns the process group of the current process.
-.Pp
-Process groups are used for distribution of signals, and
-by terminals to arbitrate requests for their input: processes
-that have the same process group as the terminal are foreground
-and may read, while others will block with a signal if they attempt
-to read.
-.Pp
-This system call is thus used by programs such as
-.Xr csh 1
-to create
-process groups
-in implementing job control.
-The
-.Fn tcgetpgrp
-and
-.Fn tcsetpgrp
-calls
-are used to get/set the process group of the control terminal.
-.Sh RETURN VALUES
-The
-.Fn getpgrp
-system call always succeeds.
-Upon successful completion, the
-.Fn getpgid
-system call returns the process group of the specified process;
-otherwise, it returns a value of \-1 and sets
-.Va errno
-to indicate the error.
-.Sh COMPATIBILITY
-This version of
-.Fn getpgrp
-differs from past Berkeley versions by not taking a
-.Fa "pid_t pid"
-argument.
-This incompatibility is required by
-.St -p1003.1-90 .
-.Pp
-From the
-.St -p1003.1-90
-Rationale:
-.Pp
-.Bx 4.3
-provides a
-.Fn getpgrp
-system call that returns the process group ID for a specified process.
-Although this function is used to support job control, all known
-job-control shells always specify the calling process with this
-function.
-Thus, the simpler
-.At V
-.Fn getpgrp
-suffices, and the added complexity of the
-.Bx 4.3
-.Fn getpgrp
-has been omitted from POSIX.1.
-The old functionality is available from the
-.Fn getpgid
-system call.
-.Sh ERRORS
-The
-.Fn getpgid
-system call
-will succeed unless:
-.Bl -tag -width Er
-.It Bq Er ESRCH
-there is no process whose process ID equals
-.Fa pid
-.El
-.Sh SEE ALSO
-.Xr getsid 2 ,
-.Xr setpgid 2 ,
-.Xr termios 4
-.Sh STANDARDS
-The
-.Fn getpgrp
-system call is expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn getpgrp
-system call appeared in
-.Bx 4.0 .
-The
-.Fn getpgid
-system call is derived from its usage in
-.At V.4 .
diff --git a/lib/libc/sys/getpid.2 b/lib/libc/sys/getpid.2
deleted file mode 100644
index eb56b39667c0..000000000000
--- a/lib/libc/sys/getpid.2
+++ /dev/null
@@ -1,90 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getpid.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 15, 2015
-.Dt GETPID 2
-.Os
-.Sh NAME
-.Nm getpid ,
-.Nm getppid
-.Nd get parent or calling process identification
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft pid_t
-.Fn getpid void
-.Ft pid_t
-.Fn getppid void
-.Sh DESCRIPTION
-The
-.Fn getpid
-system call
-returns
-the process ID of
-the calling process.
-Though the ID is guaranteed to be unique, it should
-.Em NOT
-be used for constructing temporary file names, for
-security reasons; see
-.Xr mkstemp 3
-instead.
-.Pp
-The
-.Fn getppid
-system call
-returns the process ID of the parent
-of the calling process.
-.Sh ERRORS
-The
-.Fn getpid
-and
-.Fn getppid
-system calls are always successful, and no return value is reserved to
-indicate an error.
-.Sh SEE ALSO
-.Xr fork 2 ,
-.Xr getpgrp 2 ,
-.Xr kill 2 ,
-.Xr setpgid 2 ,
-.Xr setsid 2 ,
-.Xr exec 3
-.Sh STANDARDS
-The
-.Fn getpid
-and
-.Fn getppid
-system calls are expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn getpid
-function appeared in
-.At v7 .
diff --git a/lib/libc/sys/getpriority.2 b/lib/libc/sys/getpriority.2
deleted file mode 100644
index 7cdbb26b243b..000000000000
--- a/lib/libc/sys/getpriority.2
+++ /dev/null
@@ -1,150 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getpriority.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd June 4, 1993
-.Dt GETPRIORITY 2
-.Os
-.Sh NAME
-.Nm getpriority ,
-.Nm setpriority
-.Nd get/set program scheduling priority
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/time.h
-.In sys/resource.h
-.Ft int
-.Fn getpriority "int which" "int who"
-.Ft int
-.Fn setpriority "int which" "int who" "int prio"
-.Sh DESCRIPTION
-The scheduling
-priority of the process, process group, or user, as indicated by
-.Fa which
-and
-.Fa who
-is obtained with the
-.Fn getpriority
-system call and set with the
-.Fn setpriority
-system call.
-The
-.Fa which
-argument
-is one of
-.Dv PRIO_PROCESS ,
-.Dv PRIO_PGRP ,
-or
-.Dv PRIO_USER ,
-and
-.Fa who
-is interpreted relative to
-.Fa which
-(a process identifier for
-.Dv PRIO_PROCESS ,
-process group
-identifier for
-.Dv PRIO_PGRP ,
-and a user ID for
-.Dv PRIO_USER ) .
-A zero value of
-.Fa who
-denotes the current process, process group, or user.
-The
-.Fa prio
-argument
-is a value in the range -20 to 20.
-The default priority is 0;
-lower priorities cause more favorable scheduling.
-.Pp
-The
-.Fn getpriority
-system call returns the highest priority (lowest numerical value)
-enjoyed by any of the specified processes.
-The
-.Fn setpriority
-system call sets the priorities of all of the specified processes
-to the specified value.
-Only the super-user may lower priorities.
-.Sh RETURN VALUES
-Since
-.Fn getpriority
-can legitimately return the value -1, it is necessary
-to clear the external variable
-.Va errno
-prior to the
-call, then check it afterward to determine
-if a -1 is an error or a legitimate value.
-.Pp
-.Rv -std setpriority
-.Sh ERRORS
-The
-.Fn getpriority
-and
-.Fn setpriority
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er ESRCH
-No process was located using the
-.Fa which
-and
-.Fa who
-values specified.
-.It Bq Er EINVAL
-The
-.Fa which
-argument
-was not one of
-.Dv PRIO_PROCESS ,
-.Dv PRIO_PGRP ,
-or
-.Dv PRIO_USER .
-.El
-.Pp
-In addition to the errors indicated above,
-.Fn setpriority
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-A process was located, but neither its effective nor real user
-ID matched the effective user ID of the caller.
-.It Bq Er EACCES
-A non super-user attempted to lower a process priority.
-.El
-.Sh SEE ALSO
-.Xr nice 1 ,
-.Xr fork 2 ,
-.Xr renice 8
-.Sh HISTORY
-The
-.Fn getpriority
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/getrandom.2 b/lib/libc/sys/getrandom.2
deleted file mode 100644
index b6f3ef1c44a0..000000000000
--- a/lib/libc/sys/getrandom.2
+++ /dev/null
@@ -1,133 +0,0 @@
-.\" Copyright 2020, 2018 Conrad Meyer <cem@FreeBSD.org>. 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 12, 2020
-.Dt GETRANDOM 2
-.Os
-.Sh NAME
-.Nm getrandom
-.Nd get random data
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/random.h
-.Ft ssize_t
-.Fn getrandom "void *buf" "size_t buflen" "unsigned int flags"
-.Sh DESCRIPTION
-.Fn getrandom
-fills
-.Fa buf
-with up to
-.Fa buflen
-bytes of random data.
-.Pp
-The
-.Fa flags
-argument may include zero or more of the following:
-.Bl -tag -width _GRND_NONBLOCK_
-.It Ql GRND_NONBLOCK
-Return
-.Er EAGAIN
-instead of blocking, if the
-.Xr random 4
-device has not yet been seeded.
-By default,
-.Fn getrandom
-will block until the device is seeded.
-.It Ql GRND_RANDOM
-This flag does nothing on
-.Fx .
-.Pa /dev/random
-and
-.Pa /dev/urandom
-are identical.
-.It Ql GRND_INSECURE
-This flag is treated as an alternative name for
-.Dv GRND_NONBLOCK .
-It is provided solely for API compatibility with Linux.
-.El
-.Pp
-If the
-.Xr random 4
-device has been seeded, reads of up to 256 bytes will always return as many
-bytes as requested and will not be interrupted by signals.
-.Sh RETURN VALUES
-Upon successful completion, the number of bytes which were actually read is
-returned.
-For requests larger than 256 bytes, this can be fewer bytes than were
-requested.
-Otherwise, -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn getrandom
-operation returns the following errors:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The
-.Ql GRND_NONBLOCK
-(or
-.Ql GRND_INSECURE )
-flag was set and the
-.Xr random 4
-device was not yet seeded.
-.It Bq Er EFAULT
-The
-.Fa buf
-parameter points to an invalid address.
-.It Bq Er EINTR
-The sleep was interrupted by a signal.
-.It Bq Er EINVAL
-An invalid
-.Fa flags
-was specified.
-.It Bq Er EINVAL
-The requested
-.Fa buflen
-was larger than
-.Dv IOSIZE_MAX .
-.El
-.Sh SEE ALSO
-.Xr arc4random 3 ,
-.Xr getentropy 3 ,
-.Xr random 4
-.Sh STANDARDS
-.Fn getrandom
-is non-standard.
-It is present in Linux.
-.Sh HISTORY
-The
-.Fn getrandom
-system call first appeared in
-.Fx 12.0 .
-.Sh CAVEATS
-Unlike Linux, the
-.Dv GRND_INSECURE
-flag on
-.Fx
-does not produce any output before the
-.Xr random 4
-device is seeded.
diff --git a/lib/libc/sys/getrlimit.2 b/lib/libc/sys/getrlimit.2
deleted file mode 100644
index 090376d4e0f6..000000000000
--- a/lib/libc/sys/getrlimit.2
+++ /dev/null
@@ -1,238 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getrlimit.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd September 30, 2016
-.Dt GETRLIMIT 2
-.Os
-.Sh NAME
-.Nm getrlimit ,
-.Nm setrlimit
-.Nd control maximum system resource consumption
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/time.h
-.In sys/resource.h
-.Ft int
-.Fn getrlimit "int resource" "struct rlimit *rlp"
-.Ft int
-.Fn setrlimit "int resource" "const struct rlimit *rlp"
-.Sh DESCRIPTION
-Limits on the consumption of system resources by the current process
-and each process it creates may be obtained with the
-.Fn getrlimit
-system call, and set with the
-.Fn setrlimit
-system call.
-.Pp
-The
-.Fa resource
-argument is one of the following:
-.Bl -tag -width RLIMIT_FSIZEAA
-.It Dv RLIMIT_AS
-The maximum amount (in bytes) of virtual memory the process is
-allowed to map.
-.It Dv RLIMIT_CORE
-The largest size (in bytes)
-.Xr core 5
-file that may be created.
-.It Dv RLIMIT_CPU
-The maximum amount of cpu time (in seconds) to be used by
-each process.
-.It Dv RLIMIT_DATA
-The maximum size (in bytes) of the data segment for a process;
-this defines how far a program may extend its break with the
-.Xr sbrk 2
-function.
-.It Dv RLIMIT_FSIZE
-The largest size (in bytes) file that may be created.
-.It Dv RLIMIT_KQUEUES
-The maximum number of kqueues this user id is allowed to create.
-.It Dv RLIMIT_MEMLOCK
-The maximum size (in bytes) which a process may lock into memory
-using the
-.Xr mlock 2
-system call.
-.It Dv RLIMIT_NOFILE
-The maximum number of open files for this process.
-.It Dv RLIMIT_NPROC
-The maximum number of simultaneous processes for this user id.
-.It Dv RLIMIT_NPTS
-The maximum number of pseudo-terminals this user id is allowed to create.
-.It Dv RLIMIT_RSS
-When there is memory pressure and swap is available, prioritize eviction of
-a process' resident pages beyond this amount (in bytes).
-When memory is not under pressure, this rlimit is effectively ignored.
-Even when there is memory pressure, the amount of available swap space and some
-sysctl settings like
-.Xr vm.swap_enabled
-and
-.Xr vm.swap_idle_enabled
-can affect what happens to processes that have exceeded this size.
-.Pp
-Processes that exceed their set
-.Dv RLIMIT_RSS
-are not signalled or halted.
-The limit is merely a hint to the VM daemon to prefer to deactivate pages from
-processes that have exceeded their set
-.Dv RLIMIT_RSS .
-.It Dv RLIMIT_SBSIZE
-The maximum size (in bytes) of socket buffer usage for this user.
-This limits the amount of network memory, and hence the amount of
-mbufs, that this user may hold at any time.
-.It Dv RLIMIT_STACK
-The maximum size (in bytes) of the stack segment for a process;
-this defines how far a program's stack segment may be extended.
-Stack extension is performed automatically by the system.
-.It Dv RLIMIT_SWAP
-The maximum size (in bytes) of the swap space that may be reserved or
-used by all of this user id's processes.
-This limit is enforced only if bit 1 of the
-.Va vm.overcommit
-sysctl is set.
-Please see
-.Xr tuning 7
-for a complete description of this sysctl.
-.It Dv RLIMIT_VMEM
-An alias for
-.Dv RLIMIT_AS .
-.El
-.Pp
-A resource limit is specified as a soft limit and a hard limit.
-When a soft limit is exceeded, a process might or might not receive a signal.
-For example, signals are generated when the cpu time or file size is exceeded,
-but not if the address space or RSS limit is exceeded.
-A program that exceeds the soft limit is allowed to continue execution until it
-reaches the hard limit, or modifies its own resource limit.
-Even reaching the hard limit does not necessarily halt a process.
-For example, if the RSS hard limit is exceeded, nothing happens.
-.Pp
-The
-.Vt rlimit
-structure is used to specify the hard and soft limits on a resource.
-.Bd -literal -offset indent
-struct rlimit {
- rlim_t rlim_cur; /* current (soft) limit */
- rlim_t rlim_max; /* maximum value for rlim_cur */
-};
-.Ed
-.Pp
-Only the super-user may raise the maximum limits.
-Other users
-may only alter
-.Fa rlim_cur
-within the range from 0 to
-.Fa rlim_max
-or (irreversibly) lower
-.Fa rlim_max .
-.Pp
-An
-.Dq infinite
-value for a limit is defined as
-.Dv RLIM_INFINITY .
-.Pp
-Because this information is stored in the per-process information,
-this system call must be executed directly by the shell if it
-is to affect all future processes created by the shell;
-.Ic limit
-is thus a built-in command to
-.Xr csh 1 .
-.Pp
-The system refuses to extend the data or stack space when the limits
-would be exceeded in the normal way: a
-.Xr brk 2
-function fails if the data space limit is reached.
-When the stack limit is reached, the process receives
-a segmentation fault
-.Pq Dv SIGSEGV ;
-if this signal is not
-caught by a handler using the signal stack, this signal
-will kill the process.
-.Pp
-A file I/O operation that would create a file larger that the process'
-soft limit will cause the write to fail and a signal
-.Dv SIGXFSZ
-to be
-generated; this normally terminates the process, but may be caught.
-When
-the soft cpu time limit is exceeded, a
-.Dv SIGXCPU
-signal is sent to the
-offending process.
-.Pp
-When most operations would allocate more virtual memory than allowed by the
-soft limit of
-.Dv RLIMIT_AS ,
-the operation fails with
-.Dv ENOMEM
-and no signal is raised.
-A notable exception is stack extension, described above.
-If stack extension would allocate more virtual memory than allowed by the soft
-limit of
-.Dv RLIMIT_AS ,
-a
-.Dv SIGSEGV
-signal will be delivered.
-The caller is free to raise the soft address space limit up to the hard limit
-and retry the allocation.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn getrlimit
-and
-.Fn setrlimit
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The address specified for
-.Fa rlp
-is invalid.
-.It Bq Er EPERM
-The limit specified to
-.Fn setrlimit
-would have
-raised the maximum limit value, and the caller is not the super-user.
-.El
-.Sh SEE ALSO
-.Xr csh 1 ,
-.Xr quota 1 ,
-.Xr quotactl 2 ,
-.Xr sigaction 2 ,
-.Xr sigaltstack 2 ,
-.Xr sysctl 3 ,
-.Xr ulimit 3
-.Sh HISTORY
-The
-.Fn getrlimit
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/getrusage.2 b/lib/libc/sys/getrusage.2
deleted file mode 100644
index 84a0eb20f242..000000000000
--- a/lib/libc/sys/getrusage.2
+++ /dev/null
@@ -1,186 +0,0 @@
-.\" Copyright (c) 1985, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getrusage.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd May 1, 2010
-.Dt GETRUSAGE 2
-.Os
-.Sh NAME
-.Nm getrusage
-.Nd get information about resource utilization
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/time.h
-.In sys/resource.h
-.Fd "#define RUSAGE_SELF 0"
-.Fd "#define RUSAGE_CHILDREN -1"
-.Fd "#define RUSAGE_THREAD 1"
-.Ft int
-.Fn getrusage "int who" "struct rusage *rusage"
-.Sh DESCRIPTION
-The
-.Fn getrusage
-system call
-returns information describing the resources utilized by the current
-thread, the current process, or all its terminated child processes.
-The
-.Fa who
-argument is either
-.Dv RUSAGE_THREAD ,
-.Dv RUSAGE_SELF ,
-or
-.Dv RUSAGE_CHILDREN .
-The buffer to which
-.Fa rusage
-points will be filled in with
-the following structure:
-.Bd -literal
-struct rusage {
- struct timeval ru_utime; /* user time used */
- struct timeval ru_stime; /* system time used */
- long ru_maxrss; /* max resident set size */
- long ru_ixrss; /* integral shared text memory size */
- long ru_idrss; /* integral unshared data size */
- long ru_isrss; /* integral unshared stack size */
- long ru_minflt; /* page reclaims */
- long ru_majflt; /* page faults */
- long ru_nswap; /* swaps */
- long ru_inblock; /* block input operations */
- long ru_oublock; /* block output operations */
- long ru_msgsnd; /* messages sent */
- long ru_msgrcv; /* messages received */
- long ru_nsignals; /* signals received */
- long ru_nvcsw; /* voluntary context switches */
- long ru_nivcsw; /* involuntary context switches */
-};
-.Ed
-.Pp
-The fields are interpreted as follows:
-.Bl -tag -width ru_minfltaa
-.It Fa ru_utime
-the total amount of time spent executing in user mode.
-.It Fa ru_stime
-the total amount of time spent in the system executing on behalf
-of the process(es).
-.It Fa ru_maxrss
-the maximum resident set size utilized (in kilobytes).
-.It Fa ru_ixrss
-an
-.Dq integral
-value indicating the amount of memory used
-by the text segment
-that was also shared among other processes.
-This value is expressed
-in units of kilobytes * ticks-of-execution.
-Ticks are statistics clock ticks.
-The statistics clock has a frequency of
-.Fn sysconf _SC_CLK_TCK
-ticks per second.
-.It Fa ru_idrss
-an integral value of the amount of unshared memory residing in the
-data segment of a process (expressed in units of
-kilobytes * ticks-of-execution).
-.It Fa ru_isrss
-an integral value of the amount of unshared memory residing in the
-stack segment of a process (expressed in units of
-kilobytes * ticks-of-execution).
-.It Fa ru_minflt
-the number of page faults serviced without any I/O activity; here
-I/O activity is avoided by
-.Dq reclaiming
-a page frame from
-the list of pages awaiting reallocation.
-.It Fa ru_majflt
-the number of page faults serviced that required I/O activity.
-.It Fa ru_nswap
-the number of times a process was
-.Dq swapped
-out of main
-memory.
-.It Fa ru_inblock
-the number of times the file system had to perform input.
-.It Fa ru_oublock
-the number of times the file system had to perform output.
-.It Fa ru_msgsnd
-the number of IPC messages sent.
-.It Fa ru_msgrcv
-the number of IPC messages received.
-.It Fa ru_nsignals
-the number of signals delivered.
-.It Fa ru_nvcsw
-the number of times a context switch resulted due to a process
-voluntarily giving up the processor before its time slice was
-completed (usually to await availability of a resource).
-.It Fa ru_nivcsw
-the number of times a context switch resulted due to a higher
-priority process becoming runnable or because the current process
-exceeded its time slice.
-.El
-.Sh NOTES
-The numbers
-.Fa ru_inblock
-and
-.Fa ru_oublock
-account only for real
-I/O; data supplied by the caching mechanism is charged only
-to the first process to read or write the data.
-.Sh RETURN VALUES
-.Rv -std getrusage
-.Sh ERRORS
-The
-.Fn getrusage
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa who
-argument is not a valid value.
-.It Bq Er EFAULT
-The address specified by the
-.Fa rusage
-argument is not in a valid part of the process address space.
-.El
-.Sh SEE ALSO
-.Xr gettimeofday 2 ,
-.Xr wait 2 ,
-.Xr clocks 7
-.Sh HISTORY
-The
-.Fn getrusage
-system call appeared in
-.Bx 4.2 .
-The
-.Dv RUSAGE_THREAD
-facility first appeared in
-.Fx 8.1 .
-.Sh BUGS
-There is no way to obtain information about a child process
-that has not yet terminated.
diff --git a/lib/libc/sys/getsid.2 b/lib/libc/sys/getsid.2
deleted file mode 100644
index 8d3107439601..000000000000
--- a/lib/libc/sys/getsid.2
+++ /dev/null
@@ -1,82 +0,0 @@
-.\" Copyright (c) 1997 Peter Wemm <peter@FreeBSD.org>
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 19, 1997
-.Dt GETSID 2
-.Os
-.Sh NAME
-.Nm getsid
-.Nd get process session
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft pid_t
-.Fn getsid "pid_t pid"
-.Sh DESCRIPTION
-The session ID of the process identified by
-.Fa pid
-is returned by
-.Fn getsid .
-If
-.Fa pid
-is zero,
-.Fn getsid
-returns the session ID of the current process.
-.Sh RETURN VALUES
-Upon successful completion, the
-.Fn getsid
-system call
-returns the session ID of
-the specified process; otherwise, it returns a value of -1 and
-sets errno to indicate an error.
-.Sh ERRORS
-The
-.Fn getsid
-system call
-will succeed unless:
-.Bl -tag -width Er
-.It Bq Er ESRCH
-if there is no process with a process ID equal to
-.Fa pid .
-.El
-.Pp
-Note that an implementation may restrict this system call to
-processes within the same session ID as the calling process.
-.Sh SEE ALSO
-.Xr getpgid 2 ,
-.Xr getpgrp 2 ,
-.Xr setpgid 2 ,
-.Xr setsid 2 ,
-.Xr termios 4
-.Sh HISTORY
-The
-.Fn getsid
-system call appeared in
-.Fx 3.0 .
-The
-.Fn getsid
-system call is derived from its usage in
-.At V .
diff --git a/lib/libc/sys/getsockname.2 b/lib/libc/sys/getsockname.2
deleted file mode 100644
index e11fbdd0954d..000000000000
--- a/lib/libc/sys/getsockname.2
+++ /dev/null
@@ -1,98 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getsockname.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd June 4, 1993
-.Dt GETSOCKNAME 2
-.Os
-.Sh NAME
-.Nm getsockname
-.Nd get socket name
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Ft int
-.Fn getsockname "int s" "struct sockaddr * restrict name" "socklen_t * restrict namelen"
-.Sh DESCRIPTION
-The
-.Fn getsockname
-system call
-returns the current
-.Fa name
-for the specified socket.
-The
-.Fa namelen
-argument should be initialized to indicate
-the amount of space pointed to by
-.Fa name .
-On return it contains the actual size of the name
-returned (in bytes).
-.Sh RETURN VALUES
-.Rv -std getsockname
-.Sh ERRORS
-The call succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The argument
-.Fa s
-is not a valid descriptor.
-.It Bq Er ECONNRESET
-The connection has been reset by the peer.
-.It Bq Er EINVAL
-The value of the
-.Fa namelen
-argument is not valid.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is a file, not a socket.
-.It Bq Er ENOBUFS
-Insufficient resources were available in the system
-to perform the operation.
-.It Bq Er EFAULT
-The
-.Fa name
-argument points to memory not in a valid part of the
-process address space.
-.El
-.Sh SEE ALSO
-.Xr bind 2 ,
-.Xr getpeername 2 ,
-.Xr socket 2
-.Sh HISTORY
-The
-.Fn getsockname
-system call appeared in
-.Bx 4.2 .
-.Sh BUGS
-Names bound to sockets in the UNIX domain are inaccessible;
-.Fn getsockname
-returns a zero length name.
diff --git a/lib/libc/sys/getsockopt.2 b/lib/libc/sys/getsockopt.2
deleted file mode 100644
index 3ff971a0e5db..000000000000
--- a/lib/libc/sys/getsockopt.2
+++ /dev/null
@@ -1,625 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getsockopt.2 8.4 (Berkeley) 5/2/95
-.\" $FreeBSD$
-.\"
-.Dd February 8, 2021
-.Dt GETSOCKOPT 2
-.Os
-.Sh NAME
-.Nm getsockopt ,
-.Nm setsockopt
-.Nd get and set options on sockets
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Ft int
-.Fn getsockopt "int s" "int level" "int optname" "void * restrict optval" "socklen_t * restrict optlen"
-.Ft int
-.Fn setsockopt "int s" "int level" "int optname" "const void *optval" "socklen_t optlen"
-.Sh DESCRIPTION
-The
-.Fn getsockopt
-and
-.Fn setsockopt
-system calls
-manipulate the
-.Em options
-associated with a socket.
-Options may exist at multiple
-protocol levels; they are always present at the uppermost
-.Dq socket
-level.
-.Pp
-When manipulating socket options the level at which the
-option resides and the name of the option must be specified.
-To manipulate options at the socket level,
-.Fa level
-is specified as
-.Dv SOL_SOCKET .
-To manipulate options at any
-other level the protocol number of the appropriate protocol
-controlling the option is supplied.
-For example,
-to indicate that an option is to be interpreted by the
-.Tn TCP
-protocol,
-.Fa level
-should be set to the protocol number of
-.Tn TCP ;
-see
-.Xr getprotoent 3 .
-.Pp
-The
-.Fa optval
-and
-.Fa optlen
-arguments
-are used to access option values for
-.Fn setsockopt .
-For
-.Fn getsockopt
-they identify a buffer in which the value for the
-requested option(s) are to be returned.
-For
-.Fn getsockopt ,
-.Fa optlen
-is a value-result argument, initially containing the
-size of the buffer pointed to by
-.Fa optval ,
-and modified on return to indicate the actual size of
-the value returned.
-If no option value is
-to be supplied or returned,
-.Fa optval
-may be NULL.
-.Pp
-The
-.Fa optname
-argument
-and any specified options are passed uninterpreted to the appropriate
-protocol module for interpretation.
-The include file
-.In sys/socket.h
-contains definitions for
-socket level options, described below.
-Options at other protocol levels vary in format and
-name; consult the appropriate entries in
-section
-4 of the manual.
-.Pp
-Most socket-level options utilize an
-.Vt int
-argument for
-.Fa optval .
-For
-.Fn setsockopt ,
-the argument should be non-zero to enable a boolean option,
-or zero if the option is to be disabled.
-.Dv SO_LINGER
-uses a
-.Vt "struct linger"
-argument, defined in
-.In sys/socket.h ,
-which specifies the desired state of the option and the
-linger interval (see below).
-.Dv SO_SNDTIMEO
-and
-.Dv SO_RCVTIMEO
-use a
-.Vt "struct timeval"
-argument, defined in
-.In sys/time.h .
-.Pp
-The following options are recognized at the socket level.
-For protocol-specific options, see protocol manual pages,
-e.g.
-.Xr ip 4
-or
-.Xr tcp 4 .
-Except as noted, each may be examined with
-.Fn getsockopt
-and set with
-.Fn setsockopt .
-.Bl -column SO_ACCEPTFILTER -offset indent
-.It Dv SO_DEBUG Ta "enables recording of debugging information"
-.It Dv SO_REUSEADDR Ta "enables local address reuse"
-.It Dv SO_REUSEPORT Ta "enables duplicate address and port bindings"
-.It Dv SO_REUSEPORT_LB Ta "enables duplicate address and port bindings with load balancing"
-.It Dv SO_KEEPALIVE Ta "enables keep connections alive"
-.It Dv SO_DONTROUTE Ta "enables routing bypass for outgoing messages"
-.It Dv SO_LINGER Ta "linger on close if data present"
-.It Dv SO_BROADCAST Ta "enables permission to transmit broadcast messages"
-.It Dv SO_OOBINLINE Ta "enables reception of out-of-band data in band"
-.It Dv SO_SNDBUF Ta "set buffer size for output"
-.It Dv SO_RCVBUF Ta "set buffer size for input"
-.It Dv SO_SNDLOWAT Ta "set minimum count for output"
-.It Dv SO_RCVLOWAT Ta "set minimum count for input"
-.It Dv SO_SNDTIMEO Ta "set timeout value for output"
-.It Dv SO_RCVTIMEO Ta "set timeout value for input"
-.It Dv SO_ACCEPTFILTER Ta "set accept filter on listening socket"
-.It Dv SO_NOSIGPIPE Ta
-controls generation of
-.Dv SIGPIPE
-for the socket
-.It Dv SO_TIMESTAMP Ta "enables reception of a timestamp with datagrams"
-.It Dv SO_BINTIME Ta "enables reception of a timestamp with datagrams"
-.It Dv SO_ACCEPTCONN Ta "get listening status of the socket (get only)"
-.It Dv SO_DOMAIN Ta "get the domain of the socket (get only)"
-.It Dv SO_TYPE Ta "get the type of the socket (get only)"
-.It Dv SO_PROTOCOL Ta "get the protocol number for the socket (get only)"
-.It Dv SO_PROTOTYPE Ta "SunOS alias for the Linux SO_PROTOCOL (get only)"
-.It Dv SO_ERROR Ta "get and clear error on the socket (get only)"
-.It Dv SO_RERROR Ta "enables receive error reporting"
-.It Dv SO_SETFIB Ta "set the associated FIB (routing table) for the socket (set only)"
-.El
-.Pp
-The following options are recognized in
-.Fx :
-.Bl -column SO_LISTENINCQLEN -offset indent
-.It Dv SO_LABEL Ta "get MAC label of the socket (get only)"
-.It Dv SO_PEERLABEL Ta "get socket's peer's MAC label (get only)"
-.It Dv SO_LISTENQLIMIT Ta "get backlog limit of the socket (get only)"
-.It Dv SO_LISTENQLEN Ta "get complete queue length of the socket (get only)"
-.It Dv SO_LISTENINCQLEN Ta "get incomplete queue length of the socket (get only)"
-.It Dv SO_USER_COOKIE Ta "set the 'so_user_cookie' value for the socket (uint32_t, set only)"
-.It Dv SO_TS_CLOCK Ta "set specific format of timestamp returned by SO_TIMESTAMP"
-.It Dv SO_MAX_PACING_RATE Ta "set the maximum transmit rate in bytes per second for the socket"
-.It Dv SO_NO_OFFLOAD Ta "disables protocol offloads"
-.It Dv SO_NO_DDP Ta "disables direct data placement offload"
-.El
-.Pp
-.Dv SO_DEBUG
-enables debugging in the underlying protocol modules.
-.Pp
-.Dv SO_REUSEADDR
-indicates that the rules used in validating addresses supplied
-in a
-.Xr bind 2
-system call should allow reuse of local addresses.
-.Pp
-.Dv SO_REUSEPORT
-allows completely duplicate bindings by multiple processes
-if they all set
-.Dv SO_REUSEPORT
-before binding the port.
-This option permits multiple instances of a program to each
-receive UDP/IP multicast or broadcast datagrams destined for the bound port.
-.Pp
-.Dv SO_REUSEPORT_LB
-allows completely duplicate bindings by multiple processes
-if they all set
-.Dv SO_REUSEPORT_LB
-before binding the port.
-Incoming TCP and UDP connections are distributed among the sharing
-processes based on a hash function of local port number, foreign IP
-address and port number.
-A maximum of 256 processes can share one socket.
-.Pp
-.Dv SO_KEEPALIVE
-enables the
-periodic transmission of messages on a connected socket.
-Should the
-connected party fail to respond to these messages, the connection is
-considered broken and processes using the socket are notified via a
-.Dv SIGPIPE
-signal when attempting to send data.
-.Pp
-.Dv SO_DONTROUTE
-indicates that outgoing messages should
-bypass the standard routing facilities.
-Instead, messages are directed
-to the appropriate network interface according to the network portion
-of the destination address.
-.Pp
-.Dv SO_LINGER
-controls the action taken when unsent messages
-are queued on socket and a
-.Xr close 2
-is performed.
-If the socket promises reliable delivery of data and
-.Dv SO_LINGER
-is set,
-the system will block the process on the
-.Xr close 2
-attempt until it is able to transmit the data or until it decides it
-is unable to deliver the information (a timeout period, termed the
-linger interval, is specified in seconds in the
-.Fn setsockopt
-system call when
-.Dv SO_LINGER
-is requested).
-If
-.Dv SO_LINGER
-is disabled and a
-.Xr close 2
-is issued, the system will process the close in a manner that allows
-the process to continue as quickly as possible.
-.Pp
-The option
-.Dv SO_BROADCAST
-requests permission to send broadcast datagrams
-on the socket.
-Broadcast was a privileged operation in earlier versions of the system.
-.Pp
-With protocols that support out-of-band data, the
-.Dv SO_OOBINLINE
-option
-requests that out-of-band data be placed in the normal data input queue
-as received; it will then be accessible with
-.Xr recv 2
-or
-.Xr read 2
-calls without the
-.Dv MSG_OOB
-flag.
-Some protocols always behave as if this option is set.
-.Pp
-.Dv SO_SNDBUF
-and
-.Dv SO_RCVBUF
-are options to adjust the normal
-buffer sizes allocated for output and input buffers, respectively.
-The buffer size may be increased for high-volume connections,
-or may be decreased to limit the possible backlog of incoming data.
-The system places an absolute maximum on these values, which is accessible
-through the
-.Xr sysctl 3
-MIB variable
-.Dq Li kern.ipc.maxsockbuf .
-.Pp
-.Dv SO_SNDLOWAT
-is an option to set the minimum count for output operations.
-Most output operations process all of the data supplied
-by the call, delivering data to the protocol for transmission
-and blocking as necessary for flow control.
-Nonblocking output operations will process as much data as permitted
-subject to flow control without blocking, but will process no data
-if flow control does not allow the smaller of the low water mark value
-or the entire request to be processed.
-A
-.Xr select 2
-operation testing the ability to write to a socket will return true
-only if the low water mark amount could be processed.
-The default value for
-.Dv SO_SNDLOWAT
-is set to a convenient size for network efficiency, often 1024.
-.Pp
-.Dv SO_RCVLOWAT
-is an option to set the minimum count for input operations.
-In general, receive calls will block until any (non-zero) amount of data
-is received, then return with the smaller of the amount available or the amount
-requested.
-The default value for
-.Dv SO_RCVLOWAT
-is 1.
-If
-.Dv SO_RCVLOWAT
-is set to a larger value, blocking receive calls normally
-wait until they have received the smaller of the low water mark value
-or the requested amount.
-Receive calls may still return less than the low water mark if an error
-occurs, a signal is caught, or the type of data next in the receive queue
-is different from that which was returned.
-.Pp
-.Dv SO_SNDTIMEO
-is an option to set a timeout value for output operations.
-It accepts a
-.Vt "struct timeval"
-argument with the number of seconds and microseconds
-used to limit waits for output operations to complete.
-If a send operation has blocked for this much time,
-it returns with a partial count
-or with the error
-.Er EWOULDBLOCK
-if no data were sent.
-In the current implementation, this timer is restarted each time additional
-data are delivered to the protocol,
-implying that the limit applies to output portions ranging in size
-from the low water mark to the high water mark for output.
-.Pp
-.Dv SO_RCVTIMEO
-is an option to set a timeout value for input operations.
-It accepts a
-.Vt "struct timeval"
-argument with the number of seconds and microseconds
-used to limit waits for input operations to complete.
-In the current implementation, this timer is restarted each time additional
-data are received by the protocol,
-and thus the limit is in effect an inactivity timer.
-If a receive operation has been blocked for this much time without
-receiving additional data, it returns with a short count
-or with the error
-.Er EWOULDBLOCK
-if no data were received.
-.Pp
-.Dv SO_SETFIB
-can be used to over-ride the default FIB (routing table) for the given socket.
-The value must be from 0 to one less than the number returned from
-the sysctl
-.Em net.fibs .
-.Pp
-.Dv SO_USER_COOKIE
-can be used to set the uint32_t so_user_cookie field in the socket.
-The value is an uint32_t, and can be used in the kernel code that
-manipulates traffic related to the socket.
-The default value for the field is 0.
-As an example, the value can be used as the skipto target or
-pipe number in
-.Nm ipfw/dummynet .
-.Pp
-.Dv SO_ACCEPTFILTER
-places an
-.Xr accept_filter 9
-on the socket,
-which will filter incoming connections
-on a listening stream socket before being presented for
-.Xr accept 2 .
-Once more,
-.Xr listen 2
-must be called on the socket before
-trying to install the filter on it,
-or else the
-.Fn setsockopt
-system call will fail.
-.Bd -literal
-struct accept_filter_arg {
- char af_name[16];
- char af_arg[256-16];
-};
-.Ed
-.Pp
-The
-.Fa optval
-argument
-should point to a
-.Fa struct accept_filter_arg
-that will select and configure the
-.Xr accept_filter 9 .
-The
-.Fa af_name
-argument
-should be filled with the name of the accept filter
-that the application wishes to place on the listening socket.
-The optional argument
-.Fa af_arg
-can be passed to the accept
-filter specified by
-.Fa af_name
-to provide additional configuration options at attach time.
-Passing in an
-.Fa optval
-of NULL will remove the filter.
-.Pp
-The
-.Dv SO_NOSIGPIPE
-option controls generation of the
-.Dv SIGPIPE
-signal normally sent
-when writing to a connected socket where the other end has been
-closed returns with the error
-.Er EPIPE .
-.Pp
-If the
-.Dv SO_TIMESTAMP
-or
-.Dv SO_BINTIME
-option is enabled on a
-.Dv SOCK_DGRAM
-socket, the
-.Xr recvmsg 2
-call may return a timestamp corresponding to when the datagram was received.
-However, it may not, for example due to a resource shortage.
-The
-.Va msg_control
-field in the
-.Vt msghdr
-structure points to a buffer that contains a
-.Vt cmsghdr
-structure followed by a
-.Vt "struct timeval"
-for
-.Dv SO_TIMESTAMP
-and
-.Vt "struct bintime"
-for
-.Dv SO_BINTIME .
-The
-.Vt cmsghdr
-fields have the following values for TIMESTAMP by default:
-.Bd -literal
- cmsg_len = CMSG_LEN(sizeof(struct timeval));
- cmsg_level = SOL_SOCKET;
- cmsg_type = SCM_TIMESTAMP;
-.Ed
-.Pp
-and for
-.Dv SO_BINTIME :
-.Bd -literal
- cmsg_len = CMSG_LEN(sizeof(struct bintime));
- cmsg_level = SOL_SOCKET;
- cmsg_type = SCM_BINTIME;
-.Ed
-.Pp
-Additional timestamp types are available by following
-.Dv SO_TIMESTAMP
-with
-.Dv SO_TS_CLOCK ,
-which requests a specific timestamp format to be returned instead of
-.Dv SCM_TIMESTAMP when
-.Dv SO_TIMESTAMP is enabled.
-These
-.Dv SO_TS_CLOCK
-values are recognized in
-.Fx :
-.Bl -column SO_TS_CLOCK -offset indent
-.It Dv SO_TS_REALTIME_MICRO Ta "realtime (SCM_TIMESTAMP, struct timeval), default"
-.It Dv SO_TS_BINTIME Ta "realtime (SCM_BINTIME, struct bintime)"
-.It Dv SO_TS_REALTIME Ta "realtime (SCM_REALTIME, struct timespec)"
-.It Dv SO_TS_MONOTONIC Ta "monotonic time (SCM_MONOTONIC, struct timespec)"
-.El
-.Pp
-.Dv SO_ACCEPTCONN ,
-.Dv SO_TYPE ,
-.Dv SO_PROTOCOL
-(and its alias
-.Dv SO_PROTOTYPE )
-and
-.Dv SO_ERROR
-are options used only with
-.Fn getsockopt .
-.Dv SO_ACCEPTCONN
-returns whether the socket is currently accepting connections,
-that is, whether or not the
-.Xr listen 2
-system call was invoked on the socket.
-.Dv SO_TYPE
-returns the type of the socket, such as
-.Dv SOCK_STREAM ;
-it is useful for servers that inherit sockets on startup.
-.Dv SO_PROTOCOL
-returns the protocol number for the socket, for
-.Dv AF_INET
-and
-.Dv AF_INET6
-address families.
-.Dv SO_ERROR
-returns any pending error on the socket and clears
-the error status.
-It may be used to check for asynchronous errors on connected
-datagram sockets or for other asynchronous errors.
-.Dv SO_RERROR
-indicates that receive buffer overflows should be handled as errors.
-Historically receive buffer overflows have been ignored and programs
-could not tell if they missed messages or messages had been truncated
-because of overflows.
-Since programs historically do not expect to get receive overflow errors,
-this behavior is not the default.
-.Pp
-.Dv SO_LABEL
-returns the MAC label of the socket.
-.Dv SO_PEERLABEL
-returns the MAC label of the socket's peer.
-Note that your kernel must be compiled with MAC support.
-See
-.Xr mac 3
-for more information.
-.Pp
-.Dv SO_LISTENQLIMIT
-returns the maximal number of queued connections, as set by
-.Xr listen 2 .
-.Dv SO_LISTENQLEN
-returns the number of unaccepted complete connections.
-.Dv SO_LISTENINCQLEN
-returns the number of unaccepted incomplete connections.
-.Pp
-.Dv SO_MAX_PACING_RATE
-instruct the socket and underlying network adapter layers to limit the
-transfer rate to the given unsigned 32-bit value in bytes per second.
-.Pp
-.Dv SO_NO_OFFLOAD
-disables support for protocol offloads.
-At present, this prevents TCP sockets from using TCP offload engines.
-.Dv SO_NO_DDP
-disables support for a specific TCP offload known as direct data
-placement (DDP).
-DDP is an offload supported by Chelsio network adapters that permits
-reassembled TCP data streams to be received via zero-copy in
-user-supplied buffers using
-.Xr aio_read 2 .
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn getsockopt
-and
-.Fn setsockopt
-system calls succeed unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The argument
-.Fa s
-is not a valid descriptor.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is a file, not a socket.
-.It Bq Er ENOPROTOOPT
-The option is unknown at the level indicated.
-.It Bq Er EFAULT
-The address pointed to by
-.Fa optval
-is not in a valid part of the process address space.
-For
-.Fn getsockopt ,
-this error may also be returned if
-.Fa optlen
-is not in a valid part of the process address space.
-.It Bq Er EINVAL
-Installing an
-.Xr accept_filter 9
-on a non-listening socket was attempted.
-.It Bq Er ENOMEM
-A memory allocation failed that was required to service the request.
-.El
-.Pp
-The
-.Fn setsockopt
-system call may also return the following error:
-.Bl -tag -width Er
-.It Bq Er ENOBUFS
-Insufficient resources were available in the system
-to perform the operation.
-.El
-.Sh SEE ALSO
-.Xr ioctl 2 ,
-.Xr listen 2 ,
-.Xr recvmsg 2 ,
-.Xr socket 2 ,
-.Xr getprotoent 3 ,
-.Xr mac 3 ,
-.Xr sysctl 3 ,
-.Xr ip 4 ,
-.Xr ip6 4 ,
-.Xr sctp 4 ,
-.Xr tcp 4 ,
-.Xr protocols 5 ,
-.Xr sysctl 8 ,
-.Xr accept_filter 9 ,
-.Xr bintime 9
-.Sh HISTORY
-The
-.Fn getsockopt
-and
-.Fn setsockopt
-system calls appeared in
-.Bx 4.2 .
-.Sh BUGS
-Several of the socket options should be handled at lower levels of the system.
diff --git a/lib/libc/sys/gettimeofday.2 b/lib/libc/sys/gettimeofday.2
deleted file mode 100644
index 08e3979149e7..000000000000
--- a/lib/libc/sys/gettimeofday.2
+++ /dev/null
@@ -1,131 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)gettimeofday.2 8.2 (Berkeley) 5/26/95
-.\" $FreeBSD$
-.\"
-.Dd May 13, 2021
-.Dt GETTIMEOFDAY 2
-.Os
-.Sh NAME
-.Nm gettimeofday ,
-.Nm settimeofday
-.Nd get/set date and time
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/time.h
-.Ft int
-.Fn gettimeofday "struct timeval *tp" "struct timezone *tzp"
-.Ft int
-.Fn settimeofday "const struct timeval *tp" "const struct timezone *tzp"
-.Sh DESCRIPTION
-The system's notion of the current Greenwich time and the current time
-zone is obtained with the
-.Fn gettimeofday
-system call, and set with the
-.Fn settimeofday
-system call.
-The time is expressed in seconds and microseconds
-since midnight (0 hour), January 1, 1970.
-The resolution of the system
-clock is hardware dependent, and the time may be updated continuously or
-in
-.Dq ticks .
-If
-.Fa tp
-or
-.Fa tzp
-is NULL, the associated time
-information will not be returned or set.
-.Pp
-The structures pointed to by
-.Fa tp
-and
-.Fa tzp
-are defined in
-.In sys/time.h
-as:
-.Bd -literal
-struct timeval {
- time_t tv_sec; /* seconds */
- suseconds_t tv_usec; /* and microseconds */
-};
-
-struct timezone {
- int tz_minuteswest; /* minutes west of Greenwich */
- int tz_dsttime; /* type of dst correction */
-};
-.Ed
-.Pp
-The
-.Vt timezone
-structure indicates the local time zone
-(measured in minutes of time westward from Greenwich),
-and a flag that, if nonzero, indicates that
-Daylight Saving time applies locally during
-the appropriate part of the year.
-The kernel generally does not track these values and they
-are usually returned as zero.
-Use
-.Xr localtime 3
-to find the offset for the currently active timezone.
-.Pp
-Only the super-user may set the time of day or time zone.
-If the system is running at securelevel >= 2 (see
-.Xr init 8 ) ,
-the time may only be advanced or retarded by a maximum of one second.
-This limitation is imposed to prevent a malicious super-user
-from setting arbitrary time stamps on files.
-The system time can be adjusted backwards without restriction using the
-.Xr adjtime 2
-system call even when the system is secure.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The following error codes may be set in
-.Va errno :
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The supplied
-.Fa timeval
-value is invalid.
-.It Bq Er EPERM
-A user other than the super-user attempted to set the time.
-.El
-.Sh SEE ALSO
-.Xr date 1 ,
-.Xr adjtime 2 ,
-.Xr clock_gettime 2 ,
-.Xr ctime 3 ,
-.Xr timeradd 3 ,
-.Xr clocks 7
-.Sh HISTORY
-The
-.Fn gettimeofday
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/getuid.2 b/lib/libc/sys/getuid.2
deleted file mode 100644
index c0b06db21afd..000000000000
--- a/lib/libc/sys/getuid.2
+++ /dev/null
@@ -1,91 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)getuid.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2017
-.Dt GETUID 2
-.Os
-.Sh NAME
-.Nm getuid ,
-.Nm geteuid
-.Nd get user identification
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft uid_t
-.Fn getuid void
-.Ft uid_t
-.Fn geteuid void
-.Sh DESCRIPTION
-The
-.Fn getuid
-system call returns the real user ID of the calling process.
-The
-.Fn geteuid
-system call
-returns the effective user ID of the calling process.
-.Pp
-The real user ID is that of the user who has invoked the program.
-As the effective user ID
-gives the process additional permissions during
-execution of
-.Dq Em set-user-ID
-mode processes,
-.Fn getuid
-is used to determine the real-user-id of the calling process.
-.Sh ERRORS
-The
-.Fn getuid
-and
-.Fn geteuid
-system calls are always successful, and no return value is reserved to
-indicate an error.
-.Sh SEE ALSO
-.Xr getgid 2 ,
-.Xr issetugid 2 ,
-.Xr setgid 2 ,
-.Xr setreuid 2 ,
-.Xr setuid 2
-.Sh STANDARDS
-The
-.Fn geteuid
-and
-.Fn getuid
-system calls are expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn getuid
-function appeared in
-.At v1 .
-The
-.Fn geteuid
-function appeared in
-.At v4 .
diff --git a/lib/libc/sys/interposing_table.c b/lib/libc/sys/interposing_table.c
deleted file mode 100644
index b2cfb3250cd9..000000000000
--- a/lib/libc/sys/interposing_table.c
+++ /dev/null
@@ -1,94 +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),
- SLOT(map_stacks_exec, __libc_map_stacks_exec),
- SLOT(fdatasync, __sys_fdatasync),
- SLOT(clock_nanosleep, __sys_clock_nanosleep),
- SLOT(distribute_static_tls, __libc_distribute_static_tls),
- SLOT(pdfork, __sys_pdfork),
-};
-#undef SLOT
-
-interpos_func_t *
-__libc_interposing_slot(int interposno)
-{
-
- return (&__libc_interposing[interposno]);
-}
diff --git a/lib/libc/sys/intro.2 b/lib/libc/sys/intro.2
deleted file mode 100644
index 925c56eaab52..000000000000
--- a/lib/libc/sys/intro.2
+++ /dev/null
@@ -1,768 +0,0 @@
-.\" Copyright (c) 1980, 1983, 1986, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)intro.2 8.5 (Berkeley) 2/27/95
-.\" $FreeBSD$
-.\"
-.Dd September 8, 2016
-.Dt INTRO 2
-.Os
-.Sh NAME
-.Nm intro
-.Nd introduction to system calls and error numbers
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In errno.h
-.Sh DESCRIPTION
-This section provides an overview of the system calls,
-their error returns, and other common definitions and concepts.
-.\".Pp
-.\".Sy System call restart
-.\".Pp
-.\"(more later...)
-.Sh RETURN VALUES
-Nearly all of the system calls provide an error number referenced via
-the external identifier errno.
-This identifier is defined in
-.In sys/errno.h
-as
-.Pp
-.Dl extern int * __error();
-.Dl #define errno (* __error())
-.Pp
-The
-.Va __error()
-function returns a pointer to a field in the thread specific structure for
-threads other than the initial thread.
-For the initial thread and
-non-threaded processes,
-.Va __error()
-returns a pointer to a global
-.Va errno
-variable that is compatible with the previous definition.
-.Pp
-When a system call detects an error,
-it returns an integer value
-indicating failure (usually -1)
-and sets the variable
-.Va errno
-accordingly.
-(This allows interpretation of the failure on receiving
-a -1 and to take action accordingly.)
-Successful calls never set
-.Va errno ;
-once set, it remains until another error occurs.
-It should only be examined after an error.
-Note that a number of system calls overload the meanings of these
-error numbers, and that the meanings must be interpreted according
-to the type and circumstances of the call.
-.Pp
-The following is a complete list of the errors and their
-names as given in
-.In sys/errno.h .
-.Bl -hang -width Ds
-.It Er 0 Em "Undefined error: 0" .
-Not used.
-.It Er 1 EPERM Em "Operation not permitted" .
-An attempt was made to perform an operation limited to processes
-with appropriate privileges or to the owner of a file or other
-resources.
-.It Er 2 ENOENT Em "No such file or directory" .
-A component of a specified pathname did not exist, or the
-pathname was an empty string.
-.It Er 3 ESRCH Em "No such process" .
-No process could be found corresponding to that specified by the given
-process ID.
-.It Er 4 EINTR Em "Interrupted system call" .
-An asynchronous signal (such as
-.Dv SIGINT
-or
-.Dv SIGQUIT )
-was caught by the process during the execution of an interruptible
-function.
-If the signal handler performs a normal return, the
-interrupted system call will seem to have returned the error condition.
-.It Er 5 EIO Em "Input/output error" .
-Some physical input or output error occurred.
-This error will not be reported until a subsequent operation on the same file
-descriptor and may be lost (over written) by any subsequent errors.
-.It Er 6 ENXIO Em "Device not configured" .
-Input or output on a special file referred to a device that did not
-exist, or
-made a request beyond the limits of the device.
-This error may also occur when, for example,
-a tape drive is not online or no disk pack is
-loaded on a drive.
-.It Er 7 E2BIG Em "Argument list too long" .
-The number of bytes used for the argument and environment
-list of the new process exceeded the current limit
-.Dv ( NCARGS
-in
-.In sys/param.h ) .
-.It Er 8 ENOEXEC Em "Exec format error" .
-A request was made to execute a file
-that, although it has the appropriate permissions,
-was not in the format required for an
-executable file.
-.It Er 9 EBADF Em "Bad file descriptor" .
-A file descriptor argument was out of range, referred to no open file,
-or a read (write) request was made to a file that was only open for
-writing (reading).
-.It Er 10 ECHILD Em "\&No child processes" .
-A
-.Xr wait 2
-or
-.Xr waitpid 2
-function was executed by a process that had no existing or unwaited-for
-child processes.
-.It Er 11 EDEADLK Em "Resource deadlock avoided" .
-An attempt was made to lock a system resource that
-would have resulted in a deadlock situation.
-.It Er 12 ENOMEM Em "Cannot allocate memory" .
-The new process image required more memory than was allowed by the hardware
-or by system-imposed memory management constraints.
-A lack of swap space is normally temporary; however,
-a lack of core is not.
-Soft limits may be increased to their corresponding hard limits.
-.It Er 13 EACCES Em "Permission denied" .
-An attempt was made to access a file in a way forbidden
-by its file access permissions.
-.It Er 14 EFAULT Em "Bad address" .
-The system detected an invalid address in attempting to
-use an argument of a call.
-.It Er 15 ENOTBLK Em "Block device required" .
-A block device operation was attempted on a non-block device or file.
-.It Er 16 EBUSY Em "Device busy" .
-An attempt to use a system resource which was in use at the time
-in a manner which would have conflicted with the request.
-.It Er 17 EEXIST Em "File exists" .
-An existing file was mentioned in an inappropriate context,
-for instance, as the new link name in a
-.Xr link 2
-system call.
-.It Er 18 EXDEV Em "Cross-device link" .
-A hard link to a file on another file system
-was attempted.
-.It Er 19 ENODEV Em "Operation not supported by device" .
-An attempt was made to apply an inappropriate
-function to a device,
-for example,
-trying to read a write-only device such as a printer.
-.It Er 20 ENOTDIR Em "Not a directory" .
-A component of the specified pathname existed, but it was
-not a directory, when a directory was expected.
-.It Er 21 EISDIR Em "Is a directory" .
-An attempt was made to open a directory with write mode specified.
-.It Er 22 EINVAL Em "Invalid argument" .
-Some invalid argument was supplied.
-(For example,
-specifying an undefined signal to a
-.Xr signal 3
-function
-or a
-.Xr kill 2
-system call).
-.It Er 23 ENFILE Em "Too many open files in system" .
-Maximum number of open files allowable on the system
-has been reached and requests for an open cannot be satisfied
-until at least one has been closed.
-.It Er 24 EMFILE Em "Too many open files" .
-Maximum number of file descriptors allowable in the process
-has been reached and requests for an open cannot be satisfied
-until at least one has been closed.
-The
-.Xr getdtablesize 2
-system call will obtain the current limit.
-.It Er 25 ENOTTY Em "Inappropriate ioctl for device" .
-A control function (see
-.Xr ioctl 2 )
-was attempted for a file or
-special device for which the operation was inappropriate.
-.It Er 26 ETXTBSY Em "Text file busy" .
-The new process was a pure procedure (shared text) file
-which was open for writing by another process, or
-while the pure procedure file was being executed an
-.Xr open 2
-call requested write access.
-.It Er 27 EFBIG Em "File too large" .
-The size of a file exceeded the maximum.
-.It Er 28 ENOSPC Em "No space left on device" .
-A
-.Xr write 2
-to an ordinary file, the creation of a
-directory or symbolic link, or the creation of a directory
-entry failed because no more disk blocks were available
-on the file system, or the allocation of an inode for a newly
-created file failed because no more inodes were available
-on the file system.
-.It Er 29 ESPIPE Em "Illegal seek" .
-An
-.Xr lseek 2
-system call was issued on a socket, pipe or
-.Tn FIFO .
-.It Er 30 EROFS Em "Read-only file system" .
-An attempt was made to modify a file or directory
-on a file system that was read-only at the time.
-.It Er 31 EMLINK Em "Too many links" .
-Maximum allowable hard links to a single file has been exceeded (limit
-of 32767 hard links per file).
-.It Er 32 EPIPE Em "Broken pipe" .
-A write on a pipe, socket or
-.Tn FIFO
-for which there is no process
-to read the data.
-.It Er 33 EDOM Em "Numerical argument out of domain" .
-A numerical input argument was outside the defined domain of the mathematical
-function.
-.It Er 34 ERANGE Em "Result too large" .
-A numerical result of the function was too large to fit in the
-available space (perhaps exceeded precision).
-.It Er 35 EAGAIN Em "Resource temporarily unavailable" .
-This is a temporary condition and later calls to the
-same routine may complete normally.
-.It Er 36 EINPROGRESS Em "Operation now in progress" .
-An operation that takes a long time to complete (such as
-a
-.Xr connect 2 )
-was attempted on a non-blocking object (see
-.Xr fcntl 2 ) .
-.It Er 37 EALREADY Em "Operation already in progress" .
-An operation was attempted on a non-blocking object that already
-had an operation in progress.
-.It Er 38 ENOTSOCK Em "Socket operation on non-socket" .
-Self-explanatory.
-.It Er 39 EDESTADDRREQ Em "Destination address required" .
-A required address was omitted from an operation on a socket.
-.It Er 40 EMSGSIZE Em "Message too long" .
-A message sent on a socket was larger than the internal message buffer
-or some other network limit.
-.It Er 41 EPROTOTYPE Em "Protocol wrong type for socket" .
-A protocol was specified that does not support the semantics of the
-socket type requested.
-For example, you cannot use the
-.Tn ARPA
-Internet
-.Tn UDP
-protocol with type
-.Dv SOCK_STREAM .
-.It Er 42 ENOPROTOOPT Em "Protocol not available" .
-A bad option or level was specified in a
-.Xr getsockopt 2
-or
-.Xr setsockopt 2
-call.
-.It Er 43 EPROTONOSUPPORT Em "Protocol not supported" .
-The protocol has not been configured into the
-system or no implementation for it exists.
-.It Er 44 ESOCKTNOSUPPORT Em "Socket type not supported" .
-The support for the socket type has not been configured into the
-system or no implementation for it exists.
-.It Er 45 EOPNOTSUPP Em "Operation not supported" .
-The attempted operation is not supported for the type of object referenced.
-Usually this occurs when a file descriptor refers to a file or socket
-that cannot support this operation,
-for example, trying to
-.Em accept
-a connection on a datagram socket.
-.It Er 46 EPFNOSUPPORT Em "Protocol family not supported" .
-The protocol family has not been configured into the
-system or no implementation for it exists.
-.It Er 47 EAFNOSUPPORT Em "Address family not supported by protocol family" .
-An address incompatible with the requested protocol was used.
-For example, you should not necessarily expect to be able to use
-.Tn NS
-addresses with
-.Tn ARPA
-Internet protocols.
-.It Er 48 EADDRINUSE Em "Address already in use" .
-Only one usage of each address is normally permitted.
-.It Er 49 EADDRNOTAVAIL Em "Can't assign requested address" .
-Normally results from an attempt to create a socket with an
-address not on this machine.
-.It Er 50 ENETDOWN Em "Network is down" .
-A socket operation encountered a dead network.
-.It Er 51 ENETUNREACH Em "Network is unreachable" .
-A socket operation was attempted to an unreachable network.
-.It Er 52 ENETRESET Em "Network dropped connection on reset" .
-The host you were connected to crashed and rebooted.
-.It Er 53 ECONNABORTED Em "Software caused connection abort" .
-A connection abort was caused internal to your host machine.
-.It Er 54 ECONNRESET Em "Connection reset by peer" .
-A connection was forcibly closed by a peer.
-This normally
-results from a loss of the connection on the remote socket
-due to a timeout or a reboot.
-.It Er 55 ENOBUFS Em "\&No buffer space available" .
-An operation on a socket or pipe was not performed because
-the system lacked sufficient buffer space or because a queue was full.
-.It Er 56 EISCONN Em "Socket is already connected" .
-A
-.Xr connect 2
-request was made on an already connected socket; or,
-a
-.Xr sendto 2
-or
-.Xr sendmsg 2
-request on a connected socket specified a destination
-when already connected.
-.It Er 57 ENOTCONN Em "Socket is not connected" .
-An request to send or receive data was disallowed because
-the socket was not connected and (when sending on a datagram socket)
-no address was supplied.
-.It Er 58 ESHUTDOWN Em "Can't send after socket shutdown" .
-A request to send data was disallowed because the socket
-had already been shut down with a previous
-.Xr shutdown 2
-call.
-.It Er 60 ETIMEDOUT Em "Operation timed out" .
-A
-.Xr connect 2
-or
-.Xr send 2
-request failed because the connected party did not
-properly respond after a period of time.
-(The timeout
-period is dependent on the communication protocol.)
-.It Er 61 ECONNREFUSED Em "Connection refused" .
-No connection could be made because the target machine actively
-refused it.
-This usually results from trying to connect
-to a service that is inactive on the foreign host.
-.It Er 62 ELOOP Em "Too many levels of symbolic links" .
-A path name lookup involved more than 32
-.Pq Dv MAXSYMLINKS
-symbolic links.
-.It Er 63 ENAMETOOLONG Em "File name too long" .
-A component of a path name exceeded
-.Brq Dv NAME_MAX
-characters, or an entire
-path name exceeded
-.Brq Dv PATH_MAX
-characters.
-(See also the description of
-.Dv _PC_NO_TRUNC
-in
-.Xr pathconf 2 . )
-.It Er 64 EHOSTDOWN Em "Host is down" .
-A socket operation failed because the destination host was down.
-.It Er 65 EHOSTUNREACH Em "No route to host" .
-A socket operation was attempted to an unreachable host.
-.It Er 66 ENOTEMPTY Em "Directory not empty" .
-A directory with entries other than
-.Ql .\&
-and
-.Ql ..\&
-was supplied to a remove directory or rename call.
-.It Er 67 EPROCLIM Em "Too many processes" .
-.It Er 68 EUSERS Em "Too many users" .
-The quota system ran out of table entries.
-.It Er 69 EDQUOT Em "Disc quota exceeded" .
-A
-.Xr write 2
-to an ordinary file, the creation of a
-directory or symbolic link, or the creation of a directory
-entry failed because the user's quota of disk blocks was
-exhausted, or the allocation of an inode for a newly
-created file failed because the user's quota of inodes
-was exhausted.
-.It Er 70 ESTALE Em "Stale NFS file handle" .
-An attempt was made to access an open file (on an
-.Tn NFS
-file system)
-which is now unavailable as referenced by the file descriptor.
-This may indicate the file was deleted on the
-.Tn NFS
-server or some
-other catastrophic event occurred.
-.It Er 72 EBADRPC Em "RPC struct is bad" .
-Exchange of
-.Tn RPC
-information was unsuccessful.
-.It Er 73 ERPCMISMATCH Em "RPC version wrong" .
-The version of
-.Tn RPC
-on the remote peer is not compatible with
-the local version.
-.It Er 74 EPROGUNAVAIL Em "RPC prog. not avail" .
-The requested program is not registered on the remote host.
-.It Er 75 EPROGMISMATCH Em "Program version wrong" .
-The requested version of the program is not available
-on the remote host
-.Pq Tn RPC .
-.It Er 76 EPROCUNAVAIL Em "Bad procedure for program" .
-An
-.Tn RPC
-call was attempted for a procedure which does not exist
-in the remote program.
-.It Er 77 ENOLCK Em "No locks available" .
-A system-imposed limit on the number of simultaneous file
-locks was reached.
-.It Er 78 ENOSYS Em "Function not implemented" .
-Attempted a system call that is not available on this
-system.
-.It Er 79 EFTYPE Em "Inappropriate file type or format" .
-The file was the wrong type for the operation, or a data file had
-the wrong format.
-.It Er 80 EAUTH Em "Authentication error" .
-Attempted to use an invalid authentication ticket to mount a
-.Tn NFS
-file system.
-.It Er 81 ENEEDAUTH Em "Need authenticator" .
-An authentication ticket must be obtained before the given
-.Tn NFS
-file system may be mounted.
-.It Er 82 EIDRM Em "Identifier removed" .
-An IPC identifier was removed while the current process was waiting on it.
-.It Er 83 ENOMSG Em "No message of desired type" .
-An IPC message queue does not contain a message of the desired type, or a
-message catalog does not contain the requested message.
-.It Er 84 EOVERFLOW Em "Value too large to be stored in data type" .
-A numerical result of the function was too large to be stored in the caller
-provided space.
-.It Er 85 ECANCELED Em "Operation canceled" .
-The scheduled operation was canceled.
-.It Er 86 EILSEQ Em "Illegal byte sequence" .
-While decoding a multibyte character the function came along an
-invalid or an incomplete sequence of bytes or the given wide
-character is invalid.
-.It Er 87 ENOATTR Em "Attribute not found" .
-The specified extended attribute does not exist.
-.It Er 88 EDOOFUS Em "Programming error" .
-A function or API is being abused in a way which could only be detected
-at run-time.
-.It Er 89 EBADMSG Em "Bad message" .
-A corrupted message was detected.
-.It Er 90 EMULTIHOP Em "Multihop attempted" .
-This error code is unused, but present for compatibility with other systems.
-.It Er 91 ENOLINK Em "Link has been severed" .
-This error code is unused, but present for compatibility with other systems.
-.It Er 92 EPROTO Em "Protocol error" .
-A device or socket encountered an unrecoverable protocol error.
-.It Er 93 ENOTCAPABLE Em "Capabilities insufficient" .
-An operation on a capability file descriptor requires greater privilege than
-the capability allows.
-.It Er 94 ECAPMODE Em "Not permitted in capability mode" .
-The system call or operation is not permitted for capability mode processes.
-.It Er 95 ENOTRECOVERABLE Em "State not recoverable" .
-The state protected by a robust mutex is not recoverable.
-.It Er 96 EOWNERDEAD Em "Previous owner died" .
-The owner of a robust mutex terminated while holding the mutex lock.
-.It Er 97 EINTEGRITY Em "Integrity check failed" .
-An integrity check such as a check-hash or a cross-correlation failed.
-The integrity error falls in the kernel I/O stack between
-.Er EINVAL
-that identifies errors in parameters to a system call and
-.Er EIO
-that identifies errors with the underlying storage media.
-It is typically raised by intermediate kernel layers such as a
-filesystem or an in-kernel GEOM subsystem when they detect inconsistencies.
-Uses include allowing the
-.Xr mount 8
-command to return a different exit value to automate the running of
-.Xr fsck 8
-during a system boot.
-.El
-.Sh DEFINITIONS
-.Bl -tag -width Ds
-.It Process ID .
-Each active process in the system is uniquely identified by a non-negative
-integer called a process ID.
-The range of this ID is from 0 to 99999.
-.It Parent process ID
-A new process is created by a currently active process (see
-.Xr fork 2 ) .
-The parent process ID of a process is initially the process ID of its creator.
-If the creating process exits,
-the parent process ID of each child is set to the ID of the calling process's
-reaper (see
-.Xr procctl 2 ) ,
-normally
-.Xr init 8 .
-.It Process Group
-Each active process is a member of a process group that is identified by
-a non-negative integer called the process group ID.
-This is the process
-ID of the group leader.
-This grouping permits the signaling of related
-processes (see
-.Xr termios 4 )
-and the job control mechanisms of
-.Xr csh 1 .
-.It Session
-A session is a set of one or more process groups.
-A session is created by a successful call to
-.Xr setsid 2 ,
-which causes the caller to become the only member of the only process
-group in the new session.
-.It Session leader
-A process that has created a new session by a successful call to
-.Xr setsid 2 ,
-is known as a session leader.
-Only a session leader may acquire a terminal as its controlling terminal (see
-.Xr termios 4 ) .
-.It Controlling process
-A session leader with a controlling terminal is a controlling process.
-.It Controlling terminal
-A terminal that is associated with a session is known as the controlling
-terminal for that session and its members.
-.It "Terminal Process Group ID"
-A terminal may be acquired by a session leader as its controlling terminal.
-Once a terminal is associated with a session, any of the process groups
-within the session may be placed into the foreground by setting
-the terminal process group ID to the ID of the process group.
-This facility is used
-to arbitrate between multiple jobs contending for the same terminal;
-(see
-.Xr csh 1
-and
-.Xr tty 4 ) .
-.It "Orphaned Process Group"
-A process group is considered to be
-.Em orphaned
-if it is not under the control of a job control shell.
-More precisely, a process group is orphaned
-when none of its members has a parent process that is in the same session
-as the group,
-but is in a different process group.
-Note that when a process exits, the parent process for its children
-is normally changed to be
-.Xr init 8 ,
-which is in a separate session.
-Not all members of an orphaned process group are necessarily orphaned
-processes (those whose creating process has exited).
-The process group of a session leader is orphaned by definition.
-.It "Real User ID and Real Group ID"
-Each user on the system is identified by a positive integer
-termed the real user ID.
-.Pp
-Each user is also a member of one or more groups.
-One of these groups is distinguished from others and
-used in implementing accounting facilities.
-The positive
-integer corresponding to this distinguished group is termed
-the real group ID.
-.Pp
-All processes have a real user ID and real group ID.
-These are initialized from the equivalent attributes
-of the process that created it.
-.It "Effective User Id, Effective Group Id, and Group Access List"
-Access to system resources is governed by two values:
-the effective user ID, and the group access list.
-The first member of the group access list is also known as the
-effective group ID.
-(In POSIX.1, the group access list is known as the set of supplementary
-group IDs, and it is unspecified whether the effective group ID is
-a member of the list.)
-.Pp
-The effective user ID and effective group ID are initially the
-process's real user ID and real group ID respectively.
-Either
-may be modified through execution of a set-user-ID or set-group-ID
-file (possibly by one its ancestors) (see
-.Xr execve 2 ) .
-By convention, the effective group ID (the first member of the group access
-list) is duplicated, so that the execution of a set-group-ID program
-does not result in the loss of the original (real) group ID.
-.Pp
-The group access list is a set of group IDs
-used only in determining resource accessibility.
-Access checks
-are performed as described below in ``File Access Permissions''.
-.It "Saved Set User ID and Saved Set Group ID"
-When a process executes a new file, the effective user ID is set
-to the owner of the file if the file is set-user-ID, and the effective
-group ID (first element of the group access list) is set to the group
-of the file if the file is set-group-ID.
-The effective user ID of the process is then recorded as the saved set-user-ID,
-and the effective group ID of the process is recorded as the saved set-group-ID.
-These values may be used to regain those values as the effective user
-or group ID after reverting to the real ID (see
-.Xr setuid 2 ) .
-(In POSIX.1, the saved set-user-ID and saved set-group-ID are optional,
-and are used in setuid and setgid, but this does not work as desired
-for the super-user.)
-.It Super-user
-A process is recognized as a
-.Em super-user
-process and is granted special privileges if its effective user ID is 0.
-.It Descriptor
-An integer assigned by the system when a file is referenced
-by
-.Xr open 2
-or
-.Xr dup 2 ,
-or when a socket is created by
-.Xr pipe 2 ,
-.Xr socket 2
-or
-.Xr socketpair 2 ,
-which uniquely identifies an access path to that file or socket from
-a given process or any of its children.
-.It File Name
-Names consisting of up to
-.Brq Dv NAME_MAX
-characters may be used to name
-an ordinary file, special file, or directory.
-.Pp
-These characters may be arbitrary eight-bit values,
-excluding
-.Dv NUL
-.Tn ( ASCII
-0) and the
-.Ql \&/
-character (slash,
-.Tn ASCII
-47).
-.Pp
-Note that it is generally unwise to use
-.Ql \&* ,
-.Ql \&? ,
-.Ql \&[
-or
-.Ql \&]
-as part of
-file names because of the special meaning attached to these characters
-by the shell.
-.It Path Name
-A path name is a
-.Dv NUL Ns -terminated
-character string starting with an
-optional slash
-.Ql \&/ ,
-followed by zero or more directory names separated
-by slashes, optionally followed by a file name.
-The total length of a path name must be less than
-.Brq Dv PATH_MAX
-characters.
-(On some systems, this limit may be infinite.)
-.Pp
-If a path name begins with a slash, the path search begins at the
-.Em root
-directory.
-Otherwise, the search begins from the current working directory.
-A slash by itself names the root directory.
-An empty
-pathname refers to the current directory.
-.It Directory
-A directory is a special type of file that contains entries
-that are references to other files.
-Directory entries are called links.
-By convention, a directory
-contains at least two links,
-.Ql .\&
-and
-.Ql \&.. ,
-referred to as
-.Em dot
-and
-.Em dot-dot
-respectively.
-Dot refers to the directory itself and
-dot-dot refers to its parent directory.
-.It "Root Directory and Current Working Directory"
-Each process has associated with it a concept of a root directory
-and a current working directory for the purpose of resolving path
-name searches.
-A process's root directory need not be the root
-directory of the root file system.
-.It File Access Permissions
-Every file in the file system has a set of access permissions.
-These permissions are used in determining whether a process
-may perform a requested operation on the file (such as opening
-a file for writing).
-Access permissions are established at the
-time a file is created.
-They may be changed at some later time
-through the
-.Xr chmod 2
-call.
-.Pp
-File access is broken down according to whether a file may be: read,
-written, or executed.
-Directory files use the execute
-permission to control if the directory may be searched.
-.Pp
-File access permissions are interpreted by the system as
-they apply to three different classes of users: the owner
-of the file, those users in the file's group, anyone else.
-Every file has an independent set of access permissions for
-each of these classes.
-When an access check is made, the system
-decides if permission should be granted by checking the access
-information applicable to the caller.
-.Pp
-Read, write, and execute/search permissions on
-a file are granted to a process if:
-.Pp
-The process's effective user ID is that of the super-user.
-(Note:
-even the super-user cannot execute a non-executable file.)
-.Pp
-The process's effective user ID matches the user ID of the owner
-of the file and the owner permissions allow the access.
-.Pp
-The process's effective user ID does not match the user ID of the
-owner of the file, and either the process's effective
-group ID matches the group ID
-of the file, or the group ID of the file is in
-the process's group access list,
-and the group permissions allow the access.
-.Pp
-Neither the effective user ID nor effective group ID
-and group access list of the process
-match the corresponding user ID and group ID of the file,
-but the permissions for ``other users'' allow access.
-.Pp
-Otherwise, permission is denied.
-.It Sockets and Address Families
-A socket is an endpoint for communication between processes.
-Each socket has queues for sending and receiving data.
-.Pp
-Sockets are typed according to their communications properties.
-These properties include whether messages sent and received
-at a socket require the name of the partner, whether communication
-is reliable, the format used in naming message recipients, etc.
-.Pp
-Each instance of the system supports some
-collection of socket types; consult
-.Xr socket 2
-for more information about the types available and
-their properties.
-.Pp
-Each instance of the system supports some number of sets of
-communications protocols.
-Each protocol set supports addresses
-of a certain format.
-An Address Family is the set of addresses
-for a specific group of protocols.
-Each socket has an address
-chosen from the address family in which the socket was created.
-.El
-.Sh SEE ALSO
-.Xr intro 3 ,
-.Xr perror 3
diff --git a/lib/libc/sys/ioctl.2 b/lib/libc/sys/ioctl.2
deleted file mode 100644
index e0c34bd9318b..000000000000
--- a/lib/libc/sys/ioctl.2
+++ /dev/null
@@ -1,155 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)ioctl.2 8.2 (Berkeley) 12/11/93
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 11, 2013
-.Dt IOCTL 2
-.Os
-.Sh NAME
-.Nm ioctl
-.Nd control device
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/ioctl.h
-.Ft int
-.Fn ioctl "int fd" "unsigned long request" ...
-.Sh DESCRIPTION
-The
-.Fn ioctl
-system call manipulates the underlying device parameters of special files.
-In particular, many operating
-characteristics of character special files (e.g.\& terminals)
-may be controlled with
-.Fn ioctl
-requests.
-The argument
-.Fa fd
-must be an open file descriptor.
-.Pp
-The third argument to
-.Fn ioctl
-is traditionally named
-.Va "char *argp" .
-Most uses of
-.Fn ioctl ,
-however, require the third argument to be a
-.Vt caddr_t
-or an
-.Vt int .
-.Pp
-An
-.Fn ioctl
-.Fa request
-has encoded in it whether the argument is an
-.Dq in
-argument
-or
-.Dq out
-argument, and the size of the argument
-.Fa argp
-in bytes.
-Macros and defines used in specifying an ioctl
-.Fa request
-are located in the file
-.In sys/ioctl.h .
-.Sh GENERIC IOCTLS
-Some generic ioctls are not implemented for all types of file
-descriptors.
-These include:
-.Bl -tag -width "xxxxxx"
-.It Dv FIONREAD int
-Get the number of bytes that are immediately available for reading.
-.It Dv FIONWRITE int
-Get the number of bytes in the descriptor's send queue.
-These bytes are data which has been written to the descriptor but
-which are being held by the kernel for further processing.
-The nature of the required processing depends on the underlying device.
-For TCP sockets, these bytes have not yet been acknowledged by the
-other side of the connection.
-.It Dv FIONSPACE int
-Get the free space in the descriptor's send queue.
-This value is the size of the send queue minus the number of bytes
-being held in the queue.
-Note: while this value represents the number of bytes that may be
-added to the queue, other resource limitations may cause a write
-not larger than the send queue's space to be blocked.
-One such limitation would be a lack of network buffers for a write
-to a network connection.
-.El
-.Sh RETURN VALUES
-If an error has occurred, a value of -1 is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn ioctl
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid descriptor.
-.It Bq Er ENOTTY
-The
-.Fa fd
-argument
-is not associated with a character
-special device.
-.It Bq Er ENOTTY
-The specified request does not apply to the kind
-of object that the descriptor
-.Fa fd
-references.
-.It Bq Er EINVAL
-The
-.Fa request
-or
-.Fa argp
-argument
-is not valid.
-.It Bq Er EFAULT
-The
-.Fa argp
-argument
-points outside the process's allocated address space.
-.El
-.Sh SEE ALSO
-.Xr execve 2 ,
-.Xr fcntl 2 ,
-.Xr intro 4 ,
-.Xr tty 4
-.Sh HISTORY
-The
-.Fn ioctl
-function appeared in
-.At v7 .
diff --git a/lib/libc/sys/issetugid.2 b/lib/libc/sys/issetugid.2
deleted file mode 100644
index 48f6a4b19d49..000000000000
--- a/lib/libc/sys/issetugid.2
+++ /dev/null
@@ -1,98 +0,0 @@
-.\" $OpenBSD: issetugid.2,v 1.7 1997/02/18 00:16:09 deraadt Exp $
-.\"
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 25, 1996
-.Dt ISSETUGID 2
-.Os
-.Sh NAME
-.Nm issetugid
-.Nd is current process tainted by uid or gid changes
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn issetugid void
-.Sh DESCRIPTION
-The
-.Fn issetugid
-system call returns 1 if the process environment or memory address space
-is considered
-.Dq tainted ,
-and returns 0 otherwise.
-.Pp
-A process is tainted if it was created as a result of an
-.Xr execve 2
-system call which had either of the setuid or setgid bits set (and extra
-privileges were given as a result) or if it has changed any of its real,
-effective or saved user or group ID's since it began execution.
-.Pp
-This system call exists so that library routines (eg: libc, libtermcap)
-can reliably determine if it is safe to use information
-that was obtained from the user, in particular the results from
-.Xr getenv 3
-should be viewed with suspicion if it is used to control operation.
-.Pp
-A
-.Dq tainted
-status is inherited by child processes as a result of the
-.Xr fork 2
-system call (or other library code that calls fork, such as
-.Xr popen 3 ) .
-.Pp
-It is assumed that a program that clears all privileges as it prepares
-to execute another will also reset the environment, hence the
-.Dq tainted
-status will not be passed on.
-This is important for programs such as
-.Xr su 1
-which begin setuid but need to be able to create an untainted process.
-.Sh ERRORS
-The
-.Fn issetugid
-system call is always successful, and no return value is reserved to
-indicate an error.
-.Sh SEE ALSO
-.Xr execve 2 ,
-.Xr fork 2 ,
-.Xr setegid 2 ,
-.Xr seteuid 2 ,
-.Xr setgid 2 ,
-.Xr setregid 2 ,
-.Xr setreuid 2 ,
-.Xr setuid 2
-.Sh HISTORY
-The
-.Fn issetugid
-system call first appeared in
-.Ox 2.0
-and was also implemented in
-.Fx 3.0 .
diff --git a/lib/libc/sys/jail.2 b/lib/libc/sys/jail.2
deleted file mode 100644
index 82c2e97d4a7b..000000000000
--- a/lib/libc/sys/jail.2
+++ /dev/null
@@ -1,414 +0,0 @@
-.\" Copyright (c) 1999 Poul-Henning Kamp.
-.\" Copyright (c) 2009 James Gritton.
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 19, 2021
-.Dt JAIL 2
-.Os
-.Sh NAME
-.Nm jail ,
-.Nm jail_get ,
-.Nm jail_set ,
-.Nm jail_remove ,
-.Nm jail_attach
-.Nd create and manage system jails
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/jail.h
-.Ft int
-.Fn jail "struct jail *jail"
-.Ft int
-.Fn jail_attach "int jid"
-.Ft int
-.Fn jail_remove "int jid"
-.In sys/uio.h
-.Ft int
-.Fn jail_get "struct iovec *iov" "u_int niov" "int flags"
-.Ft int
-.Fn jail_set "struct iovec *iov" "u_int niov" "int flags"
-.Sh DESCRIPTION
-The
-.Fn jail
-system call sets up a jail and locks the current process in it.
-.Pp
-The argument is a pointer to a structure describing the prison:
-.Bd -literal -offset indent
-struct jail {
- uint32_t version;
- char *path;
- char *hostname;
- char *jailname;
- unsigned int ip4s;
- unsigned int ip6s;
- struct in_addr *ip4;
- struct in6_addr *ip6;
-};
-.Ed
-.Pp
-.Dq Li version
-defines the version of the API in use.
-.Dv JAIL_API_VERSION
-is defined for the current version.
-.Pp
-The
-.Dq Li path
-pointer should be set to the directory which is to be the root of the
-prison.
-.Pp
-The
-.Dq Li hostname
-pointer can be set to the hostname of the prison.
-This can be changed
-from the inside of the prison.
-.Pp
-The
-.Dq Li jailname
-pointer is an optional name that can be assigned to the jail
-for example for management purposes.
-.Pp
-The
-.Dq Li ip4s
-and
-.Dq Li ip6s
-give the numbers of IPv4 and IPv6 addresses that will be passed
-via their respective pointers.
-.Pp
-The
-.Dq Li ip4
-and
-.Dq Li ip6
-pointers can be set to an arrays of IPv4 and IPv6 addresses to be assigned to
-the prison, or NULL if none.
-IPv4 addresses must be in network byte order.
-.Pp
-This is equivalent to, and deprecated in favor of, the
-.Fn jail_set
-system call (see below), with the parameters
-.Va path ,
-.Va host.hostname ,
-.Va name ,
-.Va ip4.addr ,
-and
-.Va ip6.addr ,
-and with the
-.Dv JAIL_ATTACH
-flag.
-.Pp
-The
-.Fn jail_set
-system call creates a new jail, or modifies an existing one, and optionally
-locks the current process in it.
-Jail parameters are passed as an array of name-value pairs in the array
-.Fa iov ,
-containing
-.Fa niov
-elements.
-Parameter names are a null-terminated string, and values may be strings,
-integers, or other arbitrary data.
-Some parameters are boolean, and do not have a value (their length is zero)
-but are set by the name alone with or without a
-.Dq no
-prefix, e.g.
-.Va persist
-or
-.Va nopersist .
-Any parameters not set will be given default values, generally based on
-the current environment.
-.Pp
-Jails have a set of core parameters, and modules can add their own jail
-parameters.
-The current set of available parameters, and their formats, can be
-retrieved via the
-.Va security.jail.param
-sysctl MIB entry.
-Notable parameters include those mentioned in the
-.Fn jail
-description above, as well as
-.Va jid
-and
-.Va name ,
-which identify the jail being created or modified.
-See
-.Xr jail 8
-for more information on the core jail parameters.
-.Pp
-The
-.Fa flags
-arguments consists of one or more of the following flags:
-.Bl -tag -width indent
-.It Dv JAIL_CREATE
-Create a new jail.
-If a
-.Va jid
-or
-.Va name
-parameters exists, they must not refer to an existing jail.
-.It Dv JAIL_UPDATE
-Modify an existing jail.
-One of the
-.Va jid
-or
-.Va name
-parameters must exist, and must refer to an existing jail.
-If both
-.Dv JAIL_CREATE
-and
-.Dv JAIL_UPDATE
-are set, a jail will be created if it does not yet exist, and modified if it
-does exist.
-.It Dv JAIL_ATTACH
-In addition to creating or modifying the jail, attach the current process to
-it, as with the
-.Fn jail_attach
-system call.
-.It Dv JAIL_DYING
-Allow setting a jail that is in the process of being removed.
-.El
-.Pp
-The
-.Fn jail_get
-system call retrieves jail parameters, using the same name-value list as
-.Fn jail_set
-in the
-.Fa iov
-and
-.Fa niov
-arguments.
-The jail to read can be specified by either
-.Va jid
-or
-.Va name
-by including those parameters in the list.
-If they are included but are not intended to be the search key, they
-should be cleared (zero and the empty string respectively).
-.Pp
-The special parameter
-.Va lastjid
-can be used to retrieve a list of all jails.
-It will fetch the jail with the jid above and closest to the passed value.
-The first jail (usually but not always jid 1) can be found by passing a
-.Va lastjid
-of zero.
-.Pp
-The
-.Fa flags
-arguments consists of one or more following flags:
-.Bl -tag -width indent
-.It Dv JAIL_DYING
-Allow getting a jail that is in the process of being removed.
-.El
-.Pp
-The
-.Fn jail_attach
-system call attaches the current process to an existing jail,
-identified by
-.Fa jid .
-It changes the process's root and current directories to the jail's
-.Va path
-directory.
-.Pp
-The
-.Fn jail_remove
-system call removes the jail identified by
-.Fa jid .
-It will kill all processes belonging to the jail, and remove any children
-of that jail.
-.Sh RETURN VALUES
-If successful,
-.Fn jail ,
-.Fn jail_set ,
-and
-.Fn jail_get
-return a non-negative integer, termed the jail identifier (JID).
-They return \-1 on failure, and set
-.Va errno
-to indicate the error.
-.Pp
-.Rv -std jail_attach jail_remove
-.Sh ERRORS
-The
-.Fn jail
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-This process is not allowed to create a jail, either because it is not
-the super-user, or because it would exceed the jail's
-.Va children.max
-limit.
-.It Bq Er EFAULT
-.Fa jail
-points to an address outside the allocated address space of the process.
-.It Bq Er EINVAL
-The version number of the argument is not correct.
-.It Bq Er EAGAIN
-No free JID could be found.
-.El
-.Pp
-The
-.Fn jail_set
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-This process is not allowed to create a jail, either because it is not
-the super-user, or because it would exceed the jail's
-.Va children.max
-limit.
-.It Bq Er EPERM
-A jail parameter was set to a less restrictive value then the current
-environment.
-.It Bq Er EFAULT
-.Fa Iov ,
-or one of the addresses contained within it,
-points to an address outside the allocated address space of the process.
-.It Bq Er ENOENT
-The jail referred to by a
-.Va jid
-or
-.Va name
-parameter does not exist, and the
-.Dv JAIL_CREATE
-flag is not set.
-.It Bq Er ENOENT
-The jail referred to by a
-.Va jid
-is not accessible by the process, because the process is in a different
-jail.
-.It Bq Er EEXIST
-The jail referred to by a
-.Va jid
-or
-.Va name
-parameter exists, and the
-.Dv JAIL_UPDATE
-flag is not set.
-.It Bq Er EINVAL
-A supplied parameter is the wrong size.
-.It Bq Er EINVAL
-A supplied parameter is out of range.
-.It Bq Er EINVAL
-A supplied string parameter is not null-terminated.
-.It Bq Er EINVAL
-A supplied parameter name does not match any known parameters.
-.It Bq Er EINVAL
-One of the
-.Dv JAIL_CREATE
-or
-.Dv JAIL_UPDATE
-flags is not set.
-.It Bq Er ENAMETOOLONG
-A supplied string parameter is longer than allowed.
-.It Bq Er EAGAIN
-There are no jail IDs left.
-.El
-.Pp
-The
-.Fn jail_get
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-.Fa Iov ,
-or one of the addresses contained within it,
-points to an address outside the allocated address space of the process.
-.It Bq Er ENOENT
-The jail referred to by a
-.Va jid
-or
-.Va name
-parameter does not exist.
-.It Bq Er ENOENT
-The jail referred to by a
-.Va jid
-is not accessible by the process, because the process is in a different
-jail.
-.It Bq Er ENOENT
-The
-.Va lastjid
-parameter is greater than the highest current jail ID.
-.It Bq Er EINVAL
-A supplied parameter is the wrong size.
-.It Bq Er EINVAL
-A supplied parameter name does not match any known parameters.
-.El
-.Pp
-The
-.Fn jail_attach
-and
-.Fn jail_remove
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-A user other than the super-user attempted to attach to or remove a jail.
-.It Bq Er EINVAL
-The jail specified by
-.Fa jid
-does not exist.
-.El
-.Pp
-Further
-.Fn jail ,
-.Fn jail_set ,
-and
-.Fn jail_attach
-call
-.Xr chroot 2
-internally, so they can fail for all the same reasons.
-Please consult the
-.Xr chroot 2
-manual page for details.
-.Sh SEE ALSO
-.Xr chdir 2 ,
-.Xr chroot 2 ,
-.Xr jail 8
-.Sh HISTORY
-The
-.Fn jail
-system call appeared in
-.Fx 4.0 .
-The
-.Fn jail_attach
-system call appeared in
-.Fx 5.1 .
-The
-.Fn jail_set ,
-.Fn jail_get ,
-and
-.Fn jail_remove
-system calls appeared in
-.Fx 8.0 .
-.Sh AUTHORS
-The jail feature was written by
-.An Poul-Henning Kamp
-for R&D Associates
-who contributed it to
-.Fx .
-.An James Gritton
-added the extensible jail parameters and hierarchical jails.
diff --git a/lib/libc/sys/kenv.2 b/lib/libc/sys/kenv.2
deleted file mode 100644
index a1f994569111..000000000000
--- a/lib/libc/sys/kenv.2
+++ /dev/null
@@ -1,193 +0,0 @@
-.\"
-.\" Copyright (C) 2002 Chad David <davidc@FreeBSD.org>. 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(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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd June 20, 2021
-.Dt KENV 2
-.Os
-.Sh NAME
-.Nm kenv
-.Nd kernel environment
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In kenv.h
-.Ft int
-.Fn kenv "int action" "const char *name" "char *value" "int len"
-.Sh DESCRIPTION
-The
-.Fn kenv
-system call manipulates kernel environment variables.
-It supports the well known userland actions of getting, setting and unsetting
-environment variables, as well as the ability to dump all of the entries in
-the kernel environment.
-.Pp
-The
-.Fa action
-argument can be one of the following:
-.Bl -tag -width ".Dv KENV_DUMP_LOADER"
-.It Dv KENV_GET
-Get the
-.Fa value
-of the variable with the given
-.Fa name .
-The size of the
-.Fa value
-buffer is given by
-.Fa len ,
-which should be at least
-.Dv KENV_MVALLEN
-+ 1 bytes to avoid truncation and to ensure NUL termination.
-.It Dv KENV_SET
-Set or add a variable.
-The
-.Fa name
-and
-.Fa value
-are limited to
-.Dv KENV_MNAMELEN
-and
-.Dv KENV_MVALLEN
-characters, respectively
-.Pq not including the NUL terminator.
-The
-.Fa len
-argument indicates the length of the
-.Fa value
-and must include the NUL terminator.
-This option is only available to the superuser.
-.It Dv KENV_UNSET
-Unset the variable with the given
-.Fa name .
-The
-.Fa value
-and
-.Fa len
-arguments are ignored.
-This option is only available to the superuser.
-.It Dv KENV_DUMP
-Dump as much of the dynamic kernel environment as will fit in
-.Fa value ,
-whose size is given in
-.Fa len .
-If
-.Fa value
-is
-.Dv NULL ,
-.Fn kenv
-will return the number of bytes required to copy out the entire environment.
-The
-.Fa name
-is ignored.
-.It Dv KENV_DUMP_LOADER
-Dump the static environment provided by
-.Xr loader 8 ,
-with semantics identical to
-.Dv KENV_DUMP .
-Duplicate and malformed variables originally present in this environment are
-discarded by the kernel and will not appear in the output.
-.It Dv KENV_DUMP_STATIC
-Dump the static environment defined by the kernel
-.Xr config 5 .
-The semantics are identical to
-.Dv KENV_DUMP_LOADER .
-.El
-.Sh RETURN VALUES
-The
-.Fn kenv
-system call returns 0 if successful in the case of
-.Dv KENV_SET
-and
-.Dv KENV_UNSET ,
-and the number of bytes copied into
-.Fa value
-in the case of
-.Dv KENV_DUMP
-and
-.Dv KENV_GET .
-If an error occurs, a value of \-1 is returned and
-the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn kenv
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa action
-argument
-is not a valid option, or the length of the
-.Fa value
-is less than 1 for a
-.Dv KENV_SET .
-.It Bq Er ENOENT
-No value could be found for
-.Fa name
-for a
-.Dv KENV_GET
-or
-.Dv KENV_UNSET .
-.It Bq Er ENOENT
-The requested environment is not available for a
-.Dv KENV_DUMP_LOADER
-or
-.Dv KENV_DUMP_STATIC .
-The kernel is configured to destroy these environments by default.
-.It Bq Er EPERM
-A user other than the superuser attempted to set or unset a kernel
-environment variable.
-.It Bq Er EFAULT
-A bad address was encountered while attempting to copy in user arguments
-or copy out value(s).
-.It Bq Er ENAMETOOLONG
-The
-.Fa name
-or the
-.Fa value
-is longer than
-.Dv KENV_MNAMELEN
-or
-.Dv KENV_MVALLEN
-characters, respectively, or
-.Fa len
-did not include the NUL terminator for a
-.Dv KENV_SET .
-.El
-.Sh SEE ALSO
-.Xr kenv 1
-.Sh AUTHORS
-.An -nosplit
-This manual page was written by
-.An Chad David Aq Mt davidc@FreeBSD.org .
-.Pp
-The
-.Fn kenv
-system call was written by
-.An Maxime Henrion Aq Mt mux@FreeBSD.org .
diff --git a/lib/libc/sys/kevent.c b/lib/libc/sys/kevent.c
index 5f84ef8b10a6..f16ac89a36c6 100644
--- a/lib/libc/sys/kevent.c
+++ b/lib/libc/sys/kevent.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -45,9 +41,6 @@ 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));
+ return (INTERPOS_SYS(kevent, kq, changelist, nchanges, eventlist,
+ nevents, timeout));
}
diff --git a/lib/libc/sys/kill.2 b/lib/libc/sys/kill.2
deleted file mode 100644
index 2a2b548ef476..000000000000
--- a/lib/libc/sys/kill.2
+++ /dev/null
@@ -1,159 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)kill.2 8.3 (Berkeley) 4/19/94
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2019
-.Dt KILL 2
-.Os
-.Sh NAME
-.Nm kill
-.Nd send signal to a process
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In signal.h
-.Ft int
-.Fn kill "pid_t pid" "int sig"
-.Sh DESCRIPTION
-The
-.Fn kill
-system call sends the signal given by
-.Fa sig
-to
-.Fa pid ,
-a
-process or a group of processes.
-The
-.Fa sig
-argument
-may be one of the signals specified in
-.Xr sigaction 2
-or it may be 0, in which case
-error checking is performed but no
-signal is actually sent.
-This can be used to check the validity of
-.Fa pid .
-.Pp
-For a process to have permission to send a signal to a process designated
-by
-.Fa pid ,
-the user must be the super-user, or
-the real or saved user ID of the receiving process must match
-the real or effective user ID of the sending process.
-A single exception is the signal SIGCONT, which may always be sent
-to any process with the same session ID as the sender.
-In addition, if the
-.Va security.bsd.conservative_signals
-.Xr sysctl 9
-is set to 1, the user is not a super-user, and
-the receiver is set-uid, then
-only job control and terminal control signals may
-be sent (in particular, only SIGKILL, SIGINT, SIGTERM, SIGALRM,
-SIGSTOP, SIGTTIN, SIGTTOU, SIGTSTP, SIGHUP, SIGUSR1, SIGUSR2).
-.Bl -tag -width Ds
-.It \&If Fa pid No \&is greater than zero :
-The
-.Fa sig
-signal
-is sent to the process whose ID is equal to
-.Fa pid .
-.It \&If Fa pid No \&is zero :
-The
-.Fa sig
-signal
-is sent to all processes whose group ID is equal
-to the process group ID of the sender, and for which the
-process has permission;
-this is a variant of
-.Xr killpg 2 .
-.It \&If Fa pid No \&is -1 :
-If the user has super-user privileges,
-the signal is sent to all processes excluding
-system processes
-(with
-.Dv P_SYSTEM
-flag set),
-process with ID 1
-(usually
-.Xr init 8 ) ,
-and the process sending the signal.
-If the user is not the super user, the signal is sent to all processes
-which the caller has permissions to, excluding the process sending the signal.
-No error is returned if any process could be signaled.
-.El
-.Pp
-If the process number is negative but not -1,
-the signal is sent to all processes whose process group ID
-is equal to the absolute value of the process number.
-This is a variant of
-.Xr killpg 2 .
-.Sh RETURN VALUES
-.Rv -std kill
-.Sh ERRORS
-The
-.Fn kill
-system call
-will fail and no signal will be sent if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa sig
-argument
-is not a valid signal number.
-.It Bq Er ESRCH
-No process or process group can be found corresponding to that specified by
-.Fa pid .
-.It Bq Er EPERM
-The sending process does not have permission to send
-.Va sig
-to any receiving process.
-.El
-.Sh SEE ALSO
-.Xr getpgrp 2 ,
-.Xr getpid 2 ,
-.Xr killpg 2 ,
-.Xr sigaction 2 ,
-.Xr sigqueue 2 ,
-.Xr raise 3 ,
-.Xr init 8
-.Sh STANDARDS
-The
-.Fn kill
-system call is expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-A version of the
-.Fn kill
-function appeared in
-.At v3 .
-The signal number was added to the
-.Fn kill
-function in
-.At v4 .
diff --git a/lib/libc/sys/kldfind.2 b/lib/libc/sys/kldfind.2
deleted file mode 100644
index a8892ed00650..000000000000
--- a/lib/libc/sys/kldfind.2
+++ /dev/null
@@ -1,86 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 3, 1999
-.Dt KLDFIND 2
-.Os
-.Sh NAME
-.Nm kldfind
-.Nd returns the fileid of a kld file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/linker.h
-.Ft int
-.Fn kldfind "const char *file"
-.Sh DESCRIPTION
-The
-.Fn kldfind
-system call
-returns the fileid of the kld file referenced by
-.Fa file .
-.Sh RETURN VALUES
-The
-.Fn kldfind
-system call
-returns the fileid of the kld file referenced by
-.Fa file .
-Upon error,
-.Fn kldfind
-returns -1 and sets
-.Va errno
-to indicate the error.
-.Sh ERRORS
-.Va errno
-is set to the following if
-.Fn kldfind
-fails:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The data required for this operation could not be read from the kernel space.
-.It Bq Er ENOENT
-The file specified is not loaded in the kernel.
-.El
-.Sh SEE ALSO
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldstat 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/kldfirstmod.2 b/lib/libc/sys/kldfirstmod.2
deleted file mode 100644
index d9967ccd779c..000000000000
--- a/lib/libc/sys/kldfirstmod.2
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 3, 1999
-.Dt KLDFIRSTMOD 2
-.Os
-.Sh NAME
-.Nm kldfirstmod
-.Nd "return first module id from the kld file specified"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/linker.h
-.Ft int
-.Fn kldfirstmod "int fileid"
-.Sh DESCRIPTION
-The
-.Fn kldfirstmod
-system call returns the module id pertaining to the first module referenced by
-.Fa fileid .
-.Sh RETURN VALUES
-The
-.Fn kldfirstmod
-will return the id of the first module referenced by
-.Fa fileid
-or 0 if there are no references.
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er ENOENT
-The kld file referenced by
-.Fa fileid
-was not found.
-.El
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldstat 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/kldload.2 b/lib/libc/sys/kldload.2
deleted file mode 100644
index d31cc086e2f9..000000000000
--- a/lib/libc/sys/kldload.2
+++ /dev/null
@@ -1,96 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 3, 1999
-.Dt KLDLOAD 2
-.Os
-.Sh NAME
-.Nm kldload
-.Nd load KLD files into the kernel
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/linker.h
-.Ft int
-.Fn kldload "const char *file"
-.Sh DESCRIPTION
-The
-.Fn kldload
-system call
-loads a kld file into the kernel using the kernel linker.
-.Sh RETURN VALUES
-The
-.Fn kldload
-system call
-returns the fileid of the kld file which was loaded into the kernel.
-If an error occurs,
-.Fn kldload
-will return -1 and set
-.Va errno
-to indicate the error.
-.Sh ERRORS
-The named file is loaded unless:
-.Bl -tag -width Er
-.It Bq Er EPERM
-You do not have access to read the file or link it with the kernel.
-You should be the root user to be able to use the
-.Nm kld
-system calls.
-.It Bq Er EFAULT
-Bad address encountered when adding kld info into the kernel space.
-.It Bq Er ENOMEM
-There is no memory to load the file into the kernel.
-.It Bq Er ENOENT
-The file was not found.
-.It Bq Er ENOEXEC
-The file format of
-.Fa file
-was unrecognized.
-.It Bq Er EEXIST
-The supplied
-.Fa file
-has already been loaded.
-.El
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldnext 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldload 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/kldnext.2 b/lib/libc/sys/kldnext.2
deleted file mode 100644
index c856a2e671f8..000000000000
--- a/lib/libc/sys/kldnext.2
+++ /dev/null
@@ -1,89 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 22, 2006
-.Dt KLDNEXT 2
-.Os
-.Sh NAME
-.Nm kldnext
-.Nd return the fileid of the next kld file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/linker.h
-.Ft int
-.Fn kldnext "int fileid"
-.Sh DESCRIPTION
-The
-.Fn kldnext
-system call
-returns the fileid of the next kld file (that is, the one after
-.Fa fileid )
-or 0 if
-.Fa fileid
-is the last file loaded.
-To get the fileid of the first kld file, pass
-.Fa fileid
-of 0 to
-.Fn kldnext .
-.Sh RETURN VALUES
-The
-.Fn kldnext
-system call
-returns the fileid of the next kld file or 0 if successful.
-Otherwise
-.Fn kldnext
-returns the value \-1 and sets the global variable
-.Va errno
-to indicate the error.
-.Sh ERRORS
-The only error set by
-.Fn kldnext
-is
-.Er ENOENT ,
-which is set when
-.Fa fileid
-refers to a kld file that does not exist (is not loaded).
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldstat 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/kldstat.2 b/lib/libc/sys/kldstat.2
deleted file mode 100644
index 8b4e5320dd75..000000000000
--- a/lib/libc/sys/kldstat.2
+++ /dev/null
@@ -1,133 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 28, 2012
-.Dt KLDSTAT 2
-.Os
-.Sh NAME
-.Nm kldstat
-.Nd get status of kld file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/linker.h
-.Ft int
-.Fn kldstat "int fileid" "struct kld_file_stat *stat"
-.Sh DESCRIPTION
-The
-.Fn kldstat
-system call writes the info for the file referred to by
-.Fa fileid
-into
-.Fa stat .
-.Bd -literal
-struct kld_file_stat {
- int version; /* set to sizeof(struct kld_file_stat) */
- char name[MAXPATHLEN];
- int refs;
- int id;
- caddr_t address;
- size_t size;
- char pathname[MAXPATHLEN];
-};
-.Ed
-.Bl -tag -width XXXaddress
-.It version
-This field is set to the size of the structure mentioned above by the code
-calling
-.Fn kldstat ,
-and not
-.Fn kldstat
-itself.
-.It name
-The name of the file referred to by
-.Fa fileid .
-.It refs
-The number of modules referenced by
-.Fa fileid .
-.It id
-The id of the file specified in
-.Fa fileid .
-.It address
-The load address of the kld file.
-.It size
-The amount of memory in bytes allocated by the file.
-.It pathname
-The full name of the file referred to by
-.Fa fileid ,
-including the path.
-.El
-.Sh RETURN VALUES
-.Rv -std kldstat
-.Sh ERRORS
-The information for the file referred to by
-.Fa fileid
-is filled into the structure pointed to by
-.Fa stat
-unless:
-.Bl -tag -width Er
-.It Bq Er ENOENT
-The file was not found (probably not loaded).
-.It Bq Er EINVAL
-The version specified in the
-.Fa version
-field of stat is not the proper version.
-You would need to rebuild world, the
-kernel, or your application, if this error occurs, given that you did properly
-fill in the
-.Fa version
-field.
-.It Bq Er EFAULT
-There was a problem copying one, some, or all of the fields into
-.Fa stat
-in the
-.Xr copyout 9
-function.
-.El
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldstat 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
-.Sh BUGS
-The pathname may not be accurate if the file system mounts have
-changed since the module was loaded, or if this function is called
-within a chrooted environment.
diff --git a/lib/libc/sys/kldsym.2 b/lib/libc/sys/kldsym.2
deleted file mode 100644
index 422feaa268fd..000000000000
--- a/lib/libc/sys/kldsym.2
+++ /dev/null
@@ -1,121 +0,0 @@
-.\" Copyright (c) 2001 Chris Costello <chris@FreeBSD.org>
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 17, 2016
-.Dt KLDSYM 2
-.Os
-.Sh NAME
-.Nm kldsym
-.Nd look up address by symbol name in a KLD
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/linker.h
-.Ft int
-.Fn kldsym "int fileid" "int cmd" "void *data"
-.Sh DESCRIPTION
-The
-.Fn kldsym
-system call returns the address of the symbol specified in
-.Fa data
-in the module specified by
-.Fa fileid .
-If
-.Fa fileid
-is 0, all loaded modules are searched.
-Currently, the only
-.Fa cmd
-implemented is
-.Dv KLDSYM_LOOKUP .
-.Pp
-The
-.Fa data
-argument is of the following structure:
-.Bd -literal -offset indent
-struct kld_sym_lookup {
- int version; /* sizeof(struct kld_sym_lookup) */
- char *symname; /* Symbol name we are looking up */
- u_long symvalue;
- size_t symsize;
-};
-.Ed
-.Pp
-The
-.Va version
-member is to be set
-by the code calling
-.Fn kldsym
-to
-.Fn sizeof "struct kld_sym_lookup" .
-The next two members,
-.Va version
-and
-.Va symname ,
-are specified by the user.
-The last two,
-.Va symvalue
-and
-.Va symsize ,
-are filled in by
-.Fn kldsym
-and contain the address associated with
-.Va symname
-and the size of the data it points to, respectively.
-.Sh RETURN VALUES
-.Rv -std kldsym
-.Sh ERRORS
-The
-.Fn kldsym
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-Invalid value in
-.Fa data->version
-or
-.Fa cmd .
-.It Bq Er ENOENT
-The
-.Fa fileid
-argument
-is invalid,
-or the specified symbol could not be found.
-.El
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4
-.Sh HISTORY
-The
-.Fn kldsym
-system call first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/kldunload.2 b/lib/libc/sys/kldunload.2
deleted file mode 100644
index d1c259b51461..000000000000
--- a/lib/libc/sys/kldunload.2
+++ /dev/null
@@ -1,94 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd December 25, 2008
-.Dt KLDUNLOAD 2
-.Os
-.Sh NAME
-.Nm kldunload , kldunloadf
-.Nd unload kld files
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/linker.h
-.Ft int
-.Fn kldunload "int fileid"
-.Ft int
-.Fn kldunloadf "int fileid" "int flags"
-.Sh DESCRIPTION
-The
-.Fn kldunload
-system call
-unloads a kld file from the kernel that was previously linked via
-.Xr kldload 2 .
-.Pp
-The
-.Fn kldunloadf
-system call accepts an additional flags argument, which may be one of
-.Dv LINKER_UNLOAD_NORMAL ,
-giving the same behavior as
-.Fn kldunload ,
-or
-.Dv LINKER_UNLOAD_FORCE ,
-which causes the unload to ignore a failure to quiesce the module.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The file referred to by
-.Fa fileid
-is unloaded unless:
-.Bl -tag -width Er
-.It Bq Er EPERM
-You do not have access to unlink the file from the kernel.
-.It Bq Er ENOENT
-The file was not found.
-.It Bq Er EBUSY
-You attempted to unload a file linked by the kernel.
-.It Bq Er EINVAL
-The
-.Fn kldunloadf
-system call was passed invalid flags.
-.El
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr modfind 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldunload 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/kqueue.2 b/lib/libc/sys/kqueue.2
deleted file mode 100644
index c8d39d092b4d..000000000000
--- a/lib/libc/sys/kqueue.2
+++ /dev/null
@@ -1,860 +0,0 @@
-.\" Copyright (c) 2000 Jonathan Lemon
-.\" 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 ``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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 14, 2022
-.Dt KQUEUE 2
-.Os
-.Sh NAME
-.Nm kqueue ,
-.Nm kevent
-.Nd kernel event notification mechanism
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/event.h
-.Ft int
-.Fn kqueue "void"
-.Ft int
-.Fo kevent
-.Fa "int kq"
-.Fa "const struct kevent *changelist"
-.Fa "int nchanges"
-.Fa "struct kevent *eventlist"
-.Fa "int nevents"
-.Fa "const struct timespec *timeout"
-.Fc
-.Fn EV_SET "kev" ident filter flags fflags data udata
-.Sh DESCRIPTION
-The
-.Fn kqueue
-system call
-provides a generic method of notifying the user when an event
-happens or a condition holds, based on the results of small
-pieces of kernel code termed filters.
-A kevent is identified by the (ident, filter) pair; there may only
-be one unique kevent per kqueue.
-.Pp
-The filter is executed upon the initial registration of a kevent
-in order to detect whether a preexisting condition is present, and is also
-executed whenever an event is passed to the filter for evaluation.
-If the filter determines that the condition should be reported,
-then the kevent is placed on the kqueue for the user to retrieve.
-.Pp
-The filter is also run when the user attempts to retrieve the kevent
-from the kqueue.
-If the filter indicates that the condition that triggered
-the event no longer holds, the kevent is removed from the kqueue and
-is not returned.
-.Pp
-Multiple events which trigger the filter do not result in multiple
-kevents being placed on the kqueue; instead, the filter will aggregate
-the events into a single struct kevent.
-Calling
-.Fn close
-on a file descriptor will remove any kevents that reference the descriptor.
-.Pp
-The
-.Fn kqueue
-system call
-creates a new kernel event queue and returns a descriptor.
-The queue is not inherited by a child created with
-.Xr fork 2 .
-However, if
-.Xr rfork 2
-is called without the
-.Dv RFFDG
-flag, then the descriptor table is shared,
-which will allow sharing of the kqueue between two processes.
-.Pp
-The
-.Fn kevent
-system call
-is used to register events with the queue, and return any pending
-events to the user.
-The
-.Fa changelist
-argument
-is a pointer to an array of
-.Va kevent
-structures, as defined in
-.In sys/event.h .
-All changes contained in the
-.Fa changelist
-are applied before any pending events are read from the queue.
-The
-.Fa nchanges
-argument
-gives the size of
-.Fa changelist .
-The
-.Fa eventlist
-argument
-is a pointer to an array of kevent structures.
-The
-.Fa nevents
-argument
-determines the size of
-.Fa eventlist .
-When
-.Fa nevents
-is zero,
-.Fn kevent
-will return immediately even if there is a
-.Fa timeout
-specified unlike
-.Xr select 2 .
-If
-.Fa timeout
-is a non-NULL pointer, it specifies a maximum interval to wait
-for an event, which will be interpreted as a struct timespec.
-If
-.Fa timeout
-is a NULL pointer,
-.Fn kevent
-waits indefinitely.
-To effect a poll, the
-.Fa timeout
-argument should be non-NULL, pointing to a zero-valued
-.Va timespec
-structure.
-The same array may be used for the
-.Fa changelist
-and
-.Fa eventlist .
-.Pp
-The
-.Fn EV_SET
-macro is provided for ease of initializing a
-kevent structure.
-.Pp
-The
-.Va kevent
-structure is defined as:
-.Bd -literal
-struct kevent {
- uintptr_t ident; /* identifier for this event */
- short filter; /* filter for event */
- u_short flags; /* action flags for kqueue */
- u_int fflags; /* filter flag value */
- int64_t data; /* filter data value */
- void *udata; /* opaque user data identifier */
- uint64_t ext[4]; /* extensions */
-};
-.Ed
-.Pp
-The fields of
-.Fa struct kevent
-are:
-.Bl -tag -width "Fa filter"
-.It Fa 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
-Identifies the kernel filter used to process this event.
-The pre-defined
-system filters are described below.
-.It Fa flags
-Actions to perform on the event.
-.It Fa fflags
-Filter-specific flags.
-.It Fa data
-Filter-specific data value.
-.It Fa udata
-Opaque user-defined value passed through the kernel unchanged.
-.It Fa ext
-Extended data passed to and from kernel.
-The
-.Fa ext[0]
-and
-.Fa ext[1]
-members use is defined by the filter.
-If the filter does not use them, the members are copied unchanged.
-The
-.Fa ext[2]
-and
-.Fa ext[3]
-members are always passed through the kernel as-is,
-making additional context available to application.
-.El
-.Pp
-The
-.Va flags
-field can contain the following values:
-.Bl -tag -width EV_DISPATCH
-.It Dv 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
-Permit
-.Fn kevent
-to return the event if it is triggered.
-.It Dv EV_DISABLE
-Disable the event so
-.Fn kevent
-will not return it.
-The filter itself is not disabled.
-.It Dv EV_DISPATCH
-Disable the event source immediately after delivery of an event.
-See
-.Dv EV_DISABLE
-above.
-.It Dv 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
-This flag is useful for making bulk changes to a kqueue without draining
-any pending events.
-When passed as input, it forces
-.Dv EV_ERROR
-to always be returned.
-When a filter is successfully added the
-.Va data
-field will be zero.
-Note that if this flag is encountered and there is no remaining space in
-.Fa eventlist
-to hold the
-.Dv EV_ERROR
-event, then subsequent changes will not get processed.
-.It Dv 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
-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
-Filters may set this flag to indicate filter-specific EOF condition.
-.It Dv EV_ERROR
-See
-.Sx RETURN VALUES
-below.
-.It Dv EV_KEEPUDATA
-Causes
-.Fn kevent
-to leave unchanged any
-.Fa udata
-associated with an existing event.
-This allows other aspects of the event to be modified without requiring the
-caller to know the
-.Fa udata
-value presently associated.
-This is especially useful with
-.Dv NOTE_TRIGGER
-or flags like
-.Dv EV_ENABLE .
-This flag may not be used with
-.Dv EV_ADD .
-.El
-.Pp
-The predefined system filters are listed below.
-Arguments may be passed to and from the filter via the
-.Va fflags
-and
-.Va data
-fields in the kevent structure.
-.Bl -tag -width "Dv EVFILT_PROCDESC"
-.It Dv 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
-on the descriptor type.
-.Bl -tag -width 2n
-.It Sockets
-Sockets which have previously been passed to
-.Xr listen 2
-return when there is an incoming connection pending.
-.Va data
-contains the size of the listen backlog.
-.Pp
-Other socket descriptors return when there is data to be read,
-subject to the
-.Dv SO_RCVLOWAT
-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
-flag in
-.Va fflags ,
-and specifying the new low water mark in
-.Va data .
-On return,
-.Va data
-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
-.Va flags ,
-and returns the socket error (if any) in
-.Va fflags .
-It is possible for EOF to be returned (indicating the connection is gone)
-while there is still data pending in the socket buffer.
-.It Vnodes
-Returns when the file pointer is not at the end of file.
-.Va data
-contains the offset from current position to end of file,
-and may be negative.
-.Pp
-This behavior is different from
-.Xr poll 2 ,
-where read events are triggered for regular files unconditionally.
-This event can be triggered unconditionally by setting the
-.Dv NOTE_FILE_POLL
-flag in
-.Va fflags .
-.It "Fifos, Pipes"
-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
-.Va flags .
-This will be cleared by the filter when a new writer connects,
-at which point the
-filter will resume waiting for data to become available before
-returning.
-.It "BPF devices"
-Returns when the BPF buffer is full, the BPF timeout has expired, or
-when the BPF has
-.Dq immediate mode
-enabled and there is any data to read;
-.Va data
-contains the number of bytes available.
-.It Eventfds
-Returns when the counter is greater than 0;
-.Va data
-contains the counter value, which must be cast to
-.Vt uint64_t .
-.It Kqueues
-Returns when pending events are present on the queue;
-.Va data
-contains the number of events available.
-.El
-.It Dv EVFILT_WRITE
-Takes a descriptor as the identifier, and returns whenever
-it is possible to write to the descriptor.
-For sockets, pipes
-and fifos,
-.Va data
-will contain the amount of space remaining in the write buffer.
-The filter will set
-.Dv EV_EOF
-when the reader disconnects, and for the fifo case, this will be cleared
-when a new reader connects.
-Note that this filter is not supported for vnodes.
-.Pp
-For sockets, the low water mark and socket error handling is
-identical to the
-.Dv EVFILT_READ
-case.
-.Pp
-For eventfds,
-.Va data
-will contain the maximum value that can be added to the counter
-without blocking.
-.Pp
-For BPF devices, when the descriptor is attached to an interface the filter
-always indicates that it is possible to write and
-.Va data
-will contain the MTU size of the underlying interface.
-.It Dv EVFILT_EMPTY
-Takes a descriptor as the identifier, and returns whenever
-there is no remaining data in the write buffer.
-.It Dv EVFILT_AIO
-Events for this filter are not registered with
-.Fn kevent
-directly but are registered via the
-.Va aio_sigevent
-member of an asynchronous I/O request when it is scheduled via an
-asynchronous I/O system call such as
-.Fn aio_read .
-The filter returns under the same conditions as
-.Fn aio_error .
-For more details on this filter see
-.Xr sigevent 3 and
-.Xr aio 4 .
-.It Dv 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_CLOSE_WRITE"
-.It Dv NOTE_ATTRIB
-The file referenced by the descriptor had its attributes changed.
-.It Dv NOTE_CLOSE
-A file descriptor referencing the monitored file, was closed.
-The closed file descriptor did not have write access.
-.It Dv NOTE_CLOSE_WRITE
-A file descriptor referencing the monitored file, was closed.
-The closed file descriptor had write access.
-.Pp
-This note, as well as
-.Dv NOTE_CLOSE ,
-are not activated when files are closed forcibly by
-.Xr unmount 2 or
-.Xr revoke 2 .
-Instead,
-.Dv NOTE_REVOKE
-is sent for such events.
-.It Dv NOTE_DELETE
-The
-.Fn unlink
-system call was called on the file referenced by the descriptor.
-.It Dv NOTE_EXTEND
-For regular file, the file referenced by the descriptor was extended.
-.Pp
-For directory, reports that a directory entry was added or removed,
-as the result of rename operation.
-The
-.Dv NOTE_EXTEND
-event is not reported when a name is changed inside the directory.
-.It Dv NOTE_LINK
-The link count on the file changed.
-In particular, the
-.Dv NOTE_LINK
-event is reported if a subdirectory was created or deleted inside
-the directory referenced by the descriptor.
-.It Dv NOTE_OPEN
-The file referenced by the descriptor was opened.
-.It Dv NOTE_READ
-A read occurred on the file referenced by the descriptor.
-.It Dv NOTE_RENAME
-The file referenced by the descriptor was renamed.
-.It Dv NOTE_REVOKE
-Access to the file was revoked via
-.Xr revoke 2
-or the underlying file system was unmounted.
-.It Dv NOTE_WRITE
-A write occurred on the file referenced by the descriptor.
-.El
-.Pp
-On return,
-.Va fflags
-contains the events which triggered the filter.
-.It Dv 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
-The process has exited.
-The exit status will be stored in
-.Va data
-in the same format as the status returned by
-.Xr wait 2 .
-.It Dv NOTE_FORK
-The process has called
-.Fn fork .
-.It Dv NOTE_EXEC
-The process has executed a new process via
-.Xr execve 2
-or a similar call.
-.It Dv NOTE_TRACK
-Follow a process across
-.Fn fork
-calls.
-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
-.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
-.Va fflags ,
-and the child process will not signal a
-.Dv NOTE_CHILD
-event.
-.El
-.Pp
-On return,
-.Va fflags
-contains the events which triggered the filter.
-.It Dv EVFILT_PROCDESC
-Takes the process descriptor created by
-.Xr pdfork 2
-to monitor as the identifier and the events to watch for in
-.Va fflags ,
-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
-The process has exited.
-The exit status will be stored in
-.Va data .
-.El
-.Pp
-On return,
-.Va fflags
-contains the events which triggered the filter.
-.It Dv 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
-.Fn signal
-and
-.Fn sigaction
-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
-.Dv SIGCHLD
-signal, which, if ignored, will not be recorded by the filter.
-Event notification happens after normal
-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
-Establishes an arbitrary timer identified by
-.Va ident .
-When adding a timer,
-.Va data
-specifies the moment to fire the timer (for
-.Dv NOTE_ABSTIME )
-or the timeout period.
-The timer will be periodic unless
-.Dv EV_ONESHOT
-or
-.Dv NOTE_ABSTIME
-is specified.
-On return,
-.Va data
-contains the number of times the timeout has expired since the last call to
-.Fn kevent .
-For non-monotonic timers, this filter automatically sets the
-.Dv EV_CLEAR
-flag internally.
-.Pp
-The filter accepts the following flags in the
-.Va fflags
-argument:
-.Bl -tag -width "Dv NOTE_MSECONDS"
-.It Dv NOTE_SECONDS
-.Va data
-is in seconds.
-.It Dv NOTE_MSECONDS
-.Va data
-is in milliseconds.
-.It Dv NOTE_USECONDS
-.Va data
-is in microseconds.
-.It Dv NOTE_NSECONDS
-.Va data
-is in nanoseconds.
-.It Dv NOTE_ABSTIME
-The specified expiration time is absolute.
-.El
-.Pp
-If
-.Va fflags
-is not set, the default is milliseconds.
-On return,
-.Va fflags
-contains the events which triggered the filter.
-.Pp
-Periodic timers with a specified timeout of 0 will be silently adjusted to
-timeout after 1 of the time units specified by the requested precision in
-.Va fflags .
-If an absolute time is specified that has already passed, then it is treated as
-if the current time were specified and the event will fire as soon as possible.
-.Pp
-If an existing timer is re-added, the existing timer will be
-effectively canceled (throwing away any undelivered record of previous
-timer expiration) and re-started using the new parameters contained in
-.Va data
-and
-.Va fflags .
-.Pp
-There is a system wide limit on the number of timers
-which is controlled by the
-.Va kern.kq_calloutmax
-sysctl.
-.It Dv EVFILT_USER
-Establishes a user event identified by
-.Va ident
-which is not associated with any kernel mechanism but is triggered by
-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"
-.It Dv NOTE_FFNOP
-Ignore the input
-.Va fflags .
-.It Dv NOTE_FFAND
-Bitwise AND
-.Va fflags .
-.It Dv NOTE_FFOR
-Bitwise OR
-.Va fflags .
-.It Dv NOTE_FFCOPY
-Copy
-.Va fflags .
-.It Dv NOTE_FFCTRLMASK
-Control mask for
-.Va fflags .
-.It Dv NOTE_FFLAGSMASK
-User defined flag mask for
-.Va fflags .
-.El
-.Pp
-A user event is triggered for output with the following:
-.Bl -tag -width "Dv NOTE_FFLAGSMASK"
-.It Dv NOTE_TRIGGER
-Cause the event to be triggered.
-.El
-.Pp
-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
-system call
-creates a new kernel event queue and returns a file descriptor.
-If there was an error creating the kernel event queue, a value of -1 is
-returned and errno set.
-.Pp
-The
-.Fn kevent
-system call
-returns the number of events placed in the
-.Fa eventlist ,
-up to the value given by
-.Fa nevents .
-If an error occurs while processing an element of the
-.Fa changelist
-and there is enough room in the
-.Fa eventlist ,
-then the event will be placed in the
-.Fa eventlist
-with
-.Dv EV_ERROR
-set in
-.Va flags
-and the system error in
-.Va data .
-Otherwise,
-.Dv -1
-will be returned, and
-.Dv errno
-will be set to indicate the error condition.
-If the time limit expires, then
-.Fn kevent
-returns 0.
-.Sh EXAMPLES
-.Bd -literal -compact
-#include <sys/event.h>
-#include <err.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-int
-main(int argc, char **argv)
-{
- struct kevent event; /* Event we want to monitor */
- struct kevent tevent; /* Event triggered */
- int kq, fd, ret;
-
- if (argc != 2)
- err(EXIT_FAILURE, "Usage: %s path\en", argv[0]);
- fd = open(argv[1], O_RDONLY);
- if (fd == -1)
- err(EXIT_FAILURE, "Failed to open '%s'", argv[1]);
-
- /* Create kqueue. */
- kq = kqueue();
- if (kq == -1)
- err(EXIT_FAILURE, "kqueue() failed");
-
- /* Initialize kevent structure. */
- EV_SET(&event, fd, EVFILT_VNODE, EV_ADD | EV_CLEAR, NOTE_WRITE,
- 0, NULL);
- /* Attach event to the kqueue. */
- ret = kevent(kq, &event, 1, NULL, 0, NULL);
- if (ret == -1)
- err(EXIT_FAILURE, "kevent register");
-
- for (;;) {
- /* Sleep until something happens. */
- ret = kevent(kq, NULL, 0, &tevent, 1, NULL);
- if (ret == -1) {
- err(EXIT_FAILURE, "kevent wait");
- } else if (ret > 0) {
- if (tevent.flags & EV_ERROR)
- errx(EXIT_FAILURE, "Event error: %s", strerror(event.data));
- else
- printf("Something was written in '%s'\en", argv[1]);
-}
-
- }
-}
-.Ed
-.Sh ERRORS
-The
-.Fn kqueue
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er ENOMEM
-The kernel failed to allocate enough memory for the kernel queue.
-.It Bq Er ENOMEM
-The
-.Dv RLIMIT_KQUEUES
-rlimit
-(see
-.Xr getrlimit 2 )
-for the current user would be exceeded.
-.It Bq Er EMFILE
-The per-process descriptor table is full.
-.It Bq Er ENFILE
-The system file table is full.
-.El
-.Pp
-The
-.Fn kevent
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EACCES
-The process does not have permission to register a filter.
-.It Bq Er EFAULT
-There was an error reading or writing the
-.Va kevent
-structure.
-.It Bq Er EBADF
-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 EINVAL
-The specified length of the event or change lists is negative.
-.It Bq Er ENOENT
-The event could not be found to be modified or deleted.
-.It Bq Er ENOMEM
-No memory was available to register the event
-or, in the special case of a timer, the maximum number of
-timers has been exceeded.
-This maximum is configurable via the
-.Va kern.kq_calloutmax
-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 ,
-.Xr aio_return 2 ,
-.Xr poll 2 ,
-.Xr read 2 ,
-.Xr select 2 ,
-.Xr sigaction 2 ,
-.Xr write 2 ,
-.Xr pthread_setcancelstate 3 ,
-.Xr signal 3
-.Rs
-.%A Jonathan Lemon
-.%T "Kqueue: A Generic and Scalable Event Notification Facility"
-.%I USENIX Association
-.%B Proceedings of the FREENIX Track: 2001 USENIX Annual Technical Conference
-.%D June 25-30, 2001
-.\".http://www.usenix.org/event/usenix01/freenix01/full_papers/lemon/lemon.pdf
-.Re
-.Sh HISTORY
-The
-.Fn kqueue
-and
-.Fn kevent
-system calls first appeared in
-.Fx 4.1 .
-.Sh AUTHORS
-The
-.Fn kqueue
-system and this manual page were written by
-.An Jonathan Lemon Aq Mt jlemon@FreeBSD.org .
-.Sh BUGS
-.Pp
-In versions older than
-.Fx 12.0 ,
-.In sys/event.h
-failed to parse without including
-.In sys/types.h
-manually.
diff --git a/lib/libc/sys/ktrace.2 b/lib/libc/sys/ktrace.2
deleted file mode 100644
index ffe967e35ed8..000000000000
--- a/lib/libc/sys/ktrace.2
+++ /dev/null
@@ -1,206 +0,0 @@
-.\" Copyright (c) 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)ktrace.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt KTRACE 2
-.Os
-.Sh NAME
-.Nm ktrace
-.Nd process tracing
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/time.h
-.In sys/uio.h
-.In sys/ktrace.h
-.Ft int
-.Fn ktrace "const char *tracefile" "int ops" "int trpoints" "int pid"
-.Sh DESCRIPTION
-The
-.Fn ktrace
-system call enables or disables tracing of one or more processes.
-Users may only trace their own processes.
-Only the super-user can trace setuid or setgid programs.
-.Pp
-The
-.Fa tracefile
-argument
-gives the pathname of the file to be used for tracing.
-The file must exist and be a regular file writable by the calling process.
-All trace records are always appended to the file,
-so the file must be truncated to zero length to discard
-previous trace data.
-If tracing points are being disabled (see KTROP_CLEAR below),
-.Fa tracefile
-may be NULL.
-.Pp
-The
-.Fa ops
-argument specifies the requested ktrace operation.
-The defined operations are:
-.Bl -column KTRFLAG_DESCENDXXX -offset indent
-.It KTROP_SET Ta "Enable trace points specified in"
-.Fa trpoints .
-.It KTROP_CLEAR Ta "Disable trace points specified in"
-.Fa trpoints .
-.It KTROP_CLEARFILE Ta "Stop all tracing."
-.It KTRFLAG_DESCEND Ta "The tracing change should apply to the"
-specified process and all its current children.
-.El
-.Pp
-The
-.Fa trpoints
-argument specifies the trace points of interest.
-The defined trace points are:
-.Bl -column KTRFAC_PROCCTORXXX -offset indent
-.It KTRFAC_SYSCALL Ta "Trace system calls."
-.It KTRFAC_SYSRET Ta "Trace return values from system calls."
-.It KTRFAC_NAMEI Ta "Trace name lookup operations."
-.It KTRFAC_GENIO Ta "Trace all I/O (note that this option can"
-generate much output).
-.It KTRFAC_PSIG Ta "Trace posted signals."
-.It KTRFAC_CSW Ta "Trace context switch points."
-.It KTRFAC_USER Ta "Trace application-specific events."
-.It KTRFAC_STRUCT Ta "Trace certain data structures."
-.It KTRFAC_SYSCTL Ta "Trace sysctls."
-.It KTRFAC_PROCCTOR Ta "Trace process construction."
-.It KTRFAC_PROCDTOR Ta "Trace process destruction."
-.It KTRFAC_CAPFAIL Ta "Trace capability failures."
-.It KTRFAC_FAULT Ta "Trace page faults."
-.It KTRFAC_FAULTEND Ta "Trace the end of page faults."
-.It KTRFAC_INHERIT Ta "Inherit tracing to future children."
-.El
-.Pp
-Each tracing event outputs a record composed of a generic header
-followed by a trace point specific structure.
-The generic header is:
-.Bd -literal
-struct ktr_header {
- int ktr_len; /* length of buf */
- short ktr_type; /* trace record type */
- pid_t ktr_pid; /* process id */
- char ktr_comm[MAXCOMLEN+1]; /* command name */
- struct timeval ktr_time; /* timestamp */
- intptr_t ktr_tid; /* was ktr_buffer */
-};
-.Ed
-.Pp
-The
-.Va ktr_len
-field specifies the length of the
-.Va ktr_type
-data that follows this header.
-The
-.Va ktr_pid
-and
-.Va ktr_comm
-fields specify the process and command generating the record.
-The
-.Va ktr_time
-field gives the time (with microsecond resolution)
-that the record was generated.
-The
-.Va ktr_tid
-field holds a thread id.
-.Pp
-The generic header is followed by
-.Va ktr_len
-bytes of a
-.Va ktr_type
-record.
-The type specific records are defined in the
-.In sys/ktrace.h
-include file.
-.Sh SYSCTL TUNABLES
-The following
-.Xr sysctl 8
-tunables influence the behaviour of
-.Fn ktrace :
-.Bl -tag -width indent
-.It Va kern.ktrace.geniosize
-bounds the amount of data a traced I/O request will log
-to the trace file.
-.It Va kern.ktrace.request_pool
-bounds the number of trace events being logged at a time.
-.El
-.Pp
-Sysctl tunables that control process debuggability (as determined by
-.Xr p_candebug 9 )
-also affect the operation of
-.Fn ktrace .
-.Sh RETURN VALUES
-.Rv -std ktrace
-.Sh ERRORS
-The
-.Fn ktrace
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named tracefile does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ENOSYS
-The kernel was not compiled with
-.Nm
-support.
-.El
-.Pp
-A thread may be unable to log one or more tracing events due to a
-temporary shortage of resources.
-This condition is remembered by the kernel, and the next tracing request
-that succeeds will have the flag
-.Li KTR_DROP
-set in its
-.Va ktr_type
-field.
-.Sh SEE ALSO
-.Xr kdump 1 ,
-.Xr ktrace 1 ,
-.Xr utrace 2 ,
-.Xr sysctl 8 ,
-.Xr p_candebug 9
-.Sh HISTORY
-The
-.Fn ktrace
-system call first appeared in
-.Bx 4.4 .
diff --git a/lib/libc/sys/link.2 b/lib/libc/sys/link.2
deleted file mode 100644
index ab686266cd21..000000000000
--- a/lib/libc/sys/link.2
+++ /dev/null
@@ -1,319 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)link.2 8.3 (Berkeley) 1/12/94
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2021
-.Dt LINK 2
-.Os
-.Sh NAME
-.Nm link ,
-.Nm linkat
-.Nd make a hard file link
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn link "const char *name1" "const char *name2"
-.Ft int
-.Fo linkat
-.Fa "int fd1" "const char *name1" "int fd2" "const char *name2" "int flag"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn link
-system call
-atomically creates the specified directory entry (hard link)
-.Fa name2
-with the attributes of the underlying object pointed at by
-.Fa name1 .
-If the link is successful: the link count of the underlying object
-is incremented;
-.Fa name1
-and
-.Fa name2
-share equal access and rights
-to the
-underlying object.
-.Pp
-If
-.Fa name1
-is removed, the file
-.Fa name2
-is not deleted and the link count of the
-underlying object is
-decremented.
-.Pp
-The object pointed at by the
-.Fa name1
-argument
-must exist for the hard link to
-succeed and
-both
-.Fa name1
-and
-.Fa name2
-must be in the same file system.
-The
-.Fa name1
-argument
-may not be a directory.
-.Pp
-The
-.Fn linkat
-system call is equivalent to
-.Fa link
-except in the case where either
-.Fa name1
-or
-.Fa name2
-or both are relative paths.
-In this case a relative path
-.Fa name1
-is interpreted relative to
-the directory associated with the file descriptor
-.Fa fd1
-instead of the current working directory and similarly for
-.Fa name2
-and the file descriptor
-.Fa fd2 .
-.Pp
-Values for
-.Fa flag
-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_FOLLOW
-If
-.Fa name1
-names a symbolic link, a new link for the target of the symbolic link is
-created.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd1
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.It Dv AT_EMPTY_PATH
-If the
-.Fa name1
-argument is an empty string, link the file referenced by the descriptor
-.Fa fd1 .
-The operation requires that the calling process has the
-.Dv PRIV_VFS_FHOPEN
-privilege, effectively being executed with effective user
-.Dv root .
-.El
-.Pp
-If
-.Fn linkat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd1
-or
-.Fa fd2
-parameter, the current working directory is used for the respective
-.Fa name
-argument.
-If both
-.Fa fd1
-and
-.Fa fd2
-have value
-.Dv AT_FDCWD ,
-the behavior is identical to a call to
-.Fn link .
-Unless
-.Fa flag
-contains the
-.Dv AT_SYMLINK_FOLLOW
-flag, if
-.Fa name1
-names a symbolic link, a new link is created for the symbolic link
-.Fa name1
-and not its target.
-.Sh RETURN VALUES
-.Rv -std link
-.Sh ERRORS
-The
-.Fn link
-system call
-will fail and no link will be created if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of either path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of either pathname exceeded 255 characters,
-or entire length of either path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of either path prefix does not exist.
-.It Bq Er EOPNOTSUPP
-The file system containing the file named by
-.Fa name1
-does not support links.
-.It Bq Er EMLINK
-The link count of the file named by
-.Fa name1
-would exceed 32767.
-.It Bq Er EACCES
-A component of either path prefix denies search permission.
-.It Bq Er EACCES
-The requested link requires writing in a directory with a mode
-that denies write permission.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating one of the pathnames.
-.It Bq Er ENOENT
-The file named by
-.Fa name1
-does not exist.
-.It Bq Er EEXIST
-The link named by
-.Fa name2
-does exist.
-.It Bq Er EPERM
-The file named by
-.Fa name1
-is a directory.
-.It Bq Er EPERM
-The file named by
-.Fa name1
-has its immutable or append-only flag set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EPERM
-The parent directory of the file named by
-.Fa name2
-has its immutable flag set.
-.It Bq Er EXDEV
-The link named by
-.Fa name2
-and the file named by
-.Fa name1
-are on different file systems.
-.It Bq Er ENOSPC
-The directory in which the entry for the new link is being placed
-cannot be extended because there is no space left on the file
-system containing the directory.
-.It Bq Er EDQUOT
-The directory in which the entry for the new link
-is being placed cannot be extended because the
-user's quota of disk blocks on the file system
-containing the directory has been exhausted.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to
-the file system to make the directory entry.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EROFS
-The requested link requires writing in a directory on a read-only file
-system.
-.It Bq Er EFAULT
-One of the pathnames specified
-is outside the process's allocated address space.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn link ,
-the
-.Fn linkat
-system call may fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa name1
-or
-.Fa name2
-argument does not specify an absolute path and the
-.Fa fd1
-or
-.Fa fd2
-argument, respectively, is neither
-.Dv AT_FDCWD
-nor a valid file descriptor open for searching.
-.It Bq Er EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.It Bq Er ENOTDIR
-The
-.Fa name1
-or
-.Fa name2
-argument is not an absolute path and
-.Fa fd1
-or
-.Fa fd2 ,
-respectively, is neither
-.Dv AT_FDCWD
-nor a file descriptor associated with a directory.
-.It Bq Er ENOTCAPABLE
-.Fa name1
-is not strictly relative to the starting directory.
-For example,
-.Fa name1
-is absolute or includes a ".." component that escapes
-the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode or the
-.Dv AT_RESOLVE_BENEATH
-flag was specified.
-.El
-.Sh SEE ALSO
-.Xr chflags 2 ,
-.Xr readlink 2 ,
-.Xr symlink 2 ,
-.Xr unlink 2
-.Sh STANDARDS
-The
-.Fn link
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Fn linkat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn link
-function appeared in
-.At v1 .
-The
-.Fn linkat
-system call appeared in
-.Fx 8.0 .
-.Pp
-The
-.Fn link
-system call traditionally allows the super-user to link directories which
-corrupts the file system coherency.
-This implementation no longer permits it.
diff --git a/lib/libc/sys/lio_listio.2 b/lib/libc/sys/lio_listio.2
deleted file mode 100644
index ef1b1add3376..000000000000
--- a/lib/libc/sys/lio_listio.2
+++ /dev/null
@@ -1,237 +0,0 @@
-.\" Copyright (c) 2003 Tim J. Robbins
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 22, 2021
-.Dt LIO_LISTIO 2
-.Os
-.Sh NAME
-.Nm lio_listio
-.Nd "list directed I/O (REALTIME)"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In aio.h
-.Ft int
-.Fo lio_listio
-.Fa "int mode"
-.Fa "struct aiocb * const list[]"
-.Fa "int nent"
-.Fa "struct sigevent *sig"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn lio_listio
-function initiates a list of I/O requests with a single function call.
-The
-.Fa list
-argument is an array of pointers to
-.Vt aiocb
-structures describing each operation to perform,
-with
-.Fa nent
-elements.
-.Dv NULL
-elements are ignored.
-.Pp
-The
-.Va aio_lio_opcode
-field of each
-.Vt aiocb
-specifies the operation to be performed.
-The following operations are supported:
-.Bl -tag -width ".Dv LIO_WRITE"
-.It Dv LIO_READ
-Read data as if by a call to
-.Xr aio_read 2 .
-.It Dv LIO_READV
-Read data as if by a call to
-.Xr aio_readv 2 .
-.It Dv LIO_NOP
-No operation.
-.It Dv LIO_WRITE
-Write data as if by a call to
-.Xr aio_write 2 .
-.It Dv LIO_WRITEV
-Write data as if by a call to
-.Xr aio_writev 2 .
-.El
-.Pp
-If the
-.Fa mode
-argument is
-.Dv LIO_WAIT ,
-.Fn lio_listio
-does not return until all the requested operations have been completed.
-If
-.Fa mode
-is
-.Dv LIO_NOWAIT ,
-.Fa sig
-can be used to request asynchronous notification when all operations have
-completed.
-If
-.Fa sig
-is
-.Dv NULL ,
-no notification is sent.
-.Pp
-For
-.Dv SIGEV_KEVENT
-notifications,
-the posted kevent will contain:
-.Bl -column ".Va filter"
-.It Sy Member Ta Sy Value
-.It Va ident Ta Fa list
-.It Va filter Ta Dv EVFILT_LIO
-.It Va udata Ta
-value stored in
-.Fa sig->sigev_value
-.El
-.Pp
-For
-.Dv SIGEV_SIGNO
-and
-.Dv SIGEV_THREAD_ID
-notifications,
-the information for the queued signal will include
-.Dv SI_ASYNCIO
-in the
-.Va si_code
-field and the value stored in
-.Fa sig->sigev_value
-in the
-.Va si_value
-field.
-.Pp
-For
-.Dv SIGEV_THREAD
-notifications,
-the value stored in
-.Fa sig->sigev_value
-is passed to the
-.Fa sig->sigev_notify_function
-as described in
-.Xr sigevent 3 .
-.Pp
-The order in which the requests are carried out is not specified;
-in particular, there is no guarantee that they will be executed in
-the order 0, 1, ...,
-.Fa nent Ns \-1 .
-.Sh RETURN VALUES
-If
-.Fa mode
-is
-.Dv LIO_WAIT ,
-the
-.Fn lio_listio
-function returns 0 if the operations completed successfully,
-otherwise \-1.
-.Pp
-If
-.Fa mode
-is
-.Dv LIO_NOWAIT ,
-the
-.Fn lio_listio
-function returns 0 if the operations are successfully queued,
-otherwise \-1.
-.Sh ERRORS
-The
-.Fn lio_listio
-function will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-There are not enough resources to enqueue the requests.
-.It Bq Er EAGAIN
-The request would cause the system-wide limit
-.Dv {AIO_MAX}
-to be exceeded.
-.It Bq Er EINVAL
-The
-.Fa mode
-argument is neither
-.Dv LIO_WAIT
-nor
-.Dv LIO_NOWAIT ,
-or
-.Fa nent
-is greater than
-.Dv {AIO_LISTIO_MAX} .
-.It Bq Er EINVAL
-The asynchronous notification method in
-.Fa sig->sigev_notify
-is invalid or not supported.
-.It Bq Er EINTR
-A signal interrupted the system call before it could be completed.
-.It Bq Er EIO
-One or more requests failed.
-.El
-.Pp
-In addition, the
-.Fn lio_listio
-function may fail for any of the reasons listed for
-.Xr aio_read 2
-and
-.Xr aio_write 2 .
-.Pp
-If
-.Fn lio_listio
-succeeds, or fails with an error code of
-.Er EAGAIN , EINTR ,
-or
-.Er EIO ,
-some of the requests may have been initiated.
-The caller should check the error status of each
-.Vt aiocb
-structure individually by calling
-.Xr aio_error 2 .
-.Sh SEE ALSO
-.Xr aio_error 2 ,
-.Xr aio_read 2 ,
-.Xr aio_readv 2 ,
-.Xr aio_write 2 ,
-.Xr aio_writev 2 ,
-.Xr read 2 ,
-.Xr write 2 ,
-.Xr sigevent 3 ,
-.Xr siginfo 3 ,
-.Xr aio 4
-.Sh STANDARDS
-The
-.Fn lio_listio
-function is expected to conform to
-.St -p1003.1-2001 .
-The
-.Dv LIO_READV
-and
-.Dv LIO_WRITEV
-operations are
-.Fx extensions, and should not be used in portable code.
-.Sh HISTORY
-The
-.Fn lio_listio
-system call first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/listen.2 b/lib/libc/sys/listen.2
deleted file mode 100644
index 4d0962fd412c..000000000000
--- a/lib/libc/sys/listen.2
+++ /dev/null
@@ -1,193 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" From: @(#)listen.2 8.2 (Berkeley) 12/11/93
-.\" $FreeBSD$
-.\"
-.Dd April 14, 2020
-.Dt LISTEN 2
-.Os
-.Sh NAME
-.Nm listen
-.Nd listen for connections on a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft int
-.Fn listen "int s" "int backlog"
-.Sh DESCRIPTION
-To accept connections, a socket
-is first created with
-.Xr socket 2 ,
-a willingness to accept incoming connections and
-a queue limit for incoming connections are specified with
-.Fn listen ,
-and then the connections are
-accepted with
-.Xr accept 2 .
-The
-.Fn listen
-system call applies only to sockets of type
-.Dv SOCK_STREAM
-or
-.Dv SOCK_SEQPACKET .
-.Pp
-The
-.Fa backlog
-argument defines the maximum length the queue of
-pending connections may grow to.
-The real maximum queue length will be 1.5 times more than the value
-specified in the
-.Fa backlog
-argument.
-A subsequent
-.Fn listen
-system call on the listening socket allows the caller to change the maximum
-queue length using a new
-.Fa backlog
-argument.
-If a connection
-request arrives with the queue full the client may
-receive an error with an indication of
-.Er ECONNREFUSED ,
-or, in the case of TCP, the connection will be
-silently dropped.
-.Pp
-Current queue lengths of listening sockets can be queried using
-.Xr netstat 1
-command.
-.Pp
-Note that before
-.Fx 4.5
-and the introduction of the syncache,
-the
-.Fa backlog
-argument also determined the length of the incomplete
-connection queue, which held TCP sockets in the process
-of completing TCP's 3-way handshake.
-These incomplete connections
-are now held entirely in the syncache, which is unaffected by
-queue lengths.
-Inflated
-.Fa backlog
-values to help handle denial
-of service attacks are no longer necessary.
-.Pp
-The
-.Xr sysctl 3
-MIB variable
-.Va kern.ipc.soacceptqueue
-specifies a hard limit on
-.Fa backlog ;
-if a value greater than
-.Va kern.ipc.soacceptqueue
-or less than zero is specified,
-.Fa backlog
-is silently forced to
-.Va kern.ipc.soacceptqueue .
-.Pp
-If the listen queue overflows, the kernel will emit a LOG_DEBUG syslog message.
-The
-.Xr sysctl 3
-MIB variable
-.Va kern.ipc.sooverinterval
-specifies a per-socket limit on how often the kernel will emit these messages.
-.Sh INTERACTION WITH ACCEPT FILTERS
-When accept filtering is used on a socket, a second queue will
-be used to hold sockets that have connected, but have not yet
-met their accept filtering criteria.
-Once the criteria has been
-met, these sockets will be moved over into the completed connection
-queue to be
-.Xr accept 2 Ns ed .
-If this secondary queue is full and a
-new connection comes in, the oldest socket which has not yet met
-its accept filter criteria will be terminated.
-.Pp
-This secondary queue, like the primary listen queue, is sized
-according to the
-.Fa backlog
-argument.
-.Sh RETURN VALUES
-.Rv -std listen
-.Sh ERRORS
-The
-.Fn listen
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The argument
-.Fa s
-is not a valid descriptor.
-.It Bq Er EDESTADDRREQ
-The socket is not bound to a local address, and the protocol does not
-support listening on an unbound socket.
-.It Bq Er EINVAL
-The socket is already connected, or in the process of being connected.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is not a socket.
-.It Bq Er EOPNOTSUPP
-The socket is not of a type that supports the operation
-.Fn listen .
-.El
-.Sh SEE ALSO
-.Xr netstat 1 ,
-.Xr accept 2 ,
-.Xr connect 2 ,
-.Xr socket 2 ,
-.Xr sysctl 3 ,
-.Xr sysctl 8 ,
-.Xr accept_filter 9
-.Sh HISTORY
-The
-.Fn listen
-system call appeared in
-.Bx 4.2 .
-The ability to configure the maximum
-.Fa backlog
-at run-time, and to use a negative
-.Fa backlog
-to request the maximum allowable value, was introduced in
-.Fx 2.2 .
-The
-.Va kern.ipc.somaxconn
-.Xr sysctl 3
-has been replaced with
-.Va kern.ipc.soacceptqueue
-in
-.Fx 10.0
-to prevent confusion about its actual functionality.
-The original
-.Xr sysctl 3
-.Va kern.ipc.somaxconn
-is still available but hidden from a
-.Xr sysctl 3
--a output so that existing applications and scripts continue to work.
diff --git a/lib/libc/sys/lockf.c b/lib/libc/sys/lockf.c
new file mode 100644
index 000000000000..6211275e5f16
--- /dev/null
+++ b/lib/libc/sys/lockf.c
@@ -0,0 +1,82 @@
+/* $NetBSD: lockf.c,v 1.3 2008/04/28 20:22:59 martin Exp $ */
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 1997 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Klaus Klein.
+ *
+ * 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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 "namespace.h"
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include "un-namespace.h"
+#include "libc_private.h"
+
+int
+lockf(int filedes, int function, off_t size)
+{
+ struct flock fl;
+ int cmd;
+
+ fl.l_start = 0;
+ fl.l_len = size;
+ fl.l_whence = SEEK_CUR;
+
+ switch (function) {
+ case F_ULOCK:
+ cmd = F_SETLK;
+ fl.l_type = F_UNLCK;
+ break;
+ case F_LOCK:
+ cmd = F_SETLKW;
+ fl.l_type = F_WRLCK;
+ break;
+ case F_TLOCK:
+ cmd = F_SETLK;
+ fl.l_type = F_WRLCK;
+ break;
+ case F_TEST:
+ fl.l_type = F_WRLCK;
+ if (((int (*)(int, int, ...))
+ *(__libc_interposing_slot(INTERPOS_fcntl)))
+ (filedes, F_GETLK, &fl) == -1)
+ return (-1);
+ if (fl.l_type == F_UNLCK || (fl.l_sysid == 0 &&
+ fl.l_pid == getpid()))
+ return (0);
+ errno = EAGAIN;
+ return (-1);
+ /* NOTREACHED */
+ default:
+ errno = EINVAL;
+ return (-1);
+ /* NOTREACHED */
+ }
+
+ return (INTERPOS_SYS(fcntl, filedes, cmd, (intptr_t)&fl));
+}
diff --git a/lib/libc/sys/lseek.2 b/lib/libc/sys/lseek.2
deleted file mode 100644
index 57cb11af2e79..000000000000
--- a/lib/libc/sys/lseek.2
+++ /dev/null
@@ -1,246 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)lseek.2 8.3 (Berkeley) 4/19/94
-.\" $FreeBSD$
-.\"
-.Dd July 13, 2020
-.Dt LSEEK 2
-.Os
-.Sh NAME
-.Nm lseek
-.Nd reposition read/write file offset
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft off_t
-.Fn lseek "int fildes" "off_t offset" "int whence"
-.Sh DESCRIPTION
-The
-.Fn lseek
-system call repositions the offset of the file descriptor
-.Fa fildes
-to the
-argument
-.Fa offset
-according to the directive
-.Fa whence .
-The argument
-.Fa fildes
-must be an open
-file descriptor.
-The
-.Fn lseek
-system call
-repositions the file position pointer associated with the file
-descriptor
-.Fa fildes
-as follows:
-.Bl -item -offset indent
-.It
-If
-.Fa whence
-is
-.Dv SEEK_SET ,
-the offset is set to
-.Fa offset
-bytes.
-.It
-If
-.Fa whence
-is
-.Dv SEEK_CUR ,
-the offset is set to its current location plus
-.Fa offset
-bytes.
-.It
-If
-.Fa whence
-is
-.Dv SEEK_END ,
-the offset is set to the size of the
-file plus
-.Fa offset
-bytes.
-.It
-If
-.Fa whence
-is
-.Dv SEEK_HOLE ,
-the offset is set to the start of the next hole greater than or equal
-to the supplied
-.Fa offset .
-The definition of a hole is provided below.
-.It
-If
-.Fa whence
-is
-.Dv SEEK_DATA ,
-the offset is set to the start of the next non-hole file region greater
-than or equal to the supplied
-.Fa offset .
-.El
-.Pp
-The
-.Fn lseek
-system call allows the file offset to be set beyond the end
-of the existing end-of-file of the file.
-If data is later written
-at this point, subsequent reads of the data in the gap return
-bytes of zeros (until data is actually written into the gap).
-However, the
-.Fn lseek
-system call does not, by itself, extend the size of a file.
-.Pp
-A
-.Qq hole
-is defined as a contiguous range of bytes in a file, all having the value of
-zero, but not all zeros in a file are guaranteed to be represented as holes
-returned with
-.Dv SEEK_HOLE .
-File systems are allowed to expose ranges of zeros with
-.Dv SEEK_HOLE ,
-but not required to.
-Applications can use
-.Dv SEEK_HOLE
-to optimise their behavior for ranges of zeros, but must not depend on it to
-find all such ranges in a file.
-Each file is presented as having a zero-size virtual hole at the very
-end of the file.
-The existence of a hole at the end of every data region allows for easy
-programming and also provides compatibility to the original implementation
-in Solaris.
-It also causes the current file size (i.e., end-of-file offset) to be returned
-to indicate that there are no more holes past the supplied
-.Fa offset .
-Applications should use
-.Fn fpathconf _PC_MIN_HOLE_SIZE
-or
-.Fn pathconf _PC_MIN_HOLE_SIZE
-to determine if a file system supports
-.Dv SEEK_HOLE .
-See
-.Xr pathconf 2 .
-.Pp
-For file systems that do not supply information about holes, the file will be
-represented as one entire data region.
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn lseek
-returns the resulting offset location as measured in bytes from the
-beginning of the file.
-Otherwise,
-a value of -1 is returned and
-.Va errno
-is set to indicate
-the error.
-.Sh ERRORS
-The
-.Fn lseek
-system call
-will fail and the file position pointer will remain unchanged if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fildes
-argument
-is not an open file descriptor.
-.It Bq Er EINVAL
-The
-.Fa whence
-argument
-is not a proper value
-or the resulting file offset would
-be negative for a non-character special file.
-.It Bq Er ENXIO
-For
-.Dv SEEK_DATA ,
-there are no more data regions past the supplied offset.
-Due to existence of the hole at the end of the file, for
-.Dv SEEK_HOLE
-this error is only returned when the
-.Fa offset
-already points to the end-of-file position.
-.It Bq Er EOVERFLOW
-The resulting file offset would be a value which cannot be represented
-correctly in an object of type
-.Fa off_t .
-.It Bq Er ESPIPE
-The
-.Fa fildes
-argument
-is associated with a pipe, socket, or FIFO.
-.El
-.Sh SEE ALSO
-.Xr dup 2 ,
-.Xr open 2 ,
-.Xr pathconf 2
-.Sh STANDARDS
-The
-.Fn lseek
-system call is expected to conform to
-.St -p1003.1-2008 .
-.Pp
-The
-.Dv SEEK_HOLE
-and
-.Dv SEEK_DATA
-directives, along with the
-.Er ENXIO
-error, are extensions to that specification.
-.Sh HISTORY
-The
-.Fn lseek
-function appeared in
-.At v7 .
-.Sh BUGS
-If the
-.Fn lseek
-system call is operating on a device which is incapable of seeking,
-it will request the seek operation and return successfully,
-even though no seek was performed.
-Because the
-.Ar offset
-argument will be stored unconditionally in the file descriptor of that device,
-there is no way to confirm if the seek operation succeeded or not
-(e.g. using the
-.Fn ftell
-function).
-Device types which are known to be incapable of seeking include
-tape drives.
-.Pp
-The
-.Fn lseek
-system call will not detect whether media are present in changeable
-media devices such as DVD or Blu-ray devices.
-A requested seek operation will therefore return sucessfully when no
-medium is present.
-.Pp
-This document's use of
-.Fa whence
-is incorrect English, but is maintained for historical reasons.
diff --git a/lib/libc/sys/lstat.c b/lib/libc/sys/lstat.c
index 4b7e0b1bf2b8..3a6421120434 100644
--- a/lib/libc/sys/lstat.c
+++ b/lib/libc/sys/lstat.c
@@ -24,27 +24,17 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include "namespace.h"
#include <sys/param.h>
+#include <sys/fcntl.h>
#include <sys/syscall.h>
-#include "compat-ino64.h"
+#include <sys/stat.h>
#include <unistd.h>
-
#include "libc_private.h"
int
lstat(const char *path, struct stat *sb)
{
- struct freebsd11_stat stat11;
- int rv;
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_fstatat(AT_FDCWD, path, sb, AT_SYMLINK_NOFOLLOW));
- rv = syscall(SYS_freebsd11_lstat, path, &stat11);
- if (rv == 0)
- __stat11_to_stat(&stat11, sb);
- return (rv);
+ return (__sys_fstatat(AT_FDCWD, path, sb, AT_SYMLINK_NOFOLLOW));
}
diff --git a/lib/libc/sys/madvise.2 b/lib/libc/sys/madvise.2
deleted file mode 100644
index 6d0d3d2575a6..000000000000
--- a/lib/libc/sys/madvise.2
+++ /dev/null
@@ -1,186 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)madvise.2 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd July 12, 2015
-.Dt MADVISE 2
-.Os
-.Sh NAME
-.Nm madvise , posix_madvise
-.Nd give advice about use of memory
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn madvise "void *addr" "size_t len" "int behav"
-.Ft int
-.Fn posix_madvise "void *addr" "size_t len" "int behav"
-.Sh DESCRIPTION
-The
-.Fn madvise
-system call
-allows a process that has knowledge of its memory behavior
-to describe it to the system.
-The
-.Fn posix_madvise
-interface is identical, except it returns an error number on error and does
-not modify
-.Va errno ,
-and is provided for standards conformance.
-.Pp
-The known behaviors are:
-.Bl -tag -width MADV_SEQUENTIAL
-.It Dv MADV_NORMAL
-Tells the system to revert to the default paging
-behavior.
-.It Dv MADV_RANDOM
-Is a hint that pages will be accessed randomly, and prefetching
-is likely not advantageous.
-.It Dv MADV_SEQUENTIAL
-Causes the VM system to depress the priority of
-pages immediately preceding a given page when it is faulted in.
-.It Dv MADV_WILLNEED
-Causes pages that are in a given virtual address range
-to temporarily have higher priority, and if they are in
-memory, decrease the likelihood of them being freed.
-Additionally,
-the pages that are already in memory will be immediately mapped into
-the process, thereby eliminating unnecessary overhead of going through
-the entire process of faulting the pages in.
-This WILL NOT fault
-pages in from backing store, but quickly map the pages already in memory
-into the calling process.
-.It Dv MADV_DONTNEED
-Allows the VM system to decrease the in-memory priority
-of pages in the specified address range.
-Consequently, future references to this address range are more likely
-to incur a page fault.
-.It Dv MADV_FREE
-Gives the VM system the freedom to free pages,
-and tells the system that information in the specified page range
-is no longer important.
-This is an efficient way of allowing
-.Xr malloc 3
-to free pages anywhere in the address space, while keeping the address space
-valid.
-The next time that the page is referenced, the page might be demand
-zeroed, or might contain the data that was there before the
-.Dv MADV_FREE
-call.
-References made to that address space range will not make the VM system
-page the information back in from backing store until the page is
-modified again.
-.It Dv MADV_NOSYNC
-Request that the system not flush the data associated with this map to
-physical backing store unless it needs to.
-Typically this prevents the
-file system update daemon from gratuitously writing pages dirtied
-by the VM system to physical disk.
-Note that VM/file system coherency is
-always maintained, this feature simply ensures that the mapped data is
-only flush when it needs to be, usually by the system pager.
-.Pp
-This feature is typically used when you want to use a file-backed shared
-memory area to communicate between processes (IPC) and do not particularly
-need the data being stored in that area to be physically written to disk.
-With this feature you get the equivalent performance with mmap that you
-would expect to get with SysV shared memory calls, but in a more controllable
-and less restrictive manner.
-However, note that this feature is not portable
-across UNIX platforms (though some may do the right thing by default).
-For more information see the MAP_NOSYNC section of
-.Xr mmap 2
-.It Dv MADV_AUTOSYNC
-Undoes the effects of MADV_NOSYNC for any future pages dirtied within the
-address range.
-The effect on pages already dirtied is indeterminate - they
-may or may not be reverted.
-You can guarantee reversion by using the
-.Xr msync 2
-or
-.Xr fsync 2
-system calls.
-.It Dv MADV_NOCORE
-Region is not included in a core file.
-.It Dv MADV_CORE
-Include region in a core file.
-.It Dv MADV_PROTECT
-Informs the VM system this process should not be killed when the
-swap space is exhausted.
-The process must have superuser privileges.
-This should be used judiciously in processes that must remain running
-for the system to properly function.
-.El
-.Pp
-Portable programs that call the
-.Fn posix_madvise
-interface should use the aliases
-.Dv POSIX_MADV_NORMAL , POSIX_MADV_SEQUENTIAL ,
-.Dv POSIX_MADV_RANDOM , POSIX_MADV_WILLNEED ,
-and
-.Dv POSIX_MADV_DONTNEED
-rather than the flags described above.
-.Sh RETURN VALUES
-.Rv -std madvise
-.Sh ERRORS
-The
-.Fn madvise
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa behav
-argument is not valid.
-.It Bq Er ENOMEM
-The virtual address range specified by the
-.Fa addr
-and
-.Fa len
-arguments is not valid.
-.It Bq Er EPERM
-.Dv MADV_PROTECT
-was specified and the process does not have superuser privileges.
-.El
-.Sh SEE ALSO
-.Xr mincore 2 ,
-.Xr mprotect 2 ,
-.Xr msync 2 ,
-.Xr munmap 2 ,
-.Xr posix_fadvise 2
-.Sh STANDARDS
-The
-.Fn posix_madvise
-interface conforms to
-.St -p1003.1-2001 .
-.Sh HISTORY
-The
-.Fn madvise
-system call first appeared in
-.Bx 4.4 .
diff --git a/lib/libc/sys/mincore.2 b/lib/libc/sys/mincore.2
deleted file mode 100644
index 3b248e77816b..000000000000
--- a/lib/libc/sys/mincore.2
+++ /dev/null
@@ -1,152 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mincore.2 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd August 23, 2020
-.Dt MINCORE 2
-.Os
-.Sh NAME
-.Nm mincore
-.Nd determine residency of memory pages
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn mincore "const void *addr" "size_t len" "char *vec"
-.Sh DESCRIPTION
-The
-.Fn mincore
-system call determines whether each of the pages in the region beginning at
-.Fa addr
-and continuing for
-.Fa len
-bytes is resident or mapped, depending on the value of sysctl
-.Va vm.mincore_mapped .
-.\"The beginning address,
-.\".Fa addr ,
-.\"is first rounded down to a multiple of the page size (see
-.\".Xr getpagesize 3 ) .
-.\"The end address,
-.\".Fa addr No + Fa len ,
-.\"is rounded up to a multiple of the page size.
-The status is returned in the
-.Fa vec
-array, one character per page.
-Each character is either 0 if the page is not resident, or a combination of
-the following flags (defined in
-.In sys/mman.h ) :
-.Bl -tag -width ".Dv MINCORE_REFERENCED_OTHER"
-.It Dv MINCORE_INCORE
-Page is in core (resident).
-.It Dv MINCORE_REFERENCED
-Page has been referenced by us.
-.It Dv MINCORE_MODIFIED
-Page has been modified by us.
-.It Dv MINCORE_REFERENCED_OTHER
-Page has been referenced.
-.It Dv MINCORE_MODIFIED_OTHER
-Page has been modified.
-.It Dv MINCORE_PSIND(i)
-Page is part of a large
-.Pq Dq super
-page with size given by index
-.Dv i
-in the array returned by
-.Xr getpagesizes 3 .
-.It Dv MINCORE_SUPER
-A mask of the valid
-.Dv MINCORE_PSIND()
-values.
-If any bits in this mask are set, the page is part of a large
-.Pq Dq super
-page.
-.El
-.Pp
-The information returned by
-.Fn mincore
-may be out of date by the time the system call returns.
-The only way to ensure that a page is resident is to lock it into memory
-with the
-.Xr mlock 2
-system call.
-.Pp
-If the
-.Va vm.mincore_mapped
-sysctl is set to a non-zero value (default), only the current process'
-mappings of the pages in the specified virtual address range are examined.
-This does not preclude the system from returning
-.Dv MINCORE_REFERENCED_OTHER
-and
-.Dv MINCORE_MODIFIED_OTHER
-statuses.
-Otherwise, if the sysctl value is zero, all resident pages backing the
-specified address range are examined, regardless of the mapping state.
-.Sh IMPLEMENTATION NOTES
-Prior to the introduction of
-.Dv MINCORE_PSIND()
-in
-.Fx 13.0 ,
-.Dv MINCORE_SUPER
-consisted of a single bit equal to
-.Dv MINCORE_PSIND(1) .
-In particular, applications compiled using the old value of
-.Dv MINCORE_SUPER
-will not identify large pages with size index 2 as being large pages.
-.Sh RETURN VALUES
-.Rv -std mincore
-.Sh ERRORS
-The
-.Fn mincore
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er ENOMEM
-The virtual address range specified by the
-.Fa addr
-and
-.Fa len
-arguments is not fully mapped.
-.It Bq Er EFAULT
-The
-.Fa vec
-argument points to an illegal address.
-.El
-.Sh SEE ALSO
-.Xr madvise 2 ,
-.Xr mlock 2 ,
-.Xr mprotect 2 ,
-.Xr msync 2 ,
-.Xr munmap 2 ,
-.Xr getpagesize 3 ,
-.Xr getpagesizes 3
-.Sh HISTORY
-The
-.Fn mincore
-system call first appeared in
-.Bx 4.4 .
diff --git a/lib/libc/sys/minherit.2 b/lib/libc/sys/minherit.2
deleted file mode 100644
index 8980a5149893..000000000000
--- a/lib/libc/sys/minherit.2
+++ /dev/null
@@ -1,151 +0,0 @@
-.\" $FreeBSD$
-.\"
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)minherit.2 8.1 (Berkeley) 6/9/93
-.\"
-.Dd March 15, 2017
-.Dt MINHERIT 2
-.Os
-.Sh NAME
-.Nm minherit
-.Nd control the inheritance of pages
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn minherit "void *addr" "size_t len" "int inherit"
-.Sh DESCRIPTION
-The
-.Fn minherit
-system call
-changes the specified pages to have the inheritance characteristic
-.Fa inherit .
-Not all implementations will guarantee that the inheritance characteristic
-can be set on a page basis;
-the granularity of changes may be as large as an entire region.
-.Fx
-is capable of adjusting inheritance characteristics on a page basis.
-Inheritance only effects children created by
-.Fn fork .
-It has no effect on
-.Fn exec .
-exec'd processes replace their address space entirely.
-This system call also
-has no effect on the parent's address space (other than to potentially
-share the address space with its children).
-.Pp
-Inheritance is a rather esoteric feature largely superseded by the
-.Dv MAP_SHARED
-feature of
-.Fn mmap .
-However, it is possible to use
-.Fn minherit
-to share a block of memory between parent and child that has been mapped
-.Dv MAP_PRIVATE .
-That is, modifications made by parent or child are shared but
-the original underlying file is left untouched.
-.Bl -tag -width ".Dv INHERIT_SHARE"
-.It Dv INHERIT_SHARE
-This option causes the address space in question to be shared between
-parent and child.
-It has no effect on how the original underlying backing
-store was mapped.
-.It Dv INHERIT_NONE
-This option prevents the address space in question from being inherited
-at all.
-The address space will be unmapped in the child.
-.It Dv INHERIT_COPY
-This option causes the child to inherit the address space as copy-on-write.
-This option also has an unfortunate side effect of causing the parent
-address space to become copy-on-write when the parent forks.
-If the original mapping was
-.Dv MAP_SHARED ,
-it will no longer be shared in the parent
-after the parent forks and there is no way to get the previous
-shared-backing-store mapping without unmapping and remapping the address
-space in the parent.
-.It Dv INHERIT_ZERO
-This option causes the address space in question to be mapped as new
-anonymous pages,
-which would be initialized to all zero bytes,
-in the child process.
-.El
-.Sh RETURN VALUES
-.Rv -std minherit
-.Sh ERRORS
-The
-.Fn minherit
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The virtual address range specified by the
-.Fa addr
-and
-.Fa len
-arguments is not valid.
-.It Bq Er EACCES
-The flags specified by the
-.Fa inherit
-argument were not valid for the pages specified
-by the
-.Fa addr
-and
-.Fa len
-arguments.
-.El
-.Sh SEE ALSO
-.Xr fork 2 ,
-.Xr madvise 2 ,
-.Xr mincore 2 ,
-.Xr mprotect 2 ,
-.Xr msync 2 ,
-.Xr munmap 2 ,
-.Xr rfork 2
-.Sh HISTORY
-The
-.Fn minherit
-system call first appeared in
-.Ox
-and then in
-.Fx 2.2 .
-.Pp
-The
-.Dv INHERIT_ZERO
-support first appeared in
-.Ox 5.6
-and then in
-.Fx 12.0 .
-.Sh BUGS
-Once you set inheritance to
-.Dv MAP_PRIVATE
-or
-.Dv MAP_SHARED ,
-there is no way to recover the original copy-on-write semantics
-short of unmapping and remapping the area.
diff --git a/lib/libc/sys/mkdir.2 b/lib/libc/sys/mkdir.2
deleted file mode 100644
index b926705c2f17..000000000000
--- a/lib/libc/sys/mkdir.2
+++ /dev/null
@@ -1,182 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mkdir.2 8.2 (Berkeley) 12/11/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt MKDIR 2
-.Os
-.Sh NAME
-.Nm mkdir ,
-.Nm mkdirat
-.Nd make a directory file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/stat.h
-.Ft int
-.Fn mkdir "const char *path" "mode_t mode"
-.Ft int
-.Fn mkdirat "int fd" "const char *path" "mode_t mode"
-.Sh DESCRIPTION
-The directory
-.Fa path
-is created with the access permissions specified by
-.Fa mode
-and restricted by the
-.Xr umask 2
-of the calling process.
-.Pp
-The directory's owner ID is set to the process's effective user ID.
-The directory's group ID is set to that of the parent directory in
-which it is created.
-.Pp
-The
-.Fn mkdirat
-system call is equivalent to
-.Fn mkdir
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the newly created directory is created relative to the
-directory associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-If
-.Fn mkdirat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn mkdir .
-.Sh RETURN VALUES
-.Rv -std mkdir
-.Sh ERRORS
-The
-.Fn mkdir
-system call
-will fail and no directory will be created if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of the path prefix does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix,
-or write permission is denied
-on the parent directory of the directory to be created.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The parent directory of the directory to be created has its immutable flag set,
-see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EROFS
-The named directory would reside on a read-only file system.
-.It Bq Er EMLINK
-The new directory cannot be created because the parent directory contains
-too many subdirectories.
-.It Bq Er EEXIST
-The named file exists.
-.It Bq Er ENOSPC
-The new directory cannot be created because there is no space left
-on the file system that will contain the directory.
-.It Bq Er ENOSPC
-There are no free inodes on the file system on which the
-directory is being created.
-.It Bq Er EDQUOT
-The new directory cannot be created because the user's
-quota of disk blocks on the file system that will
-contain the directory has been exhausted.
-.It Bq Er EDQUOT
-The user's quota of inodes on the file system on
-which the directory is being created has been exhausted.
-.It Bq Er EIO
-An I/O error occurred while making the directory entry or allocating the inode.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn mkdir ,
-the
-.Fn mkdirat
-may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.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.
-.El
-.Sh SEE ALSO
-.Xr chflags 2 ,
-.Xr chmod 2 ,
-.Xr stat 2 ,
-.Xr umask 2
-.Sh STANDARDS
-The
-.Fn mkdir
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Fn mkdirat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn mkdirat
-system call appeared in
-.Fx 8.0 .
-The
-.Fn mkdir
-system call appeared in
-.At v1 .
diff --git a/lib/libc/sys/mkfifo.2 b/lib/libc/sys/mkfifo.2
deleted file mode 100644
index 60b3b943b3d5..000000000000
--- a/lib/libc/sys/mkfifo.2
+++ /dev/null
@@ -1,183 +0,0 @@
-.\" Copyright (c) 1990, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mkfifo.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt MKFIFO 2
-.Os
-.Sh NAME
-.Nm mkfifo ,
-.Nm mkfifoat
-.Nd make a fifo file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/stat.h
-.Ft int
-.Fn mkfifo "const char *path" "mode_t mode"
-.Ft int
-.Fn mkfifoat "int fd" "const char *path" "mode_t mode"
-.Sh DESCRIPTION
-The
-.Fn mkfifo
-system call
-creates a new fifo file with name
-.Fa path .
-The access permissions are
-specified by
-.Fa mode
-and restricted by the
-.Xr umask 2
-of the calling process.
-.Pp
-The fifo's owner ID is set to the process's effective user ID.
-The fifo's group ID is set to that of the parent directory in
-which it is created.
-.Pp
-The
-.Fn mkfifoat
-system call is equivalent to
-.Fn mkfifo
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the newly created FIFO is created relative to the
-directory associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-If
-.Fn mkfifoat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn mkfifo .
-.Sh RETURN VALUES
-.Rv -std mkfifo
-.Sh ERRORS
-The
-.Fn mkfifo
-system call
-will fail and no fifo will be created if:
-.Bl -tag -width Er
-.It Bq Er ENOTSUP
-The kernel has not been configured to support fifo's.
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of the path prefix does not exist.
-.It Bq Er EACCES
-A component of the path prefix denies search permission, or write permission
-is denied on the parent directory of the fifo to be created.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EROFS
-The named file would reside on a read-only file system.
-.It Bq Er EEXIST
-The named file exists.
-.It Bq Er EPERM
-The parent directory of the named file has its immutable flag set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er ENOSPC
-The directory in which the entry for the new fifo is being placed
-cannot be extended because there is no space left on the file
-system containing the directory.
-.It Bq Er ENOSPC
-There are no free inodes on the file system on which the
-fifo is being created.
-.It Bq Er EDQUOT
-The directory in which the entry for the new fifo
-is being placed cannot be extended because the
-user's quota of disk blocks on the file system
-containing the directory has been exhausted.
-.It Bq Er EDQUOT
-The user's quota of inodes on the file system on
-which the fifo is being created has been exhausted.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while making the directory entry or allocating the inode.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn mkfifo ,
-the
-.Fn mkfifoat
-may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.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.
-.El
-.Sh SEE ALSO
-.Xr chflags 2 ,
-.Xr chmod 2 ,
-.Xr mknod 2 ,
-.Xr stat 2 ,
-.Xr umask 2
-.Sh STANDARDS
-The
-.Fn mkfifo
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Fn mkfifoat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn mkfifoat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/mknod.2 b/lib/libc/sys/mknod.2
deleted file mode 100644
index 08117c511936..000000000000
--- a/lib/libc/sys/mknod.2
+++ /dev/null
@@ -1,184 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mknod.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt MKNOD 2
-.Os
-.Sh NAME
-.Nm mknod ,
-.Nm mknodat
-.Nd make a special file node
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/stat.h
-.Ft int
-.Fn mknod "const char *path" "mode_t mode" "dev_t dev"
-.Ft int
-.Fn mknodat "int fd" "const char *path" "mode_t mode" "dev_t dev"
-.Sh DESCRIPTION
-The file system node
-.Fa path
-is created with the file type and access permissions specified in
-.Fa mode .
-The access permissions are modified by the process's umask value.
-.Pp
-If
-.Fa mode
-indicates a block or character special file,
-.Fa dev
-is a configuration dependent specification denoting a particular device
-on the system.
-Otherwise,
-.Fa dev
-is ignored.
-.Pp
-The
-.Fn mknod
-system call
-requires super-user privileges.
-.Pp
-The
-.Fn mknodat
-system call is equivalent to
-.Fn mknod
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the newly created device node is created relative to the
-directory associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-If
-.Fn mknodat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn mknod .
-.Sh RETURN VALUES
-.Rv -std mknod
-.Sh ERRORS
-The
-.Fn mknod
-system call
-will fail and the file will be not created if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of the path prefix does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The process's effective user ID is not super-user.
-.It Bq Er EIO
-An I/O error occurred while making the directory entry or allocating the inode.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ENOSPC
-The directory in which the entry for the new node is being placed
-cannot be extended because there is no space left on the file
-system containing the directory.
-.It Bq Er ENOSPC
-There are no free inodes on the file system on which the
-node is being created.
-.It Bq Er EDQUOT
-The directory in which the entry for the new node
-is being placed cannot be extended because the
-user's quota of disk blocks on the file system
-containing the directory has been exhausted.
-.It Bq Er EDQUOT
-The user's quota of inodes on the file system on
-which the node is being created has been exhausted.
-.It Bq Er EROFS
-The named file resides on a read-only file system.
-.It Bq Er EEXIST
-The named file exists.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EINVAL
-Creating anything else than a block or character special
-file (or a
-.Em whiteout )
-is not supported.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn mknod ,
-the
-.Fn mknodat
-may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.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.
-.El
-.Sh SEE ALSO
-.Xr chmod 2 ,
-.Xr mkfifo 2 ,
-.Xr stat 2 ,
-.Xr umask 2
-.Sh STANDARDS
-The
-.Fn mknodat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn mknod
-function appeared in
-.At v4 .
-The
-.Fn mknodat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/mknod.c b/lib/libc/sys/mknod.c
index 3bb3853b5849..fd224058b5fb 100644
--- a/lib/libc/sys/mknod.c
+++ b/lib/libc/sys/mknod.c
@@ -24,9 +24,6 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include "namespace.h"
#include <sys/param.h>
#include <sys/fcntl.h>
diff --git a/lib/libc/sys/mlock.2 b/lib/libc/sys/mlock.2
deleted file mode 100644
index 040a8f8eaf9e..000000000000
--- a/lib/libc/sys/mlock.2
+++ /dev/null
@@ -1,179 +0,0 @@
-.\" Copyright (c) 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mlock.2 8.2 (Berkeley) 12/11/93
-.\" $FreeBSD$
-.\"
-.Dd May 13, 2019
-.Dt MLOCK 2
-.Os
-.Sh NAME
-.Nm mlock ,
-.Nm munlock
-.Nd lock (unlock) physical pages in memory
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn mlock "const void *addr" "size_t len"
-.Ft int
-.Fn munlock "const void *addr" "size_t len"
-.Sh DESCRIPTION
-The
-.Fn mlock
-system call
-locks into memory the physical pages associated with the virtual address
-range starting at
-.Fa addr
-for
-.Fa len
-bytes.
-The
-.Fn munlock
-system call unlocks pages previously locked by one or more
-.Fn mlock
-calls.
-For both, the
-.Fa addr
-argument should be aligned to a multiple of the page size.
-If the
-.Fa len
-argument is not a multiple of the page size, it will be rounded up
-to be so.
-The entire range must be allocated.
-.Pp
-After an
-.Fn mlock
-system call, the indicated pages will cause neither a non-resident page
-nor address-translation fault until they are unlocked.
-They may still cause protection-violation faults or TLB-miss faults on
-architectures with software-managed TLBs.
-The physical pages remain in memory until all locked mappings for the pages
-are removed.
-Multiple processes may have the same physical pages locked via their own
-virtual address mappings.
-A single process may likewise have pages multiply-locked via different virtual
-mappings of the same physical pages.
-Unlocking is performed explicitly by
-.Fn munlock
-or implicitly by a call to
-.Fn munmap
-which deallocates the unmapped address range.
-Locked mappings are not inherited by the child process after a
-.Xr fork 2 .
-.Pp
-Since physical memory is a potentially scarce resource, processes are
-limited in how much they can lock down.
-The amount of memory that a single process can
-.Fn mlock
-is limited by both the per-process
-.Dv RLIMIT_MEMLOCK
-resource limit and the
-system-wide
-.Dq wired pages
-limit
-.Va vm.max_user_wired .
-.Va vm.max_user_wired
-applies to the system as a whole, so the amount available to a single
-process at any given time is the difference between
-.Va vm.max_user_wired
-and
-.Va vm.stats.vm.v_user_wire_count .
-.Pp
-If
-.Va security.bsd.unprivileged_mlock
-is set to 0 these calls are only available to the super-user.
-.Sh RETURN VALUES
-.Rv -std
-.Pp
-If the call succeeds, all pages in the range become locked (unlocked);
-otherwise the locked status of all pages in the range remains unchanged.
-.Sh ERRORS
-The
-.Fn mlock
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-.Va security.bsd.unprivileged_mlock
-is set to 0 and the caller is not the super-user.
-.It Bq Er EINVAL
-The address range given wraps around zero.
-.It Bq Er ENOMEM
-Some portion of the indicated address range is not allocated.
-There was an error faulting/mapping a page.
-Locking the indicated range would exceed the per-process or system-wide limits
-for locked memory.
-.El
-The
-.Fn munlock
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-.Va security.bsd.unprivileged_mlock
-is set to 0 and the caller is not the super-user.
-.It Bq Er EINVAL
-The address range given wraps around zero.
-.It Bq Er ENOMEM
-Some or all of the address range specified by the addr and len
-arguments does not correspond to valid mapped pages in the address space
-of the process.
-.It Bq Er ENOMEM
-Locking the pages mapped by the specified range would exceed a limit on
-the amount of memory that the process may lock.
-.El
-.Sh "SEE ALSO"
-.Xr fork 2 ,
-.Xr mincore 2 ,
-.Xr minherit 2 ,
-.Xr mlockall 2 ,
-.Xr mmap 2 ,
-.Xr munlockall 2 ,
-.Xr munmap 2 ,
-.Xr setrlimit 2 ,
-.Xr getpagesize 3
-.Sh HISTORY
-The
-.Fn mlock
-and
-.Fn munlock
-system calls first appeared in
-.Bx 4.4 .
-.Sh BUGS
-Allocating too much wired memory can lead to a memory-allocation deadlock
-which requires a reboot to recover from.
-.Pp
-The per-process and system-wide resource limits of locked memory apply
-to the amount of virtual memory locked, not the amount of locked physical
-pages.
-Hence two distinct locked mappings of the same physical page counts as
-2 pages aginst the system limit, and also against the per-process limit
-if both mappings belong to the same physical map.
-.Pp
-The per-process resource limit is not currently supported.
diff --git a/lib/libc/sys/mlockall.2 b/lib/libc/sys/mlockall.2
deleted file mode 100644
index 341099ee758f..000000000000
--- a/lib/libc/sys/mlockall.2
+++ /dev/null
@@ -1,146 +0,0 @@
-.\" $NetBSD: mlockall.2,v 1.11 2003/04/16 13:34:54 wiz Exp $
-.\"
-.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This code is derived from software contributed to The NetBSD Foundation
-.\" by Jason R. Thorpe of the Numerical Aerospace Simulation Facility,
-.\" NASA Ames Research Center.
-.\"
-.\" 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 13, 2019
-.Dt MLOCKALL 2
-.Os
-.Sh NAME
-.Nm mlockall ,
-.Nm munlockall
-.Nd lock (unlock) the address space of a process
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn mlockall "int flags"
-.Ft int
-.Fn munlockall "void"
-.Sh DESCRIPTION
-The
-.Fn mlockall
-system call locks into memory the physical pages associated with the
-address space of a process until the address space is unlocked, the
-process exits, or execs another program image.
-.Pp
-The following flags affect the behavior of
-.Fn mlockall :
-.Bl -tag -width ".Dv MCL_CURRENT"
-.It Dv MCL_CURRENT
-Lock all pages currently mapped into the process's address space.
-.It Dv MCL_FUTURE
-Lock all pages mapped into the process's address space in the future,
-at the time the mapping is established.
-Note that this may cause future mappings to fail if those mappings
-cause resource limits to be exceeded.
-.El
-.Pp
-Since physical memory is a potentially scarce resource, processes are
-limited in how much they can lock down.
-A single process can lock the minimum of a system-wide
-.Dq wired pages
-limit
-.Va vm.max_user_wired
-and the per-process
-.Dv RLIMIT_MEMLOCK
-resource limit.
-.Pp
-If
-.Va security.bsd.unprivileged_mlock
-is set to 0 these calls are only available to the super-user.
-If
-.Va vm.old_mlock
-is set to 1 the per-process
-.Dv RLIMIT_MEMLOCK
-resource limit will not be applied for
-.Fn mlockall
-calls.
-.Pp
-The
-.Fn munlockall
-call unlocks any locked memory regions in the process address space.
-Any regions mapped after an
-.Fn munlockall
-call will not be locked.
-.Sh RETURN VALUES
-A return value of 0 indicates that the call
-succeeded and all pages in the range have either been locked or unlocked.
-A return value of \-1 indicates an error occurred and the locked
-status of all pages in the range remains unchanged.
-In this case, the global location
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-.Fn mlockall
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa flags
-argument is zero, or includes unimplemented flags.
-.It Bq Er ENOMEM
-Locking the indicated range would exceed either the system or per-process
-limit for locked memory.
-.It Bq Er EAGAIN
-Some or all of the memory mapped into the process's address space
-could not be locked when the call was made.
-.It Bq Er EPERM
-The calling process does not have the appropriate privilege to perform
-the requested operation.
-.El
-.Sh SEE ALSO
-.Xr mincore 2 ,
-.Xr mlock 2 ,
-.Xr mmap 2 ,
-.Xr munmap 2 ,
-.Xr setrlimit 2
-.Sh STANDARDS
-The
-.Fn mlockall
-and
-.Fn munlockall
-functions are believed to conform to
-.St -p1003.1-2001 .
-.Sh HISTORY
-The
-.Fn mlockall
-and
-.Fn munlockall
-functions first appeared in
-.Fx 5.1 .
-.Sh BUGS
-The per-process and system-wide resource limits of locked memory apply
-to the amount of virtual memory locked, not the amount of locked physical
-pages.
-Hence two distinct locked mappings of the same physical page counts as
-2 pages aginst the system limit, and also against the per-process limit
-if both mappings belong to the same physical map.
diff --git a/lib/libc/sys/mmap.2 b/lib/libc/sys/mmap.2
deleted file mode 100644
index 5a3c6eb5d06e..000000000000
--- a/lib/libc/sys/mmap.2
+++ /dev/null
@@ -1,568 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mmap.2 8.4 (Berkeley) 5/11/95
-.\" $FreeBSD$
-.\"
-.Dd December 24, 2020
-.Dt MMAP 2
-.Os
-.Sh NAME
-.Nm mmap
-.Nd allocate memory, or map files or devices into memory
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft void *
-.Fn mmap "void *addr" "size_t len" "int prot" "int flags" "int fd" "off_t offset"
-.Sh DESCRIPTION
-The
-.Fn mmap
-system call causes the pages starting at
-.Fa addr
-and continuing for at most
-.Fa len
-bytes to be mapped from the object described by
-.Fa fd ,
-starting at byte offset
-.Fa offset .
-If
-.Fa len
-is not a multiple of the page size, the mapped region may extend past the
-specified range.
-Any such extension beyond the end of the mapped object will be zero-filled.
-.Pp
-If
-.Fa fd
-references a regular file or a shared memory object, the range of
-bytes starting at
-.Fa offset
-and continuing for
-.Fa len
-bytes must be legitimate for the possible (not necessarily
-current) offsets in the object.
-In particular, the
-.Fa offset
-value cannot be negative.
-If the object is truncated and the process later accesses a page that
-is wholly within the truncated region, the access is aborted and a
-.Dv SIGBUS
-signal is delivered to the process.
-.Pp
-If
-.Fa fd
-references a device file, the interpretation of the
-.Fa offset
-value is device specific and defined by the device driver.
-The virtual memory subsystem does not impose any restrictions on the
-.Fa offset
-value in this case, passing it unchanged to the driver.
-.Pp
-If
-.Fa addr
-is non-zero, it is used as a hint to the system.
-(As a convenience to the system, the actual address of the region may differ
-from the address supplied.)
-If
-.Fa addr
-is zero, an address will be selected by the system.
-The actual starting address of the region is returned.
-A successful
-.Fa mmap
-deletes any previous mapping in the allocated address range.
-.Pp
-The protections (region accessibility) are specified in the
-.Fa prot
-argument by
-.Em or Ns 'ing
-the following values:
-.Pp
-.Bl -tag -width PROT_WRITE -compact
-.It Dv PROT_NONE
-Pages may not be accessed.
-.It Dv PROT_READ
-Pages may be read.
-.It Dv PROT_WRITE
-Pages may be written.
-.It Dv PROT_EXEC
-Pages may be executed.
-.El
-.Pp
-In addition to these protection flags,
-.Fx
-provides the ability to set the maximum protection of a region allocated by
-.Nm
-and later altered by
-.Xr mprotect 2 .
-This is accomplished by
-.Em or Ns 'ing
-one or more
-.Dv PROT_
-values wrapped in the
-.Dv PROT_MAX()
-macro into the
-.Fa prot
-argument.
-.Pp
-The
-.Fa flags
-argument specifies the type of the mapped object, mapping options and
-whether modifications made to the mapped copy of the page are private
-to the process or are to be shared with other references.
-Sharing, mapping type and options are specified in the
-.Fa flags
-argument by
-.Em or Ns 'ing
-the following values:
-.Bl -tag -width MAP_PREFAULT_READ
-.It Dv MAP_32BIT
-Request a region in the first 2GB of the current process's address space.
-If a suitable region cannot be found,
-.Fn mmap
-will fail.
-This flag is only available on 64-bit platforms.
-.It Dv MAP_ALIGNED Ns Pq Fa n
-Align the region on a requested boundary.
-If a suitable region cannot be found,
-.Fn mmap
-will fail.
-The
-.Fa n
-argument specifies the binary logarithm of the desired alignment.
-.It Dv MAP_ALIGNED_SUPER
-Align the region to maximize the potential use of large
-.Pq Dq super
-pages.
-If a suitable region cannot be found,
-.Fn mmap
-will fail.
-The system will choose a suitable page size based on the size of
-mapping.
-The page size used as well as the alignment of the region may both be
-affected by properties of the file being mapped.
-In particular,
-the physical address of existing pages of a file may require a specific
-alignment.
-The region is not guaranteed to be aligned on any specific boundary.
-.It Dv MAP_ANON
-Map anonymous memory not associated with any specific file.
-The file descriptor used for creating
-.Dv MAP_ANON
-must be \-1.
-The
-.Fa offset
-argument must be 0.
-.\".It Dv MAP_FILE
-.\"Mapped from a regular file or character-special device memory.
-.It Dv MAP_ANONYMOUS
-This flag is identical to
-.Dv MAP_ANON
-and is provided for compatibility.
-.It Dv MAP_EXCL
-This flag can only be used in combination with
-.Dv MAP_FIXED .
-Please see the definition of
-.Dv MAP_FIXED
-for the description of its effect.
-.It Dv MAP_FIXED
-Do not permit the system to select a different address than the one
-specified.
-If the specified address cannot be used,
-.Fn mmap
-will fail.
-If
-.Dv MAP_FIXED
-is specified,
-.Fa addr
-must be a multiple of the page size.
-If
-.Dv MAP_EXCL
-is not specified, a successful
-.Dv MAP_FIXED
-request replaces any previous mappings for the process'
-pages in the range from
-.Fa addr
-to
-.Fa addr
-+
-.Fa len .
-In contrast, if
-.Dv MAP_EXCL
-is specified, the request will fail if a mapping
-already exists within the range.
-.It Dv MAP_GUARD
-Instead of a mapping, create a guard of the specified size.
-Guards allow a process to create reservations in its address space,
-which can later be replaced by actual mappings.
-.Pp
-.Fa mmap
-will not create mappings in the address range of a guard unless
-the request specifies
-.Dv MAP_FIXED .
-Guards can be destroyed with
-.Xr munmap 2 .
-Any memory access by a thread to the guarded range results
-in the delivery of a
-.Dv SIGSEGV
-signal to that thread.
-.It Dv MAP_NOCORE
-Region is not included in a core file.
-.It Dv MAP_NOSYNC
-Causes data dirtied via this VM map to be flushed to physical media
-only when necessary (usually by the pager) rather than gratuitously.
-Typically this prevents the update daemons from flushing pages dirtied
-through such maps and thus allows efficient sharing of memory across
-unassociated processes using a file-backed shared memory map.
-Without
-this option any VM pages you dirty may be flushed to disk every so often
-(every 30-60 seconds usually) which can create performance problems if you
-do not need that to occur (such as when you are using shared file-backed
-mmap regions for IPC purposes).
-Dirty data will be flushed automatically when all mappings of an object are
-removed and all descriptors referencing the object are closed.
-Note that VM/file system coherency is
-maintained whether you use
-.Dv MAP_NOSYNC
-or not.
-This option is not portable
-across
-.Ux
-platforms (yet), though some may implement the same behavior
-by default.
-.Pp
-.Em WARNING !
-Extending a file with
-.Xr ftruncate 2 ,
-thus creating a big hole, and then filling the hole by modifying a shared
-.Fn mmap
-can lead to severe file fragmentation.
-In order to avoid such fragmentation you should always pre-allocate the
-file's backing store by
-.Fn write Ns ing
-zero's into the newly extended area prior to modifying the area via your
-.Fn mmap .
-The fragmentation problem is especially sensitive to
-.Dv MAP_NOSYNC
-pages, because pages may be flushed to disk in a totally random order.
-.Pp
-The same applies when using
-.Dv MAP_NOSYNC
-to implement a file-based shared memory store.
-It is recommended that you create the backing store by
-.Fn write Ns ing
-zero's to the backing file rather than
-.Fn ftruncate Ns ing
-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
-.Dq Li dd if=filename of=/dev/null bs=32k .
-.Pp
-The
-.Xr fsync 2
-system call will flush all dirty data and metadata associated with a file,
-including dirty NOSYNC VM data, to physical media.
-The
-.Xr sync 8
-command and
-.Xr sync 2
-system call generally do not flush dirty NOSYNC VM data.
-The
-.Xr msync 2
-system call is usually not needed since
-.Bx
-implements a coherent file system buffer cache.
-However, it may be
-used to associate dirty VM pages with file system buffers and thus cause
-them to be flushed to physical media sooner rather than later.
-.It Dv MAP_PREFAULT_READ
-Immediately update the calling process's lowest-level virtual address
-translation structures, such as its page table, so that every memory
-resident page within the region is mapped for read access.
-Ordinarily these structures are updated lazily.
-The effect of this option is to eliminate any soft faults that would
-otherwise occur on the initial read accesses to the region.
-Although this option does not preclude
-.Fa prot
-from including
-.Dv PROT_WRITE ,
-it does not eliminate soft faults on the initial write accesses to the
-region.
-.It Dv MAP_PRIVATE
-Modifications are private.
-.It Dv MAP_SHARED
-Modifications are shared.
-.It Dv MAP_STACK
-Creates both a mapped region that grows downward on demand and an
-adjoining guard that both reserves address space for the mapped region
-to grow into and limits the mapped region's growth.
-Together, the mapped region and the guard occupy
-.Fa len
-bytes of the address space.
-The guard starts at the returned address, and the mapped region ends at
-the returned address plus
-.Fa len
-bytes.
-Upon access to the guard, the mapped region automatically grows in size,
-and the guard shrinks by an equal amount.
-Essentially, the boundary between the guard and the mapped region moves
-downward so that the access falls within the enlarged mapped region.
-However, the guard will never shrink to less than the number of pages
-specified by the sysctl
-.Dv security.bsd.stack_guard_page ,
-thereby ensuring that a gap for detecting stack overflow always exists
-between the downward growing mapped region and the closest mapped region
-beneath it.
-.Pp
-.Dv MAP_STACK
-implies
-.Dv MAP_ANON
-and
-.Fa offset
-of 0.
-The
-.Fa fd
-argument
-must be -1 and
-.Fa prot
-must include at least
-.Dv PROT_READ
-and
-.Dv PROT_WRITE .
-The size of the guard, in pages, is specified by sysctl
-.Dv security.bsd.stack_guard_page .
-.El
-.Pp
-The
-.Xr close 2
-system call does not unmap pages, see
-.Xr munmap 2
-for further information.
-.Sh NOTES
-Although this implementation does not impose any alignment restrictions on
-the
-.Fa offset
-argument, a portable program must only use page-aligned values.
-.Pp
-Large page mappings require that the pages backing an object be
-aligned in matching blocks in both the virtual address space and RAM.
-The system will automatically attempt to use large page mappings when
-mapping an object that is already backed by large pages in RAM by
-aligning the mapping request in the virtual address space to match the
-alignment of the large physical pages.
-The system may also use large page mappings when mapping portions of an
-object that are not yet backed by pages in RAM.
-The
-.Dv MAP_ALIGNED_SUPER
-flag is an optimization that will align the mapping request to the
-size of a large page similar to
-.Dv MAP_ALIGNED ,
-except that the system will override this alignment if an object already
-uses large pages so that the mapping will be consistent with the existing
-large pages.
-This flag is mostly useful for maximizing the use of large pages on the
-first mapping of objects that do not yet have pages present in RAM.
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn mmap
-returns a pointer to the mapped region.
-Otherwise, a value of
-.Dv MAP_FAILED
-is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn mmap
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EACCES
-The flag
-.Dv PROT_READ
-was specified as part of the
-.Fa prot
-argument and
-.Fa fd
-was not open for reading.
-The flags
-.Dv MAP_SHARED
-and
-.Dv PROT_WRITE
-were specified as part of the
-.Fa flags
-and
-.Fa prot
-argument and
-.Fa fd
-was not open for writing.
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid open file descriptor.
-.It Bq Er EINVAL
-An invalid (negative) value was passed in the
-.Fa offset
-argument, when
-.Fa fd
-referenced a regular file or shared memory.
-.It Bq Er EINVAL
-An invalid value was passed in the
-.Fa prot
-argument.
-.It Bq Er EINVAL
-An undefined option was set in the
-.Fa flags
-argument.
-.It Bq Er EINVAL
-Both
-.Dv MAP_PRIVATE
-and
-.Dv MAP_SHARED
-were specified.
-.It Bq Er EINVAL
-None of
-.Dv MAP_ANON ,
-.Dv MAP_GUARD ,
-.Dv MAP_PRIVATE ,
-.Dv MAP_SHARED ,
-or
-.Dv MAP_STACK
-was specified.
-At least one of these flags must be included.
-.It Bq Er EINVAL
-.Dv MAP_STACK
-was specified and
-.Va len
-is less than or equal to the guard size.
-.It Bq Er EINVAL
-.Dv MAP_FIXED
-was specified and the
-.Fa addr
-argument was not page aligned, or part of the desired address space
-resides out of the valid address space for a user process.
-.It Bq Er EINVAL
-Both
-.Dv MAP_FIXED
-and
-.Dv MAP_32BIT
-were specified and part of the desired address space resides outside
-of the first 2GB of user address space.
-.It Bq Er EINVAL
-The
-.Fa len
-argument
-was equal to zero.
-.It Bq Er EINVAL
-.Dv MAP_ALIGNED
-was specified and the desired alignment was either larger than the
-virtual address size of the machine or smaller than a page.
-.It Bq Er EINVAL
-.Dv MAP_ANON
-was specified and the
-.Fa fd
-argument was not -1.
-.It Bq Er EINVAL
-.Dv MAP_ANON
-was specified and the
-.Fa offset
-argument was not 0.
-.It Bq Er EINVAL
-Both
-.Dv MAP_FIXED
-and
-.Dv MAP_EXCL
-were specified, but the requested region is already used by a mapping.
-.It Bq Er EINVAL
-.Dv MAP_EXCL
-was specified, but
-.Dv MAP_FIXED
-was not.
-.It Bq Er EINVAL
-.Dv MAP_GUARD
-was specified, but the
-.Fa offset
-argument was not zero, the
-.Fa fd
-argument was not -1, or the
-.Fa prot
-argument was not
-.Dv PROT_NONE .
-.It Bq Er EINVAL
-.Dv MAP_GUARD
-was specified together with one of the flags
-.Dv MAP_ANON ,
-.Dv MAP_PREFAULT ,
-.Dv MAP_PREFAULT_READ ,
-.Dv MAP_PRIVATE ,
-.Dv MAP_SHARED ,
-.Dv MAP_STACK .
-.It Bq Er ENODEV
-.Dv MAP_ANON
-has not been specified and
-.Fa fd
-did not reference a regular or character special file.
-.It Bq Er ENOMEM
-.Dv MAP_FIXED
-was specified and the
-.Fa addr
-argument was not available.
-.Dv MAP_ANON
-was specified and insufficient memory was available.
-.It Bq Er ENOTSUP
-The
-.Fa prot
-argument contains protections which are not a subset of the specified
-maximum protections.
-.El
-.Sh SEE ALSO
-.Xr madvise 2 ,
-.Xr mincore 2 ,
-.Xr minherit 2 ,
-.Xr mlock 2 ,
-.Xr mprotect 2 ,
-.Xr msync 2 ,
-.Xr munlock 2 ,
-.Xr munmap 2 ,
-.Xr getpagesize 3 ,
-.Xr getpagesizes 3
-.Sh HISTORY
-The
-.Nm
-system call was first documented in
-.Bx 4.2
-and implemented in
-.Bx 4.4 .
-.\" XXX: lots of missing history of FreeBSD additions.
-.Pp
-The
-.Dv PROT_MAX
-functionality was introduced in
-.Fx 13 .
diff --git a/lib/libc/sys/modfind.2 b/lib/libc/sys/modfind.2
deleted file mode 100644
index 38d09c4ee9f3..000000000000
--- a/lib/libc/sys/modfind.2
+++ /dev/null
@@ -1,86 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 28, 2000
-.Dt MODFIND 2
-.Os
-.Sh NAME
-.Nm modfind
-.Nd returns the modid of a kernel module
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/module.h
-.Ft int
-.Fn modfind "const char *modname"
-.Sh DESCRIPTION
-The
-.Fn modfind
-system call
-returns the modid of the kernel module referenced by
-.Fa modname .
-.Sh RETURN VALUES
-The
-.Fn modfind
-system call
-returns the modid of the kernel module referenced by
-.Fa modname .
-Upon error,
-.Fn modfind
-returns -1 and sets
-.Va errno
-to indicate the error.
-.Sh ERRORS
-.Va errno
-is set to the following if
-.Fn modfind
-fails:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The data required for this operation could not be read from the kernel space.
-.It Bq Er ENOENT
-The file specified is not loaded in the kernel.
-.El
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldstat 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/modnext.2 b/lib/libc/sys/modnext.2
deleted file mode 100644
index c0c0a0d3a223..000000000000
--- a/lib/libc/sys/modnext.2
+++ /dev/null
@@ -1,97 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 28, 2000
-.Dt MODNEXT 2
-.Os
-.Sh NAME
-.Nm modnext
-.Nd return the modid of the next kernel module
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/module.h
-.Ft int
-.Fn modnext "int modid"
-.Ft int
-.Fn modfnext "int modid"
-.Sh DESCRIPTION
-The
-.Fn modnext
-system call
-returns the modid of the next kernel module (that is, the one after
-.Va modid )
-or 0 if
-.Va modid
-is the last module in the list.
-.Pp
-If the
-.Va modid
-value is 0, then
-.Fn modnext
-will return the modid of the first module.
-The
-.Fn modfnext
-system call
-must always be given a valid modid.
-.Sh RETURN VALUES
-The
-.Fn modnext
-system call
-returns the modid of the next module (see
-.Sx DESCRIPTION )
-or 0.
-If an error
-occurs,
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The only error set by
-.Fn modnext
-is
-.Er ENOENT ,
-which is set when
-.Va modid
-refers to a kernel module that does not exist (is not loaded).
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modstat 2 ,
-.Xr kld 4 ,
-.Xr kldstat 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/modstat.2 b/lib/libc/sys/modstat.2
deleted file mode 100644
index 5f106b4b1af3..000000000000
--- a/lib/libc/sys/modstat.2
+++ /dev/null
@@ -1,127 +0,0 @@
-.\"
-.\" Copyright (c) 1999 Chris Costello
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 15, 2008
-.Dt MODSTAT 2
-.Os
-.Sh NAME
-.Nm modstat
-.Nd get status of kernel module
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/module.h
-.Ft int
-.Fn modstat "int modid" "struct module_stat *stat"
-.Sh DESCRIPTION
-The
-.Fn modstat
-system call writes the info for the kernel module referred to by
-.Fa modid
-into
-.Fa stat .
-.Bd -literal
-struct module_stat {
- int version; /* set to sizeof(module_stat) */
- char name[MAXMODNAME];
- int refs;
- int id;
- modspecific_t data;
-};
-typedef union modspecific {
- int intval;
- u_int uintval;
- long longval;
- u_long ulongval;
-} modspecific_t;
-.Ed
-.Bl -tag -width XXXaddress
-.It version
-This field is set to the size of the structure mentioned above by the code
-calling
-.Fn modstat ,
-and not
-.Fn modstat
-itself.
-.It name
-The name of the module referred to by
-.Fa modid .
-.It refs
-The number of modules referenced by
-.Fa modid .
-.It id
-The id of the module specified in
-.Fa modid .
-.It data
-Module specific data.
-.El
-.Sh RETURN VALUES
-.Rv -std modstat
-.Sh ERRORS
-The information for the module referred to by
-.Fa modid
-is filled into the structure pointed to by
-.Fa stat
-unless:
-.Bl -tag -width Er
-.It Bq Er ENOENT
-The module was not found (probably not loaded).
-.It Bq Er EINVAL
-The version specified in the
-.Fa version
-field of stat is not the proper version.
-You would need to rebuild world, the
-kernel, or your application, if this error occurs, given that you did properly
-fill in the
-.Fa version
-field.
-.It Bq Er EFAULT
-There was a problem copying one, some, or all of the fields into
-.Fa stat
-in the
-.Xr copyout 9
-function.
-.El
-.Sh SEE ALSO
-.Xr kldfind 2 ,
-.Xr kldfirstmod 2 ,
-.Xr kldload 2 ,
-.Xr kldnext 2 ,
-.Xr kldstat 2 ,
-.Xr kldsym 2 ,
-.Xr kldunload 2 ,
-.Xr modfind 2 ,
-.Xr modfnext 2 ,
-.Xr modnext 2 ,
-.Xr kld 4 ,
-.Xr kldstat 8
-.Sh HISTORY
-The
-.Nm kld
-interface first appeared in
-.Fx 3.0 .
diff --git a/lib/libc/sys/mount.2 b/lib/libc/sys/mount.2
deleted file mode 100644
index 0d25cca3f10f..000000000000
--- a/lib/libc/sys/mount.2
+++ /dev/null
@@ -1,403 +0,0 @@
-.\" Copyright (c) 1980, 1989, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mount.2 8.3 (Berkeley) 5/24/95
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt MOUNT 2
-.Os
-.Sh NAME
-.Nm mount ,
-.Nm nmount ,
-.Nm unmount
-.Nd mount or dismount a file system
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/mount.h
-.Ft int
-.Fn mount "const char *type" "const char *dir" "int flags" "void *data"
-.Ft int
-.Fn unmount "const char *dir" "int flags"
-.In sys/uio.h
-.Ft int
-.Fn nmount "struct iovec *iov" "u_int niov" "int flags"
-.Sh DESCRIPTION
-The
-.Fn mount
-system call grafts
-a file system object onto the system file tree
-at the point
-.Fa dir .
-The argument
-.Fa data
-describes the file system object to be mounted.
-The argument
-.Fa type
-tells the kernel how to interpret
-.Fa data
-(See
-.Fa type
-below).
-The contents of the file system
-become available through the new mount point
-.Fa dir .
-Any files in
-.Fa dir
-at the time
-of a successful mount are swept under the carpet so to speak, and
-are unavailable until the file system is unmounted.
-.Pp
-The
-.Fn nmount
-system call behaves similarly to
-.Fn mount ,
-except that the mount options (file system type name, device to mount,
-mount-point name, etc.) are passed as an array of name-value pairs
-in the array
-.Fa iov ,
-containing
-.Fa niov
-elements.
-The following options are required by all file systems:
-.Bl -column fstype -offset indent
-.It
-.Li fstype Ta file system type name (e.g., Dq Li procfs )
-.It
-.Li fspath Ta mount point pathname (e.g., Dq Li /proc )
-.El
-.Pp
-Depending on the file system type, other options may be
-recognized or required;
-for example, most disk-based file systems require a
-.Dq Li from
-option containing the pathname of a special device
-in addition to the options listed above.
-.Pp
-By default only the super-user may call the
-.Fn mount
-system call.
-This restriction can be removed by setting the
-.Va vfs.usermount
-.Xr sysctl 8
-variable
-to a non-zero value; see the BUGS section for more information.
-.Pp
-The following
-.Fa flags
-may be specified to
-suppress default semantics which affect file system access.
-.Bl -tag -width MNT_SYNCHRONOUS
-.It Dv MNT_RDONLY
-The file system should be treated as read-only;
-even the super-user may not write on it.
-Specifying MNT_UPDATE without this option will upgrade
-a read-only file system to read/write.
-.It Dv MNT_NOEXEC
-Do not allow files to be executed from the file system.
-.It Dv MNT_NOSUID
-Do not honor setuid or setgid bits on files when executing them.
-This flag is set automatically when the caller is not the super-user.
-.It Dv MNT_NOATIME
-Disable update of file access times.
-.It Dv MNT_SNAPSHOT
-Create a snapshot of the file system.
-This is currently only supported on UFS2 file systems, see
-.Xr mksnap_ffs 8
-for more information.
-.It Dv MNT_SUIDDIR
-Directories with the SUID bit set chown new files to their own owner.
-This flag requires the SUIDDIR option to have been compiled into the kernel
-to have any effect.
-See the
-.Xr mount 8
-and
-.Xr chmod 2
-pages for more information.
-.It Dv MNT_SYNCHRONOUS
-All I/O to the file system should be done synchronously.
-.It Dv MNT_ASYNC
-All I/O to the file system should be done asynchronously.
-.It Dv MNT_FORCE
-Force a read-write mount even if the file system appears to be unclean.
-Dangerous.
-Together with
-.Dv MNT_UPDATE
-and
-.Dv MNT_RDONLY ,
-specify that the file system is to be forcibly downgraded to a read-only
-mount even if some files are open for writing.
-.It Dv MNT_NOCLUSTERR
-Disable read clustering.
-.It Dv MNT_NOCLUSTERW
-Disable write clustering.
-.It Dv MNT_NOCOVER
-Do not mount over the root of another mount point.
-.It Dv MNT_EMPTYDIR
-Require an empty directory for the mount point directory.
-.El
-.Pp
-The flag
-.Dv MNT_UPDATE
-indicates that the mount command is being applied
-to an already mounted file system.
-This allows the mount flags to be changed without requiring
-that the file system be unmounted and remounted.
-Some file systems may not allow all flags to be changed.
-For example,
-many file systems will not allow a change from read-write to read-only.
-.Pp
-The flag
-.Dv MNT_RELOAD
-causes the vfs subsystem to update its data structures pertaining to
-the specified already mounted file system.
-.Pp
-The
-.Fa type
-argument names the file system.
-The types of file systems known to the system can be obtained with
-.Xr lsvfs 1 .
-.Pp
-The
-.Fa data
-argument
-is a pointer to a structure that contains the type
-specific arguments to mount.
-The format for these argument structures is described in the
-manual page for each file system.
-By convention file system manual pages are named
-by prefixing ``mount_'' to the name of the file system as returned by
-.Xr lsvfs 1 .
-Thus the
-.Tn NFS
-file system is described by the
-.Xr mount_nfs 8
-manual page.
-It should be noted that a manual page for default
-file systems, known as UFS and UFS2, does not exist.
-.Pp
-The
-.Fn unmount
-system call disassociates the file system from the specified
-mount point
-.Fa dir .
-.Pp
-The
-.Fa flags
-argument may include
-.Dv MNT_FORCE
-to specify that the file system should be forcibly unmounted
-even if files are still active.
-Active special devices continue to work,
-but any further accesses to any other active files result in errors
-even if the file system is later remounted.
-.Pp
-If the
-.Dv MNT_BYFSID
-flag is specified,
-.Fa dir
-should instead be a file system ID encoded as
-.Dq Li FSID : Ns Ar val0 : Ns Ar val1 ,
-where
-.Ar val0
-and
-.Ar val1
-are the contents of the
-.Vt fsid_t
-.Va val[]
-array in decimal.
-The file system that has the specified file system ID will be unmounted.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn mount
-and
-.Fn nmount
-system calls will fail when one of the following occurs:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The caller is neither the super-user nor the owner of
-.Fa dir .
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or the entire length of a path name exceeded 1023 characters.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating a pathname.
-.It Bq Er ENOENT
-A component of
-.Fa dir
-does not exist.
-.It Bq Er ENOTDIR
-A component of
-.Fa name
-is not a directory,
-or a path prefix of
-.Fa special
-is not a directory.
-.It Bq Er EBUSY
-Another process currently holds a reference to
-.Fa dir .
-.It Bq Er EBUSY
-The
-.Dv MNT_NOCOVER
-option was given, and the requested mount point
-is already the root of another mount point.
-.It Bq Er EFAULT
-The
-.Fa dir
-argument
-points outside the process's allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading data from
-.Fa special .
-.It Bq Er EINTEGRITY
-The backing store for
-.Fa special
-detected corrupted data while reading.
-.El
-.Pp
-The following errors can occur for a
-.Em ufs
-file system mount:
-.Bl -tag -width Er
-.It Bq Er ENODEV
-A component of ufs_args
-.Fa fspec
-does not exist.
-.It Bq Er ENOTBLK
-The
-.Fa fspec
-argument
-is not a block device.
-.It Bq Er ENOTEMPTY
-The
-.Dv MNT_EMPTYDIR
-option was specified, and the requested mount point
-is not an empty directory.
-.It Bq Er ENXIO
-The major device number of
-.Fa fspec
-is out of range (this indicates no device driver exists
-for the associated hardware).
-.It Bq Er EBUSY
-.Fa fspec
-is already mounted.
-.It Bq Er EMFILE
-No space remains in the mount table.
-.It Bq Er EINVAL
-The super block for the file system had a bad magic
-number or an out of range block size.
-.It Bq Er EINTEGRITY
-The super block for the file system had a bad check hash.
-The check hash can usually be corrected by running
-.Xr fsck 8 .
-.It Bq Er ENOMEM
-Not enough memory was available to read the cylinder
-group information for the file system.
-.It Bq Er EIO
-An I/O error occurred while reading the super block or
-cylinder group information.
-.It Bq Er EFAULT
-The
-.Fa fspec
-argument
-points outside the process's allocated address space.
-.El
-.Pp
-The following errors can occur for a
-.Em nfs
-file system mount:
-.Bl -tag -width Er
-.It Bq Er ETIMEDOUT
-.Em Nfs
-timed out trying to contact the server.
-.It Bq Er EFAULT
-Some part of the information described by nfs_args
-points outside the process's allocated address space.
-.El
-.Pp
-The
-.Fn unmount
-system call may fail with one of the following errors:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The caller is neither the super-user nor the user who issued the corresponding
-.Fn mount
-call.
-.It Bq Er ENAMETOOLONG
-The length of the path name exceeded 1023 characters.
-.It Bq Er EINVAL
-The requested directory is not in the mount table.
-.It Bq Er ENOENT
-The file system ID specified using
-.Dv MNT_BYFSID
-was not found in the mount table.
-.It Bq Er EINVAL
-The file system ID specified using
-.Dv MNT_BYFSID
-could not be decoded.
-.It Bq Er EINVAL
-The specified file system is the root file system.
-.It Bq Er EBUSY
-A process is holding a reference to a file located
-on the file system.
-.It Bq Er EIO
-An I/O error occurred while writing cached file system information.
-.It Bq Er EFAULT
-The
-.Fa dir
-argument
-points outside the process's allocated address space.
-.El
-.Sh SEE ALSO
-.Xr lsvfs 1 ,
-.Xr mksnap_ffs 8 ,
-.Xr mount 8 ,
-.Xr umount 8
-.Sh HISTORY
-The
-.Fn mount
-and
-.Fn unmount
-functions appeared in
-.At v1 .
-The
-.Fn nmount
-system call first appeared in
-.Fx 5.0 .
-.Sh BUGS
-Some of the error codes need translation to more obvious messages.
-.Pp
-Allowing untrusted users to mount arbitrary media, e.g. by enabling
-.Va vfs.usermount ,
-should not be considered safe.
-Most file systems in
-.Fx
-were not built to safeguard against malicious devices.
diff --git a/lib/libc/sys/mprotect.2 b/lib/libc/sys/mprotect.2
deleted file mode 100644
index c2c7701d624e..000000000000
--- a/lib/libc/sys/mprotect.2
+++ /dev/null
@@ -1,131 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)mprotect.2 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd September 7, 2021
-.Dt MPROTECT 2
-.Os
-.Sh NAME
-.Nm mprotect
-.Nd control the protection of pages
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn mprotect "void *addr" "size_t len" "int prot"
-.Sh DESCRIPTION
-The
-.Fn mprotect
-system call
-changes the specified pages to have protection
-.Fa prot .
-.Pp
-The
-.Fa prot
-argument shall be
-.Dv PROT_NONE
-(no permissions at all)
-or the bitwise
-.Em or
-of one or more of the following values:
-.Pp
-.Bl -tag -width ".Dv PROT_WRITE" -compact
-.It Dv PROT_READ
-The pages can be read.
-.It Dv PROT_WRITE
-The pages can be written.
-.It Dv PROT_EXEC
-The pages can be executed.
-.El
-.Pp
-In addition to these standard protection flags,
-the
-.Fx
-implementation of
-.Fn mprotect
-provides the ability to set the maximum protection of a region
-(which prevents
-.Nm
-from adding to the permissions later).
-This is accomplished by bitwise
-.Em or Ns 'ing
-one or more
-.Dv PROT_
-values wrapped in the
-.Dv PROT_MAX()
-macro into the
-.Fa prot
-argument.
-.Sh RETURN VALUES
-.Rv -std mprotect
-.Sh ERRORS
-The
-.Fn mprotect
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EACCES
-The calling process was not allowed to change
-the protection to the value specified by
-the
-.Fa prot
-argument.
-.It Bq Er EINVAL
-The virtual address range specified by the
-.Fa addr
-and
-.Fa len
-arguments is not valid.
-.It Bq Er EINVAL
-The
-.Fa prot
-argument contains unhandled bits.
-.It Bq Er ENOTSUP
-The
-.Fa prot
-argument contains permissions which are not a subset of the specified
-maximum permissions.
-.El
-.Sh SEE ALSO
-.Xr madvise 2 ,
-.Xr mincore 2 ,
-.Xr msync 2 ,
-.Xr munmap 2
-.Sh HISTORY
-The
-.Fn mprotect
-system call was first documented in
-.Bx 4.2
-and first appeared in
-.Bx 4.4 .
-.Pp
-The
-.Dv PROT_MAX
-functionality was introduced in
-.Fx 13 .
diff --git a/lib/libc/sys/mq_close.2 b/lib/libc/sys/mq_close.2
deleted file mode 100644
index f9ec06239c48..000000000000
--- a/lib/libc/sys/mq_close.2
+++ /dev/null
@@ -1,105 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd November 29, 2005
-.Dt MQ_CLOSE 2
-.Os
-.Sh NAME
-.Nm mq_close
-.Nd "close a message queue (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft int
-.Fn mq_close "mqd_t mqdes"
-.Sh DESCRIPTION
-The
-.Fn mq_close
-system call removes the association between the message queue descriptor,
-.Fa mqdes ,
-and its message queue.
-The results of using this message queue descriptor
-after successful return from this
-.Fn mq_close ,
-and until the return of this message queue descriptor from a subsequent
-.Fn mq_open ,
-are undefined.
-.Pp
-If the process has successfully attached a notification request to the
-message queue via this
-.Fa mqdes ,
-this attachment will be removed, and the message queue is available for
-another process to attach for notification.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn mq_close
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa mqdes
-argument is not a valid message queue descriptor.
-.El
-.Sh SEE ALSO
-.Xr mq_open 2 ,
-.Xr mq_unlink 2
-.Sh STANDARDS
-The
-.Fn mq_close
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-message queues first appeared in
-.Fx 7.0 .
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group. In the
-event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document. The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/mq_getattr.2 b/lib/libc/sys/mq_getattr.2
deleted file mode 100644
index fc42d5914d04..000000000000
--- a/lib/libc/sys/mq_getattr.2
+++ /dev/null
@@ -1,127 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 21, 2014
-.Dt MQ_GETATTR 2
-.Os
-.Sh NAME
-.Nm mq_getattr
-.Nd "get message queue attributes (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft int
-.Fn mq_getattr "mqd_t mqdes" "struct mq_attr *mqstat"
-.Sh DESCRIPTION
-The
-.Fn mq_getattr
-system call obtains status information and attributes of the message queue and
-the open message queue description associated with the message queue
-descriptor.
-.Pp
-The
-.Fa mqdes
-argument specifies a message queue descriptor.
-.Pp
-The results are returned in the
-.Vt mq_attr
-structure referenced by the
-.Fa mqstat
-argument.
-.Pp
-Upon return, the following members will have the values associated with the
-open message queue description as set when the message queue was opened and
-as modified by subsequent
-.Fn mq_setattr
-calls:
-.Va mq_flags .
-.Pp
-The following attributes of the message queue will be returned as set at
-message queue creation:
-.Va mq_maxmsg , mq_msgsize .
-.Pp
-Upon return, the following members within the
-.Vt mq_attr
-structure referenced by the
-.Fa mqstat
-argument will be set to the current state
-of the message queue:
-.Bl -tag -width ".Va mq_curmsgs"
-.It Va mq_curmsgs
-The number of messages currently on the queue.
-.El
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn mq_getattr
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa mqdes
-argument is not a valid message queue descriptor.
-.El
-.Sh SEE ALSO
-.Xr mq_open 2 ,
-.Xr mq_send 2 ,
-.Xr mq_setattr 2 ,
-.Xr mq_timedsend 2
-.Sh STANDARDS
-The
-.Fn mq_getattr
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-message queues first appeared in
-.Fx 7.0 .
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group. In the
-event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document. The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/mq_notify.2 b/lib/libc/sys/mq_notify.2
deleted file mode 100644
index 4418c60449d9..000000000000
--- a/lib/libc/sys/mq_notify.2
+++ /dev/null
@@ -1,165 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 15, 2016
-.Dt MQ_NOTIFY 2
-.Os
-.Sh NAME
-.Nm mq_notify
-.Nd "notify process that a message is available (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft int
-.Fn mq_notify "mqd_t mqdes" "const struct sigevent *notification"
-.Sh DESCRIPTION
-If the argument notification is not
-.Dv NULL ,
-this system call will register the calling process to be notified of message
-arrival at an empty message queue associated with the specified message
-queue descriptor,
-.Fa mqdes .
-The notification specified by the
-.Fa notification
-argument will be sent to
-the process when the message queue transitions from empty to non-empty.
-At any time, only one process may be registered for notification by a
-message queue.
-If the calling process or any other process has already
-registered for notification of message arrival at the specified message
-queue, subsequent attempts to register for that message queue will fail.
-.Pp
-The
-.Fa notification
-argument points to a
-.Vt sigevent
-structure that defines how the calling process will be notified.
-If
-.Fa notification->sigev_notify
-is
-.Dv SIGEV_NONE ,
-then no signal will be posted, but the error status and the return status
-for the operation will be set appropriately.
-For
-.Dv SIGEV_SIGNO
-and
-.Dv SIGEV_THREAD_ID
-notifications,
-the signal specified in
-.Fa notification->sigev_signo
-will be sent to the calling process
-.Pq Dv SIGEV_SIGNO
-or to the thread whose LWP ID is
-.Fa notification->sigev_notify_thread_id
-.Pq Dv SIGEV_THREAD_ID .
-The information for the queued signal will include:
-.Bl -column ".Va si_value"
-.It Sy Member Ta Sy Value
-.It Va si_code Ta Dv SI_MESGQ
-.It Va si_value Ta
-the value stored in
-.Fa notification->sigev_value
-.It Va si_mqd Ta Fa mqdes
-.El
-.Pp
-If
-.Fa notification
-is
-.Dv NULL
-and the process is currently registered for notification by the specified
-message queue, the existing registration will be removed.
-.Pp
-When the notification is sent to the registered process, its registration
-is removed.
-The message queue then is available for registration.
-.Pp
-If a process has registered for notification of message arrival at a
-message queue and some thread is blocked in
-.Fn mq_receive
-waiting to receive a message when a message arrives at the queue, the
-arriving message will satisfy the appropriate
-.Fn mq_receive .
-The resulting behavior is as if the message queue remains empty, and no
-notification will be sent.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn mq_notify
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa mqdes
-argument is not a valid message queue descriptor.
-.It Bq Er EBUSY
-Process is already registered for notification by the message queue.
-.It Bq Er EINVAL
-The asynchronous notification method in
-.Fa notification->sigev_notify
-is invalid or not supported.
-.El
-.Sh SEE ALSO
-.Xr mq_open 2 ,
-.Xr mq_send 2 ,
-.Xr mq_timedsend 2 ,
-.Xr sigevent 3 ,
-.Xr siginfo 3
-.Sh STANDARDS
-The
-.Fn mq_notify
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-message queues first appeared in
-.Fx 7.0 .
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group. In the
-event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document. The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/mq_open.2 b/lib/libc/sys/mq_open.2
deleted file mode 100644
index 4f1f98e010a5..000000000000
--- a/lib/libc/sys/mq_open.2
+++ /dev/null
@@ -1,334 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 28, 2019
-.Dt MQ_OPEN 2
-.Os
-.Sh NAME
-.Nm mq_open
-.Nd "open a message queue (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft mqd_t
-.Fn mq_open "const char *name" "int oflag" "..."
-.Sh DESCRIPTION
-The
-.Fn mq_open
-system call establishes the connection between a process and a message queue
-with a message queue descriptor.
-It creates an open message queue
-description that refers to the message queue, and a message queue descriptor
-that refers to that open message queue description.
-The message queue
-descriptor is used by other functions to refer to that message queue.
-The
-.Fa name
-argument points to a string naming a message queue.
-The
-.Fa name
-argument should conform to the construction rules for a pathname.
-The
-.Fa name
-should begin with a slash character.
-Processes calling
-.Fn mq_open
-with the same value of
-.Fa name
-refers to the same message queue object, as long as that name has not been
-removed.
-If the
-.Fa name
-argument is not the name of an existing message queue and creation is not
-requested,
-.Fn mq_open
-will fail and return an error.
-.Pp
-The
-.Fa oflag
-argument requests the desired receive and/or send access to the message
-queue.
-The requested access permission to receive messages or send messages
-would be granted if the calling process would be granted read or write access,
-respectively, to an equivalently protected file.
-.Pp
-The value of
-.Fa oflag
-is the bitwise-inclusive OR of values from the following list.
-Applications should specify exactly one of the first three values (access
-modes) below in the value of
-.Fa oflag :
-.Bl -tag -width ".Dv O_NONBLOCK"
-.It Dv O_RDONLY
-Open the message queue for receiving messages.
-The process can use the
-returned message queue descriptor with
-.Fn mq_receive ,
-but not
-.Fn mq_send .
-A message queue may be open multiple times in the same or different processes
-for receiving messages.
-.It Dv O_WRONLY
-Open the queue for sending messages.
-The process can use the returned
-message queue descriptor with
-.Fn mq_send
-but not
-.Fn mq_receive .
-A message queue may be open multiple times in the same or different processes
-for sending messages.
-.It Dv O_RDWR
-Open the queue for both receiving and sending messages.
-The process can use
-any of the functions allowed for
-.Dv O_RDONLY
-and
-.Dv O_WRONLY .
-A message queue may be open multiple times in the same or different processes
-for sending messages.
-.El
-.Pp
-Any combination of the remaining flags may be specified in the value of
-.Fa oflag :
-.Bl -tag -width ".Dv O_NONBLOCK"
-.It Dv O_CREAT
-Create a message queue.
-It requires two additional arguments:
-.Fa mode ,
-which is of type
-.Vt mode_t ,
-and
-.Fa attr ,
-which is a pointer to an
-.Vt mq_attr
-structure.
-If the pathname
-.Fa name
-has already been used to create a message queue that still exists, then
-this flag has no effect, except as noted under
-.Dv O_EXCL .
-Otherwise, a message queue will be created without any messages
-in it.
-The user ID of the message queue will be set to the effective user ID
-of the process, and the group ID of the message queue will be set to the
-effective group ID of the process.
-The permission bits of the message queue
-will be set to the value of the
-.Fa mode
-argument, except those set in the file mode creation mask of the process.
-When bits in
-.Fa mode
-other than the file permission bits are specified, the effect is
-unspecified.
-If
-.Fa attr
-is
-.Dv NULL ,
-the message queue is created with implementation-defined default message
-queue attributes.
-If attr is
-.Pf non- Dv NULL
-and the calling process has the
-appropriate privilege on name, the message queue
-.Va mq_maxmsg
-and
-.Va mq_msgsize
-attributes will be set to the values of the corresponding members in the
-.Vt mq_attr
-structure referred to by
-.Fa attr .
-If
-.Fa attr
-is
-.Pf non- Dv NULL ,
-but the calling process does not have the appropriate privilege
-on name, the
-.Fn mq_open
-function will fail and return an error without creating the message queue.
-.It Dv O_EXCL
-If
-.Dv O_EXCL
-and
-.Dv O_CREAT
-are set,
-.Fn mq_open
-will fail if the message queue name exists.
-.It Dv O_NONBLOCK
-Determines whether an
-.Fn mq_send
-or
-.Fn mq_receive
-waits for resources or messages that are not currently available, or fails
-with
-.Va errno
-set to
-.Er EAGAIN ;
-see
-.Xr mq_send 2
-and
-.Xr mq_receive 2
-for details.
-.El
-.Pp
-The
-.Fn mq_open
-system call does not add or remove messages from the queue.
-.Sh NOTES
-.Fx
-implements message queue based on file descriptor.
-The descriptor
-is inherited by child after
-.Xr fork 2 .
-The descriptor is closed in a new image after
-.Xr exec 3 .
-The
-.Xr select 2
-and
-.Xr kevent 2
-system calls are supported for message queue descriptor.
-.Pp
-Please see the
-.Xr mqueuefs 5
-man page for instructions on loading the module or compiling the service into
-the kernel.
-.Sh RETURN VALUES
-Upon successful completion, the function returns a message queue
-descriptor; otherwise, the function returns
-.Po Vt mqd_t Pc Ns \-1
-and sets the global variable
-.Va errno
-to indicate the error.
-.Sh ERRORS
-The
-.Fn mq_open
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EACCES
-The message queue exists and the permissions specified by
-.Fa oflag
-are denied, or the message queue does not exist and permission to create the
-message queue is denied.
-.It Bq Er EEXIST
-.Dv O_CREAT
-and
-.Dv O_EXCL
-are set and the named message queue already exists.
-.It Bq Er EINTR
-The
-.Fn mq_open
-function was interrupted by a signal.
-.It Bq Er EINVAL
-The
-.Fn mq_open
-function is not supported for the given name.
-.It Bq Er EINVAL
-.Dv O_CREAT
-was specified in
-.Fa oflag ,
-the value of
-.Fa attr
-is not
-.Dv NULL ,
-and either
-.Va mq_maxmsg
-or
-.Va mq_msgsize
-was less than or equal to zero.
-.It Bq Er EMFILE
-Too many message queue descriptors or file descriptors are currently in use
-by this process.
-.It Bq Er ENAMETOOLONG
-The length of the
-.Fa name
-argument exceeds
-.Brq Dv PATH_MAX
-or a pathname component
-is longer than
-.Brq Dv NAME_MAX .
-.It Bq Er ENFILE
-Too many message queues are currently open in the system.
-.It Bq Er ENOENT
-.Dv O_CREAT
-is not set and the named message queue does not exist.
-.It Bq Er ENOSPC
-There is insufficient space for the creation of the new message queue.
-.El
-.Sh SEE ALSO
-.Xr mq_close 2 ,
-.Xr mq_getattr 2 ,
-.Xr mq_receive 2 ,
-.Xr mq_send 2 ,
-.Xr mq_setattr 2 ,
-.Xr mq_unlink 2 ,
-.Xr mq_timedreceive 3 ,
-.Xr mq_timedsend 3 ,
-.Xr mqueuefs 5
-.Sh STANDARDS
-The
-.Fn mq_open
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for POSIX message queues first appeared in
-.Fx 7.0 .
-.Sh BUGS
-This implementation places strict requirements on the value of
-.Fa name :
-it must begin with a slash
-.Pq Ql /
-and contain no other slash characters.
-.Pp
-The
-.Fa mode
-and
-.Fa attr
-arguments are variadic and may result in different calling conventions
-than might otherwise be expected.
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group. In the
-event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document. The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/mq_receive.2 b/lib/libc/sys/mq_receive.2
deleted file mode 100644
index 730636bf31ee..000000000000
--- a/lib/libc/sys/mq_receive.2
+++ /dev/null
@@ -1,217 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd November 29, 2005
-.Dt MQ_RECEIVE 2
-.Os
-.Sh NAME
-.Nm mq_receive , mq_timedreceive
-.Nd "receive a message from message queue (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft ssize_t
-.Fo mq_receive
-.Fa "mqd_t mqdes"
-.Fa "char *msg_ptr"
-.Fa "size_t msg_len"
-.Fa "unsigned *msg_prio"
-.Fc
-.Ft ssize_t
-.Fo mq_timedreceive
-.Fa "mqd_t mqdes"
-.Fa "char *msg_ptr"
-.Fa "size_t msg_len"
-.Fa "unsigned *msg_prio"
-.Fa "const struct timespec *abs_timeout"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn mq_receive
-system call receives oldest of the highest priority message(s) from the
-message queue specified by
-.Fa mqdes .
-If the size of the buffer in bytes, specified by the
-.Fa msg_len
-argument, is less than the
-.Va mq_msgsize
-attribute of the message queue, the system call will fail and return an
-error.
-Otherwise, the selected message will be removed from the queue
-and copied to the buffer pointed to by the
-.Fa msg_ptr
-argument.
-.Pp
-If the argument
-.Fa msg_prio
-is not
-.Dv NULL ,
-the priority of the selected message will be stored in the
-location referenced by
-.Fa msg_prio .
-If the specified message queue is empty and
-.Dv O_NONBLOCK
-is not set in the message queue description associated with
-.Fa mqdes ,
-.Fn mq_receive
-will block until a message is enqueued on the message queue or until
-.Fn mq_receive
-is interrupted by a signal.
-If more than one thread is waiting to receive
-a message when a message arrives at an empty queue and the Priority
-Scheduling option is supported, then the thread of highest priority that
-has been waiting the longest will be selected to receive the message.
-Otherwise, it is unspecified which waiting thread receives the message.
-If the specified message queue is empty and
-.Dv O_NONBLOCK
-is set in the message queue description associated with
-.Fa mqdes ,
-no message
-will be removed from the queue, and
-.Fn mq_receive
-will return an error.
-.Pp
-The
-.Fn mq_timedreceive
-system call will receive the oldest of the highest priority messages from the
-message queue specified by
-.Fa mqdes
-as described for the
-.Fn mq_receive
-system call.
-However, if
-.Dv O_NONBLOCK
-was not specified when the message queue was opened via the
-.Fn mq_open
-system call, and no message exists on the queue to satisfy the receive, the wait
-for such a message will be terminated when the specified timeout expires.
-If
-.Dv O_NONBLOCK
-is set, this system call is equivalent to
-.Fn mq_receive .
-.Pp
-The timeout expires when the absolute time specified by
-.Fa abs_timeout
-passes, as measured by the clock on which timeouts are based (that is, when
-the value of that clock equals or exceeds
-.Fa abs_timeout ) ,
-or if the absolute time specified by
-.Fa abs_timeout
-has already been passed at the time of the call.
-.Pp
-The timeout is based on the
-.Dv CLOCK_REALTIME
-clock.
-.Sh RETURN VALUES
-Upon successful completion, the
-.Fn mq_receive
-and
-.Fn mq_timedreceive
-system calls return the length of the selected message in bytes and the
-message is removed from the queue.
-Otherwise, no message is removed
-from the queue, the system call returns a value of \-1,
-and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn mq_receive
-and
-.Fn mq_timedreceive
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-.Dv O_NONBLOCK
-flag is set in the message queue description associated with
-.Fa mqdes ,
-and the specified message queue is empty.
-.It Bq Er EBADF
-The
-.Fa mqdes
-argument is not a valid message queue descriptor open for reading.
-.It Bq Er EMSGSIZE
-The specified message buffer size,
-.Fa msg_len ,
-is less than the message size attribute of the message queue.
-.It Bq Er EINTR
-The
-.Fn mq_receive
-or
-.Fn mq_timedreceive
-operation was interrupted by a signal.
-.It Bq Er EINVAL
-The process or thread would have blocked, and the
-.Fa abs_timeout
-parameter specified a nanoseconds field value less than zero or greater
-than or equal to 1000 million.
-.It Bq Er ETIMEDOUT
-The
-.Dv O_NONBLOCK
-flag was not set when the message queue was opened, but no message arrived
-on the queue before the specified timeout expired.
-.El
-.Sh SEE ALSO
-.Xr mq_open 2 ,
-.Xr mq_send 2 ,
-.Xr mq_timedsend 2
-.Sh STANDARDS
-The
-.Fn mq_receive
-and
-.Fn mq_timedreceive
-system calls conform to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-message queues first appeared in
-.Fx 7.0 .
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group. In the
-event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document. The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/mq_send.2 b/lib/libc/sys/mq_send.2
deleted file mode 100644
index 6f18b90c14bc..000000000000
--- a/lib/libc/sys/mq_send.2
+++ /dev/null
@@ -1,236 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd November 29, 2005
-.Dt MQ_SEND 2
-.Os
-.Sh NAME
-.Nm mq_send , mq_timedsend
-.Nd "send a message to message queue (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft int
-.Fo mq_send
-.Fa "mqd_t mqdes"
-.Fa "const char *msg_ptr"
-.Fa "size_t msg_len"
-.Fa "unsigned msg_prio"
-.Fc
-.Ft int
-.Fo mq_timedsend
-.Fa "mqd_t mqdes"
-.Fa "const char *msg_ptr"
-.Fa "size_t msg_len"
-.Fa "unsigned msg_prio"
-.Fa "const struct timespec *abs_timeout"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn mq_send
-system call adds the message pointed to by the argument
-.Fa msg_ptr
-to the message queue specified by
-.Fa mqdes .
-The
-.Fa msg_len
-argument specifies the length of the message, in bytes, pointed to by
-.Fa msg_ptr .
-The value of
-.Fa msg_len
-should be less than or equal to the
-.Va mq_msgsize
-attribute of the message queue, or
-.Fn mq_send
-will fail.
-.Pp
-If the specified message queue is not full,
-.Fn mq_send
-will behave as if the message is inserted into the message queue at
-the position indicated by the
-.Fa msg_prio
-argument.
-A message with a larger numeric value of
-.Fa msg_prio
-will be inserted before messages with lower values of
-.Fa msg_prio .
-A message will be inserted after other messages in the queue, if any,
-with equal
-.Fa msg_prio .
-The value of
-.Fa msg_prio
-should be less than
-.Brq Dv MQ_PRIO_MAX .
-.Pp
-If the specified message queue is full and
-.Dv O_NONBLOCK
-is not set in the message queue description associated with
-.Fa mqdes ,
-.Fn mq_send
-will block until space becomes available to enqueue the
-message, or until
-.Fn mq_send
-is interrupted by a signal.
-If more than one thread is
-waiting to send when space becomes available in the message queue and
-the Priority Scheduling option is supported, then the thread of the
-highest priority that has been waiting the longest will be unblocked
-to send its message.
-Otherwise, it is unspecified which waiting thread
-is unblocked.
-If the specified message queue is full and
-.Dv O_NONBLOCK
-is set in the message queue description associated with
-.Fa mqdes ,
-the message will not be queued and
-.Fn mq_send
-will return an error.
-.Pp
-The
-.Fn mq_timedsend
-system call will add a message to the message queue specified by
-.Fa mqdes
-in the manner defined for the
-.Fn mq_send
-system call.
-However, if the specified message queue is full and
-.Dv O_NONBLOCK
-is not set in the message queue description associated with
-.Fa mqdes ,
-the wait for sufficient room in the queue will be terminated when
-the specified timeout expires.
-If
-.Dv O_NONBLOCK
-is set in the message queue description, this system call is
-equivalent to
-.Fn mq_send .
-.Pp
-The timeout will expire when the absolute time specified by
-.Fa abs_timeout
-passes, as measured by the clock on which timeouts are based (that is,
-when the value of that clock equals or exceeds
-.Fa abs_timeout ) ,
-or if the absolute time specified by
-.Fa abs_timeout
-has already been passed at the time of the call.
-.Pp
-The timeout is based on the
-.Dv CLOCK_REALTIME
-clock.
-.Sh RETURN VALUES
-Upon successful completion, the
-.Fn mq_send
-and
-.Fn mq_timedsend
-system calls return a value of zero.
-Otherwise, no message will be
-enqueued, the system calls return \-1, and
-the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn mq_send
-and
-.Fn mq_timedsend
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The
-.Dv O_NONBLOCK
-flag is set in the message queue description associated with
-.Fa mqdes ,
-and the specified message queue is full.
-.It Bq Er EBADF
-The
-.Fa mqdes
-argument is not a valid message queue descriptor open for writing.
-.It Bq Er EINTR
-A signal interrupted the call to
-.Fn mq_send
-or
-.Fn mq_timedsend .
-.It Bq Er EINVAL
-The value of
-.Fa msg_prio
-was outside the valid range.
-.It Bq Er EINVAL
-The process or thread would have blocked, and the
-.Fa abs_timeout
-parameter specified a nanoseconds field value less than zero or greater
-than or equal to 1000 million.
-.It Bq Er EMSGSIZE
-The specified message length,
-.Fa msg_len ,
-exceeds the message size attribute of the message queue.
-.It Bq Er ETIMEDOUT
-The
-.Dv O_NONBLOCK
-flag was not set when the message queue was opened, but the timeout
-expired before the message could be added to the queue.
-.El
-.Sh SEE ALSO
-.Xr mq_open 2 ,
-.Xr mq_receive 2 ,
-.Xr mq_setattr 2 ,
-.Xr mq_timedreceive 2
-.Sh STANDARDS
-The
-.Fn mq_send
-and
-.Fn mq_timedsend
-system calls conform to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-message queues first appeared in
-.Fx 7.0 .
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group. In the
-event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document. The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/mq_setattr.2 b/lib/libc/sys/mq_setattr.2
deleted file mode 100644
index 79e523d6dd75..000000000000
--- a/lib/libc/sys/mq_setattr.2
+++ /dev/null
@@ -1,123 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 17, 2011
-.Dt MQ_SETATTR 2
-.Os
-.Sh NAME
-.Nm mq_setattr
-.Nd "set message queue attributes (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft int
-.Fo mq_setattr
-.Fa "mqd_t mqdes"
-.Fa "const struct mq_attr *restrict mqstat"
-.Fa "struct mq_attr *restrict omqstat"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn mq_setattr
-system call sets attributes associated with the open message queue description
-referenced by the message queue descriptor specified by
-.Fa mqdes .
-The message queue attributes corresponding to the following members defined
-in the
-.Vt mq_attr
-structure will be set to the specified values upon successful completion of
-.Fn mq_setattr :
-.Bl -tag -width ".Va mq_flags"
-.It Va mq_flags
-The value of this member is zero or
-.Dv O_NONBLOCK .
-.El
-.Pp
-The values of the
-.Va mq_maxmsg , mq_msgsize ,
-and
-.Va mq_curmsgs
-members of the
-.Vt mq_attr
-structure are ignored by
-.Fn mq_setattr .
-.Sh RETURN VALUES
-Upon successful completion, the function returns a value of zero and the
-attributes of the message queue will have been changed as specified.
-.Pp
-Otherwise, the message queue attributes are unchanged, and the function
-returns a value of \-1 and sets the global variable
-.Va errno
-to indicate the error.
-.Sh ERRORS
-The
-.Fn mq_setattr
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa mqdes
-argument is not a valid message queue descriptor.
-.El
-.Sh SEE ALSO
-.Xr mq_open 2 ,
-.Xr mq_send 2 ,
-.Xr mq_timedsend 2
-.Sh STANDARDS
-The
-.Fn mq_setattr
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-message queues first appeared in
-.Fx 7.0 .
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group. In the
-event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document. The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/mq_unlink.2 b/lib/libc/sys/mq_unlink.2
deleted file mode 100644
index 15b7018ae368..000000000000
--- a/lib/libc/sys/mq_unlink.2
+++ /dev/null
@@ -1,121 +0,0 @@
-.\" Copyright (c) 2021 Fernando Apesteguia <fernape@FreeBSD.org>
-.\"
-.\" 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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 15, 2021
-.Dt MQ_UNLINK 2
-.Os
-.Sh NAME
-.Nm mq_unlink
-.Nd "mq_unlink - remove a message queue (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In mqueue.h
-.Ft int
-.Fn mq_unlink "const char *name"
-.Sh DESCRIPTION
-The
-.Fn mq_unlink
-function removes the message queue named by the string
-.Fa name .
-If one or more processes have the message queue open when
-.Fn mq_unlink
-is called, destruction of the message queue will be postponed
-until all references to the message queue have been closed.
-However, the
-.Fn mq_unlink
-call need not block until all references have been closed; it may return
-immediately.
-.Pp
-After a successful call to
-.Fn mq_unlink ,
-reuse of the name will subsequently cause
-.Xr mq_open 2
-to behave as if no message queue of this name exists.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn mq_unlink
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EACCESS
-Permission is denied to unlink the message queue represented by
-.Fa name .
-.It Bq Er EINVAL
-.Fa name
-is invalid.
-.It Bq Er ENAMETOOLONG
-The length of the
-.Fa name
-argument exceeds
-.Brq Dv PATH_MAX
-or
-a pathname component is longer than
-.Brq Dv NAME_MAX .
-.It Bq Er ENOENT
-The message queue does not exist.
-.It Bq Er ENOSYS
-.Xr mqueuefs 5
-module is neither loaded nor included in the kernel.
-.El
-.Sh SEE ALSO
-.Xr mq_open 2
-.Sh STANDARDS
-The
-.Fn mq_unlink
-system call conforms to
-.St -p1003.1-2004 .
-The
-.Bq Er EACCESS
-error code is an extension to the standard.
-.Sh HISTORY
-Support for POSIX message queues first appeared in
-.Fx 7.0 .
-.Sh COPYRIGHT
-Portions of this text are reprinted and reproduced in electronic form
-from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-Portable Operating System Interface (POSIX), The Open Group Base
-Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-Electrical and Electronics Engineers, Inc and The Open Group.
-In the event of any discrepancy between this version and the original IEEE and
-The Open Group Standard, the original IEEE and The Open Group Standard is
-the referee document.
-The original Standard can be obtained online at
-http://www.opengroup.org/unix/online.html.
diff --git a/lib/libc/sys/msgctl.2 b/lib/libc/sys/msgctl.2
deleted file mode 100644
index 745b365c4d93..000000000000
--- a/lib/libc/sys/msgctl.2
+++ /dev/null
@@ -1,208 +0,0 @@
-.\" $NetBSD: msgctl.2,v 1.1 1995/10/16 23:49:15 jtc Exp $
-.\"
-.\" Copyright (c) 1995 Frank van der Linden
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed for the NetBSD Project
-.\" by Frank van der Linden
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
-.\"
-.\" $FreeBSD$
-.\"/
-.Dd July 9, 2020
-.Dt MSGCTL 2
-.Os
-.Sh NAME
-.Nm msgctl
-.Nd message control operations
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ipc.h
-.In sys/msg.h
-.Ft int
-.Fn msgctl "int msqid" "int cmd" "struct msqid_ds *buf"
-.Sh DESCRIPTION
-The
-.Fn msgctl
-system call performs some control operations on the message queue specified
-by
-.Fa msqid .
-.Pp
-Each message queue has a data structure associated with it, parts of which
-may be altered by
-.Fn msgctl
-and parts of which determine the actions of
-.Fn msgctl .
-The data structure is defined in
-.In sys/msg.h
-and contains (amongst others) the following members:
-.Bd -literal
-struct msqid_ds {
- struct ipc_perm msg_perm; /* msg queue permission bits */
- msglen_t msg_cbytes; /* number of bytes in use on the queue */
- msgqnum_t msg_qnum; /* number of msgs in the queue */
- msglen_t msg_qbytes; /* max # of bytes on the queue */
- pid_t msg_lspid; /* pid of last msgsnd() */
- pid_t msg_lrpid; /* pid of last msgrcv() */
- time_t msg_stime; /* time of last msgsnd() */
- time_t msg_rtime; /* time of last msgrcv() */
- time_t msg_ctime; /* time of last msgctl() */
-};
-.Ed
-.Pp
-The
-.Vt ipc_perm
-structure used inside the
-.Vt msqid_ds
-structure is defined in
-.In sys/ipc.h
-and looks like this:
-.Bd -literal
-struct ipc_perm {
- uid_t cuid; /* creator user id */
- gid_t cgid; /* creator group id */
- uid_t uid; /* user id */
- gid_t gid; /* group id */
- mode_t mode; /* r/w permission */
- unsigned short seq; /* sequence # (to generate unique ipcid) */
- key_t key; /* user specified msg/sem/shm key */
-};
-.Ed
-.Pp
-The operation to be performed by
-.Fn msgctl
-is specified in
-.Fa cmd
-and is one of:
-.Bl -tag -width IPC_RMIDX
-.It Dv IPC_STAT
-Gather information about the message queue and place it in the
-structure pointed to by
-.Fa buf .
-.It Dv IPC_SET
-Set the value of the
-.Va msg_perm.uid ,
-.Va msg_perm.gid ,
-.Va msg_perm.mode
-and
-.Va msg_qbytes
-fields in the structure associated with
-.Fa msqid .
-The values are taken from the corresponding fields in the structure
-pointed to by
-.Fa buf .
-This operation can only be executed by the super-user, or a process that
-has an effective user id equal to either
-.Va msg_perm.cuid
-or
-.Va msg_perm.uid
-in the data structure associated with the message queue.
-The value of
-.Va msg_qbytes
-can only be increased by the super-user.
-Values for
-.Va msg_qbytes
-that exceed the system limit (MSGMNB from
-.In sys/msg.h )
-are silently truncated to that limit.
-.It Dv IPC_RMID
-Remove the message queue specified by
-.Fa msqid
-and destroy the data associated with it.
-Only the super-user or a process
-with an effective uid equal to the
-.Va msg_perm.cuid
-or
-.Va msg_perm.uid
-values in the data structure associated with the queue can do this.
-.El
-.Pp
-The permission to read from or write to a message queue (see
-.Xr msgsnd 2
-and
-.Xr msgrcv 2 )
-is determined by the
-.Va msg_perm.mode
-field in the same way as is
-done with files (see
-.Xr chmod 2 ) ,
-but the effective uid can match either the
-.Va msg_perm.cuid
-field or the
-.Va msg_perm.uid
-field, and the
-effective gid can match either
-.Va msg_perm.cgid
-or
-.Va msg_perm.gid .
-.Sh RETURN VALUES
-.Rv -std msgctl
-.Sh ERRORS
-The
-.Fn msgctl
-function
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The
-.Fa cmd
-argument
-is equal to IPC_SET or IPC_RMID and the caller is not the super-user, nor does
-the effective uid match either the
-.Va msg_perm.uid
-or
-.Va msg_perm.cuid
-fields of the data structure associated with the message queue.
-.Pp
-An attempt is made to increase the value of
-.Va msg_qbytes
-through IPC_SET
-but the caller is not the super-user.
-.It Bq Er EACCES
-The command is IPC_STAT
-and the caller has no read permission for this message queue.
-.It Bq Er EINVAL
-The
-.Fa msqid
-argument
-is not a valid message queue identifier.
-.Pp
-.Va cmd
-is not a valid command.
-.It Bq Er EFAULT
-The
-.Fa buf
-argument
-specifies an invalid address.
-.El
-.Sh SEE ALSO
-.Xr msgget 2 ,
-.Xr msgrcv 2 ,
-.Xr msgsnd 2
-.Sh HISTORY
-Message queues appeared in the first release of
-.At V .
diff --git a/lib/libc/sys/msgget.2 b/lib/libc/sys/msgget.2
deleted file mode 100644
index fb1a486fc2ec..000000000000
--- a/lib/libc/sys/msgget.2
+++ /dev/null
@@ -1,154 +0,0 @@
-.\" $NetBSD: msgget.2,v 1.1 1995/10/16 23:49:19 jtc Exp $
-.\"
-.\" Copyright (c) 1995 Frank van der Linden
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed for the NetBSD Project
-.\" by Frank van der Linden
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
-.\" $FreeBSD$
-.\"
-.\"/
-.Dd March 4, 2018
-.Dt MSGGET 2
-.Os
-.Sh NAME
-.Nm msgget
-.Nd get message queue
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/msg.h
-.Ft int
-.Fn msgget "key_t key" "int msgflg"
-.Sh DESCRIPTION
-The
-.Fn msgget
-function
-returns the message queue identifier associated with
-.Fa key .
-A message queue identifier is a unique integer greater than zero.
-.Pp
-A message queue is created if either
-.Fa key
-is equal to
-.Dv IPC_PRIVATE ,
-or
-.Fa key
-does not have a message queue identifier associated with it, and the
-.Dv IPC_CREAT
-bit is set in
-.Fa msgflg .
-.Pp
-If a new message queue is created, the data structure associated with it (the
-.Va msqid_ds
-structure, see
-.Xr msgctl 2 )
-is initialized as follows:
-.Bl -bullet
-.It
-.Va msg_perm.cuid
-and
-.Va msg_perm.uid
-are set to the effective uid of the calling process.
-.It
-.Va msg_perm.gid
-and
-.Va msg_perm.cgid
-are set to the effective gid of the calling process.
-.It
-.Va msg_perm.mode
-is set to the lower 9 bits of
-.Fa msgflg
-which are set by ORing these constants:
-.Bl -tag -width 0000
-.It Dv 0400
-Read access for user.
-.It Dv 0200
-Write access for user.
-.It Dv 0040
-Read access for group.
-.It Dv 0020
-Write access for group.
-.It Dv 0004
-Read access for other.
-.It Dv 0002
-Write access for other.
-.El
-.It
-.Va msg_cbytes ,
-.Va msg_qnum ,
-.Va msg_lspid ,
-.Va msg_lrpid ,
-.Va msg_rtime ,
-and
-.Va msg_stime
-are set to 0.
-.It
-.Va msg_qbytes
-is set to the system wide maximum value for the number of bytes in a queue
-.Pf ( Dv MSGMNB ) .
-.It
-.Va msg_ctime
-is set to the current time.
-.El
-.Sh RETURN VALUES
-Upon successful completion a positive message queue identifier is returned.
-Otherwise, -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EACCES
-A message queue is already associated with
-.Fa key
-and the caller has no permission to access it.
-.It Bq Er EEXIST
-Both
-.Dv IPC_CREAT
-and
-.Dv IPC_EXCL
-are set in
-.Fa msgflg ,
-and a message queue is already associated with
-.Fa key .
-.It Bq Er ENOSPC
-A new message queue could not be created because the system limit for
-the number of message queues has been reached.
-.It Bq Er ENOENT
-.Dv IPC_CREAT
-was not set in
-.Fa msgflg
-and no message queue associated with
-.Fa key
-was found.
-.El
-.Sh SEE ALSO
-.Xr msgctl 2 ,
-.Xr msgrcv 2 ,
-.Xr msgsnd 2
-.Sh HISTORY
-Message queues appeared in the first release of
-.At V .
diff --git a/lib/libc/sys/msgrcv.2 b/lib/libc/sys/msgrcv.2
deleted file mode 100644
index 59eeec42f2d5..000000000000
--- a/lib/libc/sys/msgrcv.2
+++ /dev/null
@@ -1,222 +0,0 @@
-.\" $NetBSD: msgrcv.2,v 1.1 1995/10/16 23:49:20 jtc Exp $
-.\"
-.\" Copyright (c) 1995 Frank van der Linden
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed for the NetBSD Project
-.\" by Frank van der Linden
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
-.\" $FreeBSD$
-.\"
-.\"/
-.Dd July 28, 2016
-.Dt MSGRCV 2
-.Os
-.Sh NAME
-.Nm msgrcv
-.Nd receive a message from a message queue
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ipc.h
-.In sys/msg.h
-.Ft ssize_t
-.Fn msgrcv "int msqid" "void *msgp" "size_t msgsz" "long msgtyp" "int msgflg"
-.Sh DESCRIPTION
-The
-.Fn msgrcv
-function receives a message from the message queue specified in
-.Fa msqid ,
-and places it into the structure pointed to by
-.Fa msgp .
-This structure should consist of the following members:
-.Bd -literal
- long mtype; /* message type */
- char mtext[1]; /* body of message */
-.Ed
-.Pp
-.Va mtype
-is an integer greater than 0 that can be used for selecting messages,
-.Va mtext
-is an array of bytes, with a size up to that of the system limit
-.Pf ( Dv MSGMAX ) .
-.Pp
-The value of
-.Fa msgtyp
-has one of the following meanings:
-.Bl -bullet
-.It
-The
-.Fa msgtyp
-argument
-is greater than 0.
-The first message of type
-.Fa msgtyp
-will be received.
-.It
-The
-.Fa msgtyp
-argument
-is equal to 0.
-The first message on the queue will be received.
-.It
-The
-.Fa msgtyp
-argument
-is less than 0.
-The first message of the lowest message type that is
-less than or equal to the absolute value of
-.Fa msgtyp
-will be received.
-.El
-.Pp
-The
-.Fa msgsz
-argument
-specifies the maximum length of the requested message.
-If the received
-message has a length greater than
-.Fa msgsz
-it will be silently truncated if the
-.Dv MSG_NOERROR
-flag is set in
-.Fa msgflg ,
-otherwise an error will be returned.
-.Pp
-If no matching message is present on the message queue specified by
-.Fa msqid ,
-the behavior of
-.Fn msgrcv
-depends on whether the
-.Dv IPC_NOWAIT
-flag is set in
-.Fa msgflg
-or not.
-If
-.Dv IPC_NOWAIT
-is set,
-.Fn msgrcv
-will immediately return a value of -1, and set
-.Va errno
-to
-.Er ENOMSG .
-If
-.Dv IPC_NOWAIT
-is not set, the calling process will be blocked
-until:
-.Bl -bullet
-.It
-A message of the requested type becomes available on the message queue.
-.It
-The message queue is removed, in which case -1 will be returned, and
-.Va errno
-set to
-.Er EINVAL .
-.It
-A signal is received and caught.
--1 is returned, and
-.Va errno
-set to
-.Er EINTR .
-.El
-.Pp
-If a message is successfully received, the data structure associated with
-.Fa msqid
-is updated as follows:
-.Bl -bullet
-.It
-.Va msg_cbytes
-is decremented by the size of the message.
-.It
-.Va msg_lrpid
-is set to the pid of the caller.
-.It
-.Va msg_lrtime
-is set to the current time.
-.It
-.Va msg_qnum
-is decremented by 1.
-.El
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn msgrcv
-returns the number of bytes received into the
-.Va mtext
-field of the structure pointed to by
-.Fa msgp .
-Otherwise, -1 is returned, and
-.Va errno
-set to indicate the error.
-.Sh ERRORS
-The
-.Fn msgrcv
-function
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa msqid
-argument
-is not a valid message queue identifier.
-.Pp
-The message queue was removed while
-.Fn msgrcv
-was waiting for a message of the requested type to become available on it.
-.Pp
-The
-.Fa msgsz
-argument
-is less than 0.
-.It Bq Er E2BIG
-A matching message was received, but its size was greater than
-.Fa msgsz
-and the
-.Dv MSG_NOERROR
-flag was not set in
-.Fa msgflg .
-.It Bq Er EACCES
-The calling process does not have read access to the message queue.
-.It Bq Er EFAULT
-The
-.Fa msgp
-argument
-points to an invalid address.
-.It Bq Er EINTR
-The system call was interrupted by the delivery of a signal.
-.It Bq Er ENOMSG
-There is no message of the requested type available on the message queue,
-and
-.Dv IPC_NOWAIT
-is set in
-.Fa msgflg .
-.El
-.Sh SEE ALSO
-.Xr msgctl 2 ,
-.Xr msgget 2 ,
-.Xr msgsnd 2
-.Sh HISTORY
-Message queues appeared in the first release of
-.At V .
diff --git a/lib/libc/sys/msgsnd.2 b/lib/libc/sys/msgsnd.2
deleted file mode 100644
index 051c9922e58c..000000000000
--- a/lib/libc/sys/msgsnd.2
+++ /dev/null
@@ -1,184 +0,0 @@
-.\" $NetBSD: msgsnd.2,v 1.1 1995/10/16 23:49:24 jtc Exp $
-.\"
-.\" Copyright (c) 1995 Frank van der Linden
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed for the NetBSD Project
-.\" by Frank van der Linden
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 9, 2009
-.Dt MSGSND 2
-.Os
-.Sh NAME
-.Nm msgsnd
-.Nd send a message to a message queue
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ipc.h
-.In sys/msg.h
-.Ft int
-.Fn msgsnd "int msqid" "const void *msgp" "size_t msgsz" "int msgflg"
-.Sh DESCRIPTION
-The
-.Fn msgsnd
-function sends a message to the message queue specified in
-.Fa msqid .
-The
-.Fa msgp
-argument
-points to a structure containing the message.
-This structure should
-consist of the following members:
-.Bd -literal
- long mtype; /* message type */
- char mtext[1]; /* body of message */
-.Ed
-.Pp
-.Va mtype
-is an integer greater than 0 that can be used for selecting messages (see
-.Xr msgrcv 2 ) ,
-.Va mtext
-is an array of
-.Fa msgsz
-bytes.
-The argument
-.Fa msgsz
-can range from 0 to a system-imposed maximum,
-.Dv MSGMAX .
-.Pp
-If the number of bytes already on the message queue plus
-.Fa msgsz
-is bigger than the maximum number of bytes on the message queue
-.Pf ( Va msg_qbytes ,
-see
-.Xr msgctl 2 ) ,
-or the number of messages on all queues system-wide is already equal to
-the system limit,
-.Fa msgflg
-determines the action of
-.Fn msgsnd .
-If
-.Fa msgflg
-has
-.Dv IPC_NOWAIT
-mask set in it, the call will return immediately.
-If
-.Fa msgflg
-does not have
-.Dv IPC_NOWAIT
-set in it, the call will block until:
-.Bl -bullet
-.It
-The condition which caused the call to block does no longer exist.
-The message will be sent.
-.It
-The message queue is removed, in which case -1 will be returned, and
-.Va errno
-is set to
-.Er EINVAL .
-.It
-The caller catches a signal.
-The call returns with
-.Va errno
-set to
-.Er EINTR .
-.El
-.Pp
-After a successful call, the data structure associated with the message
-queue is updated in the following way:
-.Bl -bullet
-.It
-.Va msg_cbytes
-is incremented by the size of the message.
-.It
-.Va msg_qnum
-is incremented by 1.
-.It
-.Va msg_lspid
-is set to the pid of the calling process.
-.It
-.Va msg_stime
-is set to the current time.
-.El
-.Sh RETURN VALUES
-.Rv -std msgsnd
-.Sh ERRORS
-The
-.Fn msgsnd
-function
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa msqid
-argument
-is not a valid message queue identifier.
-.Pp
-The message queue was removed while
-.Fn msgsnd
-was waiting for a resource to become available in order to deliver the
-message.
-.Pp
-The
-.Fa msgsz
-argument
-is greater than
-.Va msg_qbytes .
-.Pp
-The
-.Fa mtype
-argument
-is not greater than 0.
-.It Bq Er EACCES
-The calling process does not have write access to the message queue.
-.It Bq Er EAGAIN
-There was no space for this message either on the queue, or in the whole
-system, and
-.Dv IPC_NOWAIT
-was set in
-.Fa msgflg .
-.It Bq Er EFAULT
-The
-.Fa msgp
-argument
-points to an invalid address.
-.It Bq Er EINTR
-The system call was interrupted by the delivery of a signal.
-.El
-.Sh HISTORY
-Message queues appeared in the first release of AT&T Unix System V.
-.Sh BUGS
-.Nx
-and
-.Fx
-do not define the
-.Er EIDRM
-error value, which should be used
-in the case of a removed message queue.
diff --git a/lib/libc/sys/msync.2 b/lib/libc/sys/msync.2
deleted file mode 100644
index 94eb50f8c813..000000000000
--- a/lib/libc/sys/msync.2
+++ /dev/null
@@ -1,126 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)msync.2 8.2 (Berkeley) 6/21/94
-.\" $FreeBSD$
-.\"
-.Dd March 18, 2012
-.Dt MSYNC 2
-.Os
-.Sh NAME
-.Nm msync
-.Nd synchronize a mapped region
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn msync "void *addr" "size_t len" "int flags"
-.Sh DESCRIPTION
-The
-.Fn msync
-system call
-writes any modified pages back to the file system and updates
-the file modification time.
-If
-.Fa len
-is 0, all modified pages within the region containing
-.Fa addr
-will be flushed;
-if
-.Fa len
-is non-zero, only those pages containing
-.Fa addr
-and
-.Fa len-1
-succeeding locations will be examined.
-The
-.Fa flags
-argument may be specified as follows:
-.Pp
-.Bl -tag -width ".Dv MS_INVALIDATE" -compact
-.It Dv MS_ASYNC
-Return immediately
-.It Dv MS_SYNC
-Perform synchronous writes
-.It Dv MS_INVALIDATE
-Invalidate all cached data
-.El
-.Sh RETURN VALUES
-.Rv -std msync
-.Sh ERRORS
-The
-.Fn msync
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBUSY
-Some or all of the pages in the specified region are locked and
-.Dv MS_INVALIDATE
-is specified.
-.It Bq Er EINVAL
-The
-.Fa addr
-argument
-is not a multiple of the hardware page size.
-.It Bq Er ENOMEM
-The addresses in the range starting at
-.Fa addr
-and continuing for
-.Fa len
-bytes are outside the range allowed for the address space of a
-process or specify one or more pages that are not mapped.
-.It Bq Er EINVAL
-The
-.Fa flags
-argument
-was both MS_ASYNC and MS_INVALIDATE.
-Only one of these flags is allowed.
-.It Bq Er EIO
-An error occurred while writing at least one of the pages in
-the specified region.
-.El
-.Sh SEE ALSO
-.Xr madvise 2 ,
-.Xr mincore 2 ,
-.Xr mlock 2 ,
-.Xr mprotect 2 ,
-.Xr munmap 2
-.Sh HISTORY
-The
-.Fn msync
-system call first appeared in
-.Bx 4.4 .
-.Sh BUGS
-The
-.Fn msync
-system call is usually not needed since
-.Bx
-implements a coherent file system buffer cache.
-However, it may be used to associate dirty VM pages with file system
-buffers and thus cause them to be flushed to physical media sooner
-rather than later.
diff --git a/lib/libc/sys/msync.c b/lib/libc/sys/msync.c
index d86cc0462dd8..f825db97b947 100644
--- a/lib/libc/sys/msync.c
+++ b/lib/libc/sys/msync.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/types.h>
#include <sys/fcntl.h>
#include <sys/mman.h>
@@ -44,7 +40,5 @@ __weak_reference(__sys_msync, __msync);
int
msync(void *addr, size_t len, int flags)
{
-
- return (((int (*)(void *, size_t, int))
- __libc_interposing[INTERPOS_msync])(addr, len, flags));
+ return (INTERPOS_SYS(msync, addr, len, flags));
}
diff --git a/lib/libc/sys/munmap.2 b/lib/libc/sys/munmap.2
deleted file mode 100644
index d050db0f3fac..000000000000
--- a/lib/libc/sys/munmap.2
+++ /dev/null
@@ -1,78 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)munmap.2 8.3 (Berkeley) 5/27/94
-.\" $FreeBSD$
-.\"
-.Dd June 22, 2017
-.Dt MUNMAP 2
-.Os
-.Sh NAME
-.Nm munmap
-.Nd remove a mapping
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/mman.h
-.Ft int
-.Fn munmap "void *addr" "size_t len"
-.Sh DESCRIPTION
-The
-.Fn munmap
-system call
-deletes the mappings and guards for the specified address range,
-and causes further references to addresses within the range
-to generate invalid memory references.
-.Sh RETURN VALUES
-.Rv -std munmap
-.Sh ERRORS
-The
-.Fn munmap
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa addr
-argument was not page aligned, the
-.Fa len
-argument was zero or negative, or
-some part of the region being unmapped is outside the
-valid address range for a process.
-.El
-.Sh "SEE ALSO"
-.Xr madvise 2 ,
-.Xr mincore 2 ,
-.Xr mmap 2 ,
-.Xr mprotect 2 ,
-.Xr msync 2 ,
-.Xr getpagesize 3
-.Sh HISTORY
-The
-.Fn munmap
-system call first appeared in
-.Bx 4.4 .
diff --git a/lib/libc/sys/nanosleep.2 b/lib/libc/sys/nanosleep.2
deleted file mode 100644
index dbc4f3248b27..000000000000
--- a/lib/libc/sys/nanosleep.2
+++ /dev/null
@@ -1,222 +0,0 @@
-.\" $NetBSD: nanosleep.2,v 1.23 2016/11/14 10:40:59 wiz Exp $
-.\"
-.\" Copyright (c) 1986, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)sleep.3 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd April 3, 2022
-.Dt NANOSLEEP 2
-.Os
-.Sh NAME
-.Nm nanosleep
-.Nd high resolution sleep
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In time.h
-.Ft int
-.Fo clock_nanosleep
-.Fa "clockid_t clock_id"
-.Fa "int flags"
-.Fa "const struct timespec *rqtp"
-.Fa "struct timespec *rmtp"
-.Fc
-.Ft int
-.Fo nanosleep
-.Fa "const struct timespec *rqtp"
-.Fa "struct timespec *rmtp"
-.Fc
-.Sh DESCRIPTION
-If the
-.Dv TIMER_ABSTIME
-flag is not set in the
-.Fa flags
-argument, then
-.Fn clock_nanosleep
-suspends execution of the calling thread until either the
-time interval specified by the
-.Fa rqtp
-argument has elapsed,
-or a signal is delivered to the calling process and its
-action is to invoke a signal-catching function or to terminate the
-process.
-The clock used to measure the time is specified by the
-.Fa clock_id
-argument.
-.Pp
-If the
-.Dv TIMER_ABSTIME
-flag is set in the
-.Fa flags
-argument, then
-.Fn clock_nanosleep
-suspends execution of the calling thread until either the value
-of the clock specified by the
-.Fa clock_id
-argument reaches the absolute time specified by the
-.Fa rqtp
-argument,
-or a signal is delivered to the calling process and its
-action is to invoke a signal-catching function or to terminate the
-process.
-If, at the time of the call, the time value specified by
-.Fa rqtp
-is less than or equal to the time value of the specified clock, then
-.Fn clock_nanosleep
-returns immediately and the calling thread is not suspended.
-.Pp
-The suspension time may be longer than requested due to the
-scheduling of other activity by the system.
-It is also subject to the allowed time interval deviation
-specified by the
-.Va kern.timecounter.alloweddeviation
-.Xr sysctl 8
-variable.
-An unmasked signal will terminate the sleep early, regardless of the
-.Dv SA_RESTART
-value on the interrupting signal.
-The
-.Fa rqtp
-and
-.Fa rmtp
-arguments can point to the same object.
-.Pp
-The following
-.Fa clock_id
-values are supported:
-.Pp
-.Bl -item -compact -offset indent
-.It
-CLOCK_MONOTONIC
-.It
-CLOCK_MONOTONIC_FAST
-.It
-CLOCK_MONOTONIC_PRECISE
-.It
-CLOCK_REALTIME
-.It
-CLOCK_REALTIME_FAST
-.It
-CLOCK_REALTIME_PRECISE
-.It
-CLOCK_SECOND
-.It
-CLOCK_UPTIME
-.It
-CLOCK_UPTIME_FAST
-.It
-CLOCK_UPTIME_PRECISE
-.El
-.Pp
-The
-.Fn nanosleep
-function behaves like
-.Fn clock_nanosleep
-with a
-.Fa clock_id
-argument of
-.Dv CLOCK_REALTIME
-and without the
-.Dv TIMER_ABSTIME
-flag in the
-.Fa flags
-argument.
-.Sh RETURN VALUES
-These functions return zero when the requested time has elapsed.
-.Pp
-If these functions return for any other reason, then
-.Fn clock_nanosleep
-will directly return the error number, and
-.Fn nanosleep
-will return \-1 with the global variable
-.Va errno
-set to indicate the error.
-If a relative sleep is interrupted by a signal and
-.Fa rmtp
-is
-.Pf non- Dv NULL ,
-the timespec structure it references is updated to contain the
-unslept amount (the request time minus the time actually slept).
-.Sh ERRORS
-These functions can fail with the following errors.
-.Bl -tag -width Er
-.It Bq Er EFAULT
-Either
-.Fa rqtp
-or
-.Fa rmtp
-points to memory that is not a valid part of the process
-address space.
-.It Bq Er EINTR
-The function was interrupted by the delivery of a signal.
-.It Bq Er EINVAL
-The
-.Fa rqtp
-argument specified a nanosecond value less than zero
-or greater than or equal to 1000 million.
-.It Bq Er EINVAL
-The
-.Fa flags
-argument contained an invalid flag.
-.It Bq Er EINVAL
-The
-.Fa clock_id
-argument was
-.Dv CLOCK_THREAD_CPUTIME_ID
-or an unrecognized value.
-.It Bq Er ENOTSUP
-The
-.Fa clock_id
-argument was valid but not supported by this implementation of
-.Fn clock_nanosleep .
-.El
-.Sh SEE ALSO
-.Xr clock_gettime 2 ,
-.Xr sigaction 2 ,
-.Xr sleep 3
-.Sh STANDARDS
-These functions conform to
-.St -p1003.1-2008 .
-.Sh HISTORY
-The predecessor of this system call,
-.Fn sleep ,
-appeared in
-.At v3 ,
-but was removed when
-.Xr alarm 3
-was introduced into
-.At v7 .
-The
-.Fn nanosleep
-system call has been available since
-.Nx 1.3
-and was ported to
-.Ox 2.1
-and
-.Fx 3.0 .
diff --git a/lib/libc/sys/nanosleep.c b/lib/libc/sys/nanosleep.c
index 412b05e778b0..bd0794c3af8e 100644
--- a/lib/libc/sys/nanosleep.c
+++ b/lib/libc/sys/nanosleep.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -43,7 +39,5 @@ __weak_reference(__sys_nanosleep, __nanosleep);
int
nanosleep(const struct timespec *rqtp, struct timespec *rmtp)
{
-
- return (((int (*)(const struct timespec *, struct timespec *))
- __libc_interposing[INTERPOS_nanosleep])(rqtp, rmtp));
+ return (INTERPOS_SYS(nanosleep, rqtp, rmtp));
}
diff --git a/lib/libc/sys/nfssvc.2 b/lib/libc/sys/nfssvc.2
deleted file mode 100644
index ef7f6f64c51e..000000000000
--- a/lib/libc/sys/nfssvc.2
+++ /dev/null
@@ -1,258 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)nfssvc.2 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd June 9, 1993
-.Dt NFSSVC 2
-.Os
-.Sh NAME
-.Nm nfssvc
-.Nd NFS services
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/mount.h
-.In sys/time.h
-.In nfs/rpcv2.h
-.In nfsserver/nfs.h
-.In unistd.h
-.Ft int
-.Fn nfssvc "int flags" "void *argstructp"
-.Sh DESCRIPTION
-The
-.Fn nfssvc
-system call is used by the NFS daemons to pass information into and out
-of the kernel and also to enter the kernel as a server daemon.
-The
-.Fa flags
-argument consists of several bits that show what action is to be taken
-once in the kernel and the
-.Fa argstructp
-points to one of three structures depending on which bits are set in
-flags.
-.Pp
-On the client side,
-.Xr nfsiod 8
-calls
-.Fn nfssvc
-with the
-.Fa flags
-argument set to
-.Dv NFSSVC_BIOD
-and
-.Fa argstructp
-set to
-.Dv NULL
-to enter the kernel as a block I/O server daemon.
-For
-.Tn NQNFS ,
-.Xr mount_nfs 8
-calls
-.Fn nfssvc
-with the
-.Dv NFSSVC_MNTD
-flag, optionally or'd with the flags
-.Dv NFSSVC_GOTAUTH
-and
-.Dv NFSSVC_AUTHINFAIL
-along with a pointer to a
-.Bd -literal
-struct nfsd_cargs {
- char *ncd_dirp; /* Mount dir path */
- uid_t ncd_authuid; /* Effective uid */
- int ncd_authtype; /* Type of authenticator */
- int ncd_authlen; /* Length of authenticator string */
- u_char *ncd_authstr; /* Authenticator string */
- int ncd_verflen; /* and the verifier */
- u_char *ncd_verfstr;
- NFSKERBKEY_T ncd_key; /* Session key */
-};
-.Ed
-.Pp
-structure.
-The initial call has only the
-.Dv NFSSVC_MNTD
-flag set to specify service for the mount point.
-If the mount point is using Kerberos, then the
-.Xr mount_nfs 8
-utility will return from
-.Fn nfssvc
-with
-.Va errno
-==
-.Er ENEEDAUTH
-whenever the client side requires an ``rcmd''
-authentication ticket for the user.
-The
-.Xr mount_nfs 8
-utility will attempt to get the Kerberos ticket, and if successful will call
-.Fn nfssvc
-with the flags
-.Dv NFSSVC_MNTD
-and
-.Dv NFSSVC_GOTAUTH
-after filling the ticket into the
-ncd_authstr field
-and
-setting the ncd_authlen and ncd_authtype
-fields of the nfsd_cargs structure.
-If
-.Xr mount_nfs 8
-failed to get the ticket,
-.Fn nfssvc
-will be called with the flags
-.Dv NFSSVC_MNTD ,
-.Dv NFSSVC_GOTAUTH
-and
-.Dv NFSSVC_AUTHINFAIL
-to denote a failed authentication attempt.
-.Pp
-On the server side,
-.Fn nfssvc
-is called with the flag
-.Dv NFSSVC_NFSD
-and a pointer to a
-.Bd -literal
-struct nfsd_srvargs {
- struct nfsd *nsd_nfsd; /* Pointer to in kernel nfsd struct */
- uid_t nsd_uid; /* Effective uid mapped to cred */
- uint32_t nsd_haddr; /* Ip address of client */
- struct ucred nsd_cr; /* Cred. uid maps to */
- int nsd_authlen; /* Length of auth string (ret) */
- u_char *nsd_authstr; /* Auth string (ret) */
- int nsd_verflen; /* and the verifier */
- u_char *nsd_verfstr;
- struct timeval nsd_timestamp; /* timestamp from verifier */
- uint32_t nsd_ttl; /* credential ttl (sec) */
- NFSKERBKEY_T nsd_key; /* Session key */
-};
-.Ed
-.Pp
-to enter the kernel as an
-.Xr nfsd 8
-daemon.
-Whenever an
-.Xr nfsd 8
-daemon receives a Kerberos authentication ticket, it will return from
-.Fn nfssvc
-with
-.Va errno
-==
-.Er ENEEDAUTH .
-The
-.Xr nfsd 8
-utility will attempt to authenticate the ticket and generate a set of credentials
-on the server for the ``user id'' specified in the field nsd_uid.
-This is done by first authenticating the Kerberos ticket and then mapping
-the Kerberos principal to a local name and getting a set of credentials for
-that user via
-.Xr getpwnam 3
-and
-.Xr getgrouplist 3 .
-If successful, the
-.Xr nfsd 8
-utility will call
-.Fn nfssvc
-with the
-.Dv NFSSVC_NFSD
-and
-.Dv NFSSVC_AUTHIN
-flags set to pass the credential mapping in nsd_cr into the
-kernel to be cached on the server socket for that client.
-If the authentication failed,
-.Xr nfsd 8
-calls
-.Fn nfssvc
-with the flags
-.Dv NFSSVC_NFSD
-and
-.Dv NFSSVC_AUTHINFAIL
-to denote an authentication failure.
-.Pp
-The master
-.Xr nfsd 8
-server daemon calls
-.Fn nfssvc
-with the flag
-.Dv NFSSVC_ADDSOCK
-and a pointer to a
-.Bd -literal
-struct nfsd_args {
- int sock; /* Socket to serve */
- caddr_t name; /* Client address for connection based sockets */
- int namelen;/* Length of name */
-};
-.Ed
-.Pp
-to pass a server side
-.Tn NFS
-socket into the kernel for servicing by the
-.Xr nfsd 8
-daemons.
-.Sh RETURN VALUES
-Normally
-.Fn nfssvc
-does not return unless the server
-is terminated by a signal when a value of 0 is returned.
-Otherwise, -1 is returned and the global variable
-.Va errno
-is set to specify the error.
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er ENEEDAUTH
-This special error value
-is really used for authentication support, particularly Kerberos,
-as explained above.
-.It Bq Er EPERM
-The caller is not the super-user.
-.El
-.Sh SEE ALSO
-.Xr mount_nfs 8 ,
-.Xr nfsd 8 ,
-.Xr nfsiod 8
-.Sh HISTORY
-The
-.Fn nfssvc
-system call first appeared in
-.Bx 4.4 .
-.Sh BUGS
-The
-.Fn nfssvc
-system call is designed specifically for the
-.Tn NFS
-support daemons and as such is specific to their requirements.
-It should really return values to indicate the need for authentication
-support, since
-.Er ENEEDAUTH
-is not really an error.
-Several fields of the argument structures are assumed to be valid and
-sometimes to be unchanged from a previous call, such that
-.Fn nfssvc
-must be used with extreme care.
diff --git a/lib/libc/sys/ntp_adjtime.2 b/lib/libc/sys/ntp_adjtime.2
deleted file mode 100644
index 8ce78e7fb86e..000000000000
--- a/lib/libc/sys/ntp_adjtime.2
+++ /dev/null
@@ -1,315 +0,0 @@
-.\" $NetBSD: ntp_adjtime.2,v 1.6 2003/04/16 13:34:55 wiz Exp $
-.\"
-.\" Copyright (c) 2001 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This code is derived from software contributed to The NetBSD Foundation
-.\" by Thomas Klausner.
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 13, 2005
-.Dt NTP_ADJTIME 2
-.Os
-.Sh NAME
-.Nm ntp_adjtime ,
-.Nm ntp_gettime
-.Nd Network Time Protocol (NTP) daemon interface system calls
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/timex.h
-.Ft int
-.Fn ntp_adjtime "struct timex *"
-.Ft int
-.Fn ntp_gettime "struct ntptimeval *"
-.Sh DESCRIPTION
-The two system calls
-.Fn ntp_adjtime
-and
-.Fn ntp_gettime
-are the kernel interface to the Network Time Protocol (NTP) daemon
-.Xr ntpd 8 .
-.Pp
-The
-.Fn ntp_adjtime
-function is used by the NTP daemon to adjust the system clock to an
-externally derived time.
-The time offset and related variables which are set by
-.Fn ntp_adjtime
-are used by
-.Fn hardclock
-to adjust the phase and frequency of the phase- or frequency-lock loop
-(PLL resp. FLL) which controls the system clock.
-.Pp
-The
-.Fn ntp_gettime
-function provides the time, maximum error (sync distance) and
-estimated error (dispersion) to client user application programs.
-.Pp
-In the following, all variables that refer PPS are only relevant if
-the
-.Em PPS_SYNC
-option is enabled in the kernel.
-.Pp
-.Fn ntp_adjtime
-has as argument a
-.Va struct timex *
-of the following form:
-.Bd -literal
-struct timex {
- unsigned int modes; /* clock mode bits (wo) */
- long offset; /* time offset (us) (rw) */
- long freq; /* frequency offset (scaled ppm) (rw) */
- long maxerror; /* maximum error (us) (rw) */
- long esterror; /* estimated error (us) (rw) */
- int status; /* clock status bits (rw) */
- long constant; /* pll time constant (rw) */
- long precision; /* clock precision (us) (ro) */
- long tolerance; /* clock frequency tolerance (scaled
- * ppm) (ro) */
- /*
- * The following read-only structure members are implemented
- * only if the PPS signal discipline is configured in the
- * kernel.
- */
- long ppsfreq; /* pps frequency (scaled ppm) (ro) */
- long jitter; /* pps jitter (us) (ro) */
- int shift; /* interval duration (s) (shift) (ro) */
- long stabil; /* pps stability (scaled ppm) (ro) */
- long jitcnt; /* jitter limit exceeded (ro) */
- long calcnt; /* calibration intervals (ro) */
- long errcnt; /* calibration errors (ro) */
- long stbcnt; /* stability limit exceeded (ro) */
-};
-.Ed
-.Pp
-The members of this struct have the following meanings when used as
-argument for
-.Fn ntp_adjtime :
-.Bl -tag -width tolerance -compact
-.It Fa modes
-Defines what settings should be changed with the current
-.Fn ntp_adjtime
-call (write-only).
-Bitwise OR of the following:
-.Bl -tag -width MOD_TIMECONST -compact -offset indent
-.It MOD_OFFSET
-set time offset
-.It MOD_FREQUENCY
-set frequency offset
-.It MOD_MAXERROR
-set maximum time error
-.It MOD_ESTERROR
-set estimated time error
-.It MOD_STATUS
-set clock status bits
-.It MOD_TIMECONST
-set PLL time constant
-.It MOD_CLKA
-set clock A
-.It MOD_CLKB
-set clock B
-.El
-.It Fa offset
-Time offset (in microseconds), used by the PLL/FLL to adjust the
-system time in small increments (read-write).
-.It Fa freq
-Frequency offset (scaled ppm) (read-write).
-.It Fa maxerror
-Maximum error (in microseconds).
-Initialized by an
-.Fn ntp_adjtime
-call, and increased by the kernel once each second to reflect the maximum
-error bound growth (read-write).
-.It Fa esterror
-Estimated error (in microseconds).
-Set and read by
-.Fn ntp_adjtime ,
-but unused by the kernel (read-write).
-.It Fa status
-System clock status bits (read-write).
-Bitwise OR of the following:
-.Bl -tag -width STA_PPSJITTER -compact -offset indent
-.It STA_PLL
-Enable PLL updates (read-write).
-.It STA_PPSFREQ
-Enable PPS freq discipline (read-write).
-.It STA_PPSTIME
-Enable PPS time discipline (read-write).
-.It STA_FLL
-Select frequency-lock mode (read-write).
-.It STA_INS
-Insert leap (read-write).
-.It STA_DEL
-Delete leap (read-write).
-.It STA_UNSYNC
-Clock unsynchronized (read-write).
-.It STA_FREQHOLD
-Hold frequency (read-write).
-.It STA_PPSSIGNAL
-PPS signal present (read-only).
-.It STA_PPSJITTER
-PPS signal jitter exceeded (read-only).
-.It STA_PPSWANDER
-PPS signal wander exceeded (read-only).
-.It STA_PPSERROR
-PPS signal calibration error (read-only).
-.It STA_CLOCKERR
-Clock hardware fault (read-only).
-.El
-.It Fa constant
-PLL time constant, determines the bandwidth, or
-.Dq stiffness ,
-of the PLL (read-write).
-.It Fa precision
-Clock precision (in microseconds).
-In most cases the same as the kernel tick variable (see
-.Xr hz 9 ) .
-If a precision clock counter or external time-keeping signal is available,
-it could be much lower (and depend on the state of the signal)
-(read-only).
-.It Fa tolerance
-Maximum frequency error, or tolerance of the CPU clock oscillator (scaled
-ppm).
-Ordinarily a property of the architecture, but could change under
-the influence of external time-keeping signals (read-only).
-.It Fa ppsfreq
-PPS frequency offset produced by the frequency median filter (scaled
-ppm) (read-only).
-.It Fa jitter
-PPS jitter measured by the time median filter in microseconds
-(read-only).
-.It Fa shift
-Logarithm to base 2 of the interval duration in seconds (PPS,
-read-only).
-.It Fa stabil
-PPS stability (scaled ppm); dispersion (wander) measured by the
-frequency median filter (read-only).
-.It Fa jitcnt
-Number of seconds that have been discarded because the jitter measured
-by the time median filter exceeded the limit
-.Em MAXTIME
-(PPS, read-only).
-.It Fa calcnt
-Count of calibration intervals (PPS, read-only).
-.It Fa errcnt
-Number of calibration intervals that have been discarded because the
-wander exceeded the limit
-.Em MAXFREQ
-or where the calibration interval jitter exceeded two ticks (PPS,
-read-only).
-.It Fa stbcnt
-Number of calibration intervals that have been discarded because the
-frequency wander exceeded the limit
-.Em MAXFREQ Ns /4
-(PPS, read-only).
-.El
-After the
-.Fn ntp_adjtime
-call, the
-.Va struct timex *
-structure contains the current values of the corresponding variables.
-.Pp
-.Fn ntp_gettime
-has as argument a
-.Va struct ntptimeval *
-with the following members:
-.Bd -literal
-struct ntptimeval {
- struct timeval time; /* current time (ro) */
- long maxerror; /* maximum error (us) (ro) */
- long esterror; /* estimated error (us) (ro) */
-};
-.Ed
-.Pp
-These have the following meaning:
-.Bl -tag -width tolerance -compact
-.It Fa time
-Current time (read-only).
-.It Fa maxerror
-Maximum error in microseconds (read-only).
-.It Fa esterror
-Estimated error in microseconds (read-only).
-.El
-.Sh RETURN VALUES
-.Fn ntp_adjtime
-and
-.Fn ntp_gettime
-return the current state of the clock on success, or any of the errors
-of
-.Xr copyin 9
-and
-.Xr copyout 9 .
-.Fn ntp_adjtime
-may additionally return
-.Er EPERM
-if the user calling
-.Fn ntp_adjtime
-does not have sufficient permissions.
-.Pp
-Possible states of the clock are:
-.Bl -tag -width TIME_ERROR -compact -offset indent
-.It TIME_OK
-Everything okay, no leap second warning.
-.It TIME_INS
-.Dq insert leap second
-warning.
-At the end of the day, a leap second will be inserted after 23:59:59.
-.It TIME_DEL
-.Dq delete leap second
-warning.
-At the end of the day, second 23:59:59 will be skipped.
-.It TIME_OOP
-Leap second in progress.
-.It TIME_WAIT
-Leap second has occurred within the last few seconds.
-.It TIME_ERROR
-Clock not synchronized.
-.El
-.Sh ERRORS
-The
-.Fn ntp_adjtime
-system call may return
-.Er EPERM
-if the caller
-does not have sufficient permissions.
-.Sh SEE ALSO
-.Xr options 4 ,
-.Xr ntpd 8 ,
-.Xr hardclock 9 ,
-.Xr hz 9
-.Bl -tag -width indent
-.It Pa http://www.bipm.fr/enus/5_Scientific/c_time/time_1.html
-.It Pa http://www.boulder.nist.gov/timefreq/general/faq.htm
-.It Pa ftp://time.nist.gov/pub/leap-seconds.list
-.El
-.Sh BUGS
-Take note that this
-.Tn API
-is extremely complex and stateful.
-Users should not attempt modification without first
-reviewing the
-.Xr ntpd 8
-sources in depth.
diff --git a/lib/libc/sys/open.2 b/lib/libc/sys/open.2
deleted file mode 100644
index 876a4ce1e57d..000000000000
--- a/lib/libc/sys/open.2
+++ /dev/null
@@ -1,680 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)open.2 8.2 (Berkeley) 11/16/93
-.\" $FreeBSD$
-.\"
-.Dd April 22, 2022
-.Dt OPEN 2
-.Os
-.Sh NAME
-.Nm open , openat
-.Nd open or create a file for reading, writing or executing
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In fcntl.h
-.Ft int
-.Fn open "const char *path" "int flags" "..."
-.Ft int
-.Fn openat "int fd" "const char *path" "int flags" "..."
-.Sh DESCRIPTION
-The file name specified by
-.Fa path
-is opened
-for either execution or reading and/or writing as specified by the
-argument
-.Fa flags
-and the file descriptor returned to the calling process.
-The
-.Fa flags
-argument may indicate the file is to be
-created if it does not exist (by specifying the
-.Dv O_CREAT
-flag).
-In this case
-.Fn open
-and
-.Fn openat
-require an additional argument
-.Fa "mode_t mode" ,
-and the file is created with mode
-.Fa mode
-as described in
-.Xr chmod 2
-and modified by the process' umask value (see
-.Xr umask 2 ) .
-.Pp
-The
-.Fn openat
-function is equivalent to the
-.Fn open
-function except in the case where the
-.Fa path
-specifies a relative path.
-For
-.Fn openat
-and relative
-.Fa path ,
-the file to be opened is determined relative to the directory
-associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-The
-.Fa flag
-parameter and the optional fourth parameter correspond exactly to
-the parameters of
-.Fn open .
-If
-.Fn openat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used
-and the behavior is identical to a call to
-.Fn open .
-.Pp
-When
-.Fn openat
-is called with an absolute
-.Fa path ,
-it ignores the
-.Fa fd
-argument.
-.Pp
-In
-.Xr capsicum 4
-capability mode,
-.Fn open
-is not permitted.
-The
-.Fa path
-argument to
-.Fn openat
-must be strictly relative to a file descriptor
-.Fa fd .
-.Fa path
-must not be an absolute path and must not contain ".." components
-which cause the path resolution to escape the directory hierarchy
-starting at
-.Fa fd .
-Additionally, no symbolic link in
-.Fa path
-may target absolute path or contain escaping ".." components.
-.Fa fd
-must not be
-.Dv AT_FDCWD .
-.Pp
-If the
-.Dv vfs.lookup_cap_dotdot
-.Xr sysctl 3
-MIB is set to zero, ".." components in the paths,
-used in capability mode,
-are completely disabled.
-If the
-.Dv vfs.lookup_cap_dotdot_nonlocal
-MIB is set to zero, ".." is not allowed if found on non-local filesystem.
-.Pp
-The flags specified are formed by
-.Em or Ns 'ing
-the following values
-.Pp
-.Bd -literal -offset indent -compact
-O_RDONLY open for reading only
-O_WRONLY open for writing only
-O_RDWR open for reading and writing
-O_EXEC open for execute only
-O_SEARCH open for search only, an alias for O_EXEC
-O_NONBLOCK do not block on open
-O_APPEND append on each write
-O_CREAT create file if it does not exist
-O_TRUNC truncate size to 0
-O_EXCL error if create and file exists
-O_SHLOCK atomically obtain a shared lock
-O_EXLOCK atomically obtain an exclusive lock
-O_DIRECT eliminate or reduce cache effects
-O_FSYNC synchronous writes (historical synonym for O_SYNC)
-O_SYNC synchronous writes
-O_DSYNC synchronous data writes
-O_NOFOLLOW do not follow symlinks
-O_NOCTTY ignored
-O_TTY_INIT ignored
-O_DIRECTORY error if file is not a directory
-O_CLOEXEC set FD_CLOEXEC upon open
-O_VERIFY verify the contents of the file
-O_RESOLVE_BENEATH path resolution must not cross the fd directory
-O_PATH record only the target path in the opened descriptor
-O_EMPTY_PATH openat, open file referenced by fd if path is empty
-.Ed
-.Pp
-Opening a file with
-.Dv O_APPEND
-set causes each write on the file
-to be appended to the end.
-If
-.Dv O_TRUNC
-is specified and the
-file exists, the file is truncated to zero length.
-If
-.Dv O_EXCL
-is set with
-.Dv O_CREAT
-and the file already
-exists,
-.Fn open
-returns an error.
-This may be used to
-implement a simple exclusive access locking mechanism.
-If
-.Dv O_EXCL
-is set and the last component of the pathname is
-a symbolic link,
-.Fn open
-will fail even if the symbolic
-link points to a non-existent name.
-If the
-.Dv O_NONBLOCK
-flag is specified and the
-.Fn open
-system call would result
-in the process being blocked for some reason (e.g., waiting for
-carrier on a dialup line),
-.Fn open
-returns immediately.
-The descriptor remains in non-blocking mode for subsequent operations.
-.Pp
-If
-.Dv O_SYNC
-is used in the mask, all writes will
-immediately and synchronously be written to disk.
-.Dv O_FSYNC
-is an historical synonym for
-.Dv O_SYNC .
-.Pp
-If
-.Dv O_DSYNC
-is used in the mask, all data and metadata required to read the data will be
-synchronously written to disk, but changes to metadata such as file access and
-modification timestamps may be written later.
-.Pp
-If
-.Dv O_NOFOLLOW
-is used in the mask and the target file passed to
-.Fn open
-is a symbolic link then the
-.Fn open
-will fail.
-.Pp
-When opening a file, a lock with
-.Xr flock 2
-semantics can be obtained by setting
-.Dv O_SHLOCK
-for a shared lock, or
-.Dv O_EXLOCK
-for an exclusive lock.
-If creating a file with
-.Dv O_CREAT ,
-the request for the lock will never fail
-(provided that the underlying file system supports locking).
-.Pp
-.Dv O_DIRECT
-may be used to minimize or eliminate the cache effects of reading and writing.
-The system will attempt to avoid caching the data you read or write.
-If it cannot avoid caching the data,
-it will minimize the impact the data has on the cache.
-Use of this flag can drastically reduce performance if not used with care.
-.Pp
-.Dv O_NOCTTY
-may be used to ensure the OS does not assign this file as the
-controlling terminal when it opens a tty device.
-This is the default on
-.Fx ,
-but is present for
-.Tn POSIX
-compatibility.
-The
-.Fn open
-system call will not assign controlling terminals on
-.Fx .
-.Pp
-.Dv O_TTY_INIT
-may be used to ensure the OS restores the terminal attributes when
-initially opening a TTY.
-This is the default on
-.Fx ,
-but is present for
-.Tn POSIX
-compatibility.
-The initial call to
-.Fn open
-on a TTY will always restore default terminal attributes on
-.Fx .
-.Pp
-.Dv O_DIRECTORY
-may be used to ensure the resulting file descriptor refers to a
-directory.
-This flag can be used to prevent applications with elevated privileges
-from opening files which are even unsafe to open with
-.Dv O_RDONLY ,
-such as device nodes.
-.Pp
-.Dv O_CLOEXEC
-may be used to set
-.Dv FD_CLOEXEC
-flag for the newly returned file descriptor.
-.Pp
-.Dv O_VERIFY
-may be used to indicate to the kernel that the contents of the file should
-be verified before allowing the open to proceed.
-The details of what
-.Dq verified
-means is implementation specific.
-The run-time linker (rtld) uses this flag to ensure shared objects have
-been verified before operating on them.
-.Pp
-.Dv O_RESOLVE_BENEATH
-returns
-.Er ENOTCAPABLE
-if any intermediate component of the specified relative path does not
-reside in the directory hierarchy beneath the starting directory.
-Absolute paths or even the temporal escape from beneath of the starting
-directory is not allowed.
-.Pp
-When
-.Fa fd
-is opened with
-.Dv O_SEARCH ,
-execute permissions are checked at open time.
-The
-.Fa fd
-may not be used for any read operations like
-.Xr getdirentries 2 .
-The primary use for this descriptor will be as the lookup descriptor for the
-.Fn *at
-family of functions.
-.Pp
-.Dv O_PATH
-returns a file descriptor that can be used as a directory file descriptor for
-.Xr openat 2
-and other system calls taking a file descriptor argument, like
-.Xr fstatat 2
-and others.
-The other functionality of the returned file descriptor is limited to
-the descriptor-level operations.
-It can be used for
-.Bl -tag -width readlinkat(2) -offset indent -compact
-.It Xr fcntl 2
-but advisory locking is not allowed
-.It Xr dup 2
-.It Xr close 2
-.It Xr fstat 2
-.It Xr fexecve 2
-.It Dv SCM_RIGHTS
-can be passed over a
-.Xr unix 4
-socket using a
-.Dv SCM_RIGHTS
-message
-.It Xr kqueue 2
-using for
-.Dv EVFILT_VNODE
-.It Xr readlinkat 2
-.El
-But operations like
-.Xr read 2 ,
-.Xr ftruncate 2 ,
-and any other that operate on file and not on file descriptor (except
-.Xr fstat 2 ),
-are not allowed.
-.Pp
-A file descriptor created with the
-.Dv O_PATH
-flag can be opened into normal (operable) file descriptor by
-specifying it as the
-.Fa fd
-argument to
-.Fn openat
-with empty
-.Fa path
-and flag
-.Dv O_EMPTY_PATH .
-Such an open behaves as if the current path of the file referenced by
-.Fa fd
-is passed, except that the path walk permissions are not checked.
-See also the description of
-.Dv AT_EMPTY_PATH
-flag for
-.Xr fstatat 2
-and related syscalls.
-.Pp
-If successful,
-.Fn open
-returns a non-negative integer, termed a file descriptor.
-It returns \-1 on failure.
-The file pointer used to mark the current position within the
-file is set to the beginning of the file.
-.Pp
-If a sleeping open of a device node from
-.Xr devfs 5
-is interrupted by a signal, the call always fails with
-.Er EINTR ,
-even if the
-.Dv SA_RESTART
-flag is set for the signal.
-A sleeping open of a fifo (see
-.Xr mkfifo 2 )
-is restarted as normal.
-.Pp
-When a new file is created it is given the group of the directory
-which contains it.
-.Pp
-Unless
-.Dv O_CLOEXEC
-flag was specified,
-the new descriptor is set to remain open across
-.Xr execve 2
-system calls; see
-.Xr close 2 ,
-.Xr fcntl 2
-and
-.Dv O_CLOEXEC
-description.
-.Pp
-The system imposes a limit on the number of file descriptors
-open simultaneously by one process.
-The
-.Xr getdtablesize 2
-system call returns the current system limit.
-.Sh RETURN VALUES
-If successful,
-.Fn open
-and
-.Fn openat
-return a non-negative integer, termed a file descriptor.
-They return \-1 on failure, and set
-.Va errno
-to indicate the error.
-.Sh ERRORS
-The named file is opened unless:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-.Dv O_CREAT
-is not set and the named file does not exist.
-.It Bq Er ENOENT
-A component of the path name that must exist does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er EACCES
-The required permissions (for reading and/or writing)
-are denied for the given flags.
-.It Bq Er EACCES
-.Dv O_TRUNC
-is specified and write permission is denied.
-.It Bq Er EACCES
-.Dv O_CREAT
-is specified,
-the file does not exist,
-and the directory in which it is to be created
-does not permit writing.
-.It Bq Er EPERM
-.Dv O_CREAT
-is specified, the file does not exist, and the directory in which it is to be
-created has its immutable flag set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EPERM
-The named file has its immutable flag set and the file is to be modified.
-.It Bq Er EPERM
-The named file has its append-only flag set, the file is to be modified, and
-.Dv O_TRUNC
-is specified or
-.Dv O_APPEND
-is not specified.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EISDIR
-The named file is a directory, and the arguments specify
-it is to be modified.
-.It Bq Er EISDIR
-The named file is a directory, and the flags specified
-.Dv O_CREAT
-without
-.Dv O_DIRECTORY .
-.It Bq Er EROFS
-The named file resides on a read-only file system,
-and the file is to be modified.
-.It Bq Er EROFS
-.Dv O_CREAT
-is specified and the named file would reside on a read-only file system.
-.It Bq Er EMFILE
-The process has already reached its limit for open file descriptors.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er EMLINK
-.Dv O_NOFOLLOW
-was specified and the target is a symbolic link.
-.It Bq Er ENXIO
-The named file is a character special or block
-special file, and the device associated with this special file
-does not exist.
-.It Bq Er ENXIO
-.Dv O_NONBLOCK
-is set, the named file is a fifo,
-.Dv O_WRONLY
-is set, and no process has the file open for reading.
-.It Bq Er EINTR
-The
-.Fn open
-operation was interrupted by a signal.
-.It Bq Er EOPNOTSUPP
-.Dv O_SHLOCK
-or
-.Dv O_EXLOCK
-is specified but the underlying file system does not support locking.
-.It Bq Er EOPNOTSUPP
-The named file is a special file mounted through a file system that
-does not support access to it (e.g.\& NFS).
-.It Bq Er EWOULDBLOCK
-.Dv O_NONBLOCK
-and one of
-.Dv O_SHLOCK
-or
-.Dv O_EXLOCK
-is specified and the file is locked.
-.It Bq Er ENOSPC
-.Dv O_CREAT
-is specified,
-the file does not exist,
-and the directory in which the entry for the new file is being placed
-cannot be extended because there is no space left on the file
-system containing the directory.
-.It Bq Er ENOSPC
-.Dv O_CREAT
-is specified,
-the file does not exist,
-and there are no free inodes on the file system on which the
-file is being created.
-.It Bq Er EDQUOT
-.Dv O_CREAT
-is specified,
-the file does not exist,
-and the directory in which the entry for the new file
-is being placed cannot be extended because the
-user's quota of disk blocks on the file system
-containing the directory has been exhausted.
-.It Bq Er EDQUOT
-.Dv O_CREAT
-is specified,
-the file does not exist,
-and the user's quota of inodes on the file system on
-which the file is being created has been exhausted.
-.It Bq Er EIO
-An I/O error occurred while making the directory entry or
-allocating the inode for
-.Dv O_CREAT .
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ETXTBSY
-The file is a pure procedure (shared text) file that is being
-executed and the
-.Fn open
-system call requests write access.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EEXIST
-.Dv O_CREAT
-and
-.Dv O_EXCL
-were specified and the file exists.
-.It Bq Er EOPNOTSUPP
-An attempt was made to open a socket (not currently implemented).
-.It Bq Er EINVAL
-An attempt was made to open a descriptor with an illegal combination
-of
-.Dv O_RDONLY ,
-.Dv O_WRONLY ,
-or
-.Dv O_RDWR ,
-and
-.Dv O_EXEC
-or
-.Dv O_SEARCH .
-.It Bq Er EINVAL
-The
-.Dv O_RESOLVE_BENEATH
-flag is specified and
-.Dv path
-is absolute.
-.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 open for searching.
-.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 ENOTDIR
-.Dv O_DIRECTORY
-is specified and the file is not a directory.
-.It Bq Er ECAPMODE
-.Dv AT_FDCWD
-is specified and the process is in capability mode.
-.It Bq Er ECAPMODE
-.Fn open
-was called and the process is in capability mode.
-.It Bq Er ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode.
-.It Bq Er ENOTCAPABLE
-The
-.Dv O_RESOLVE_BENEATH
-flag was provided, and the relative
-.Fa path
-escapes the
-.Ar fd
-directory.
-.El
-.Sh SEE ALSO
-.Xr chmod 2 ,
-.Xr close 2 ,
-.Xr dup 2 ,
-.Xr fexecve 2 ,
-.Xr fhopen 2 ,
-.Xr getdtablesize 2 ,
-.Xr getfh 2 ,
-.Xr lgetfh 2 ,
-.Xr lseek 2 ,
-.Xr read 2 ,
-.Xr umask 2 ,
-.Xr write 2 ,
-.Xr fopen 3 ,
-.Xr capsicum 4
-.Sh STANDARDS
-These functions are specified by
-.St -p1003.1-2008 .
-.Fx
-sets
-.Va errno
-to
-.Er EMLINK instead of
-.Er ELOOP
-as specified by
-.Tn POSIX
-when
-.Dv O_NOFOLLOW
-is set in flags and the final component of pathname is a symbolic link
-to distinguish it from the case of too many symbolic link traversals
-in one of its non-final components.
-.Sh HISTORY
-The
-.Fn open
-function appeared in
-.At v1 .
-The
-.Fn openat
-function was introduced in
-.Fx 8.0 .
-.Dv O_DSYNC
-appeared in 13.0.
-.Sh BUGS
-The Open Group Extended API Set 2 specification requires that the test
-for whether
-.Fa fd
-is searchable is based on whether
-.Fa fd
-is open for searching, not whether the underlying directory currently
-permits searches.
-The present implementation of the
-.Fa openat
-checks the current permissions of directory instead.
-.Pp
-The
-.Fa mode
-argument is variadic and may result in different calling conventions
-than might otherwise be expected.
diff --git a/lib/libc/sys/open.c b/lib/libc/sys/open.c
index e0273c68a34c..57c07637d2aa 100644
--- a/lib/libc/sys/open.c
+++ b/lib/libc/sys/open.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -54,6 +50,5 @@ open(const char *path, int flags, ...)
} else {
mode = 0;
}
- return (((int (*)(int, const char *, int, ...))
- __libc_interposing[INTERPOS_openat])(AT_FDCWD, path, flags, mode));
+ return (INTERPOS_SYS(openat, AT_FDCWD, path, flags, mode));
}
diff --git a/lib/libc/sys/openat.c b/lib/libc/sys/openat.c
index 1bd12ea2a8d8..1cd8e7d90745 100644
--- a/lib/libc/sys/openat.c
+++ b/lib/libc/sys/openat.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -57,6 +53,5 @@ openat(int fd, const char *path, int flags, ...)
} else {
mode = 0;
}
- return (((int (*)(int, const char *, int, ...))
- __libc_interposing[INTERPOS_openat])(fd, path, flags, mode));
+ return (INTERPOS_SYS(openat, fd, path, flags, mode));
}
diff --git a/lib/libc/sys/pathconf.2 b/lib/libc/sys/pathconf.2
deleted file mode 100644
index 5586e460185b..000000000000
--- a/lib/libc/sys/pathconf.2
+++ /dev/null
@@ -1,269 +0,0 @@
-.\" Copyright (c) 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)pathconf.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd August 6, 2021
-.Dt PATHCONF 2
-.Os
-.Sh NAME
-.Nm pathconf ,
-.Nm lpathconf ,
-.Nm fpathconf
-.Nd get configurable pathname variables
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft long
-.Fn pathconf "const char *path" "int name"
-.Ft long
-.Fn lpathconf "const char *path" "int name"
-.Ft long
-.Fn fpathconf "int fd" "int name"
-.Sh DESCRIPTION
-The
-.Fn pathconf ,
-.Fn lpathconf
-and
-.Fn fpathconf
-system calls provide a method for applications to determine the current
-value of a configurable system limit or option variable associated
-with a pathname or file descriptor.
-.Pp
-For
-.Fn pathconf
-and
-.Fn lpathconf ,
-the
-.Fa path
-argument is the name of a file or directory.
-For
-.Fn fpathconf ,
-the
-.Fa fd
-argument is an open file descriptor.
-The
-.Fa name
-argument specifies the system variable to be queried.
-Symbolic constants for each name value are found in the include file
-.Li <unistd.h> .
-.Pp
-The
-.Fn lpathconf
-system call is like
-.Fn pathconf
-except in the case where the named file is a symbolic link,
-in which case
-.Fn lpathconf
-returns information about the link,
-while
-.Fn pathconf
-returns information about the file the link references.
-.Pp
-The available values are as follows:
-.Bl -tag -width 6n
-.It Li _PC_LINK_MAX
-The maximum file link count.
-.It Li _PC_MAX_CANON
-The maximum number of bytes in terminal canonical input line.
-.It Li _PC_MAX_INPUT
-The minimum maximum number of bytes for which space is available in
-a terminal input queue.
-.It Li _PC_NAME_MAX
-The maximum number of bytes in a file name.
-.It Li _PC_PATH_MAX
-The maximum number of bytes in a pathname.
-.It Li _PC_PIPE_BUF
-The maximum number of bytes which will be written atomically to a pipe.
-.It Li _PC_CHOWN_RESTRICTED
-Return 1 if appropriate privilege is required for the
-.Xr chown 2
-system call, otherwise 0.
-.St -p1003.1-2001
-requires appropriate privilege in all cases, but this behavior was optional
-in prior editions of the standard.
-.It Li _PC_NO_TRUNC
-Return greater than zero if attempts to use pathname components longer than
-.Brq Dv NAME_MAX
-will result in an
-.Bq Er ENAMETOOLONG
-error; otherwise, such components will be truncated to
-.Brq Dv NAME_MAX .
-.St -p1003.1-2001
-requires the error in all cases, but this behavior was optional in prior
-editions of the standard, and some
-.No non- Ns Tn POSIX Ns -compliant
-file systems do not support this behavior.
-.It Li _PC_VDISABLE
-Returns the terminal character disabling value.
-.It Li _PC_ASYNC_IO
-Return 1 if asynchronous I/O is supported, otherwise 0.
-.It Li _PC_PRIO_IO
-Returns 1 if prioritised I/O is supported for this file,
-otherwise 0.
-.It Li _PC_SYNC_IO
-Returns 1 if synchronised I/O is supported for this file, otherwise 0.
-.It Li _PC_ALLOC_SIZE_MIN
-Minimum number of bytes of storage allocated for any portion of a file.
-.It Li _PC_FILESIZEBITS
-Number of bits needed to represent the maximum file size.
-.It Li _PC_REC_INCR_XFER_SIZE
-Recommended increment for file transfer sizes between
-.Dv _PC_REC_MIN_XFER_SIZE
-and
-.Dv _PC_REC_MAX_XFER_SIZE .
-.It Li _PC_REC_MAX_XFER_SIZE
-Maximum recommended file transfer size.
-.It Li _PC_REC_MIN_XFER_SIZE
-Minimum recommended file transfer size.
-.It Li _PC_REC_XFER_ALIGN
-Recommended file transfer buffer alignment.
-.It Li _PC_SYMLINK_MAX
-Maximum number of bytes in a symbolic link.
-.It Li _PC_ACL_EXTENDED
-Returns 1 if an Access Control List (ACL) can be set on the specified
-file, otherwise 0.
-.It Li _PC_ACL_NFS4
-Returns 1 if an NFSv4 ACLs can be set on the specified
-file, otherwise 0.
-.It Li _PC_ACL_PATH_MAX
-Maximum number of ACL entries per file.
-.It Li _PC_CAP_PRESENT
-Returns 1 if a capability state can be set on the specified file,
-otherwise 0.
-.It Li _PC_INF_PRESENT
-Returns 1 if an information label can be set on the specified file,
-otherwise 0.
-.It Li _PC_MAC_PRESENT
-Returns 1 if a Mandatory Access Control (MAC) label can be set on the
-specified file, otherwise 0.
-.It Li _PC_MIN_HOLE_SIZE
-If a file system supports the reporting of holes (see
-.Xr lseek 2 ) ,
-.Fn pathconf
-and
-.Fn fpathconf
-return a positive number that represents the minimum hole size returned in
-bytes.
-The offsets of holes returned will be aligned to this same value.
-A special value of 1 is returned if the file system does not specify the minimum
-hole size but still reports holes.
-.It Li _PC_DEALLOC_PRESENT
-Return 1 if a file system supports hole-punching (see
-.Xr fspacectl 2 ) ,
-otherwise 0.
-.El
-.Sh RETURN VALUES
-If the call to
-.Fn pathconf
-or
-.Fn fpathconf
-is not successful, \-1 is returned and
-.Va errno
-is set appropriately.
-Otherwise, if the variable is associated with functionality that does
-not have a limit in the system, \-1 is returned and
-.Va errno
-is not modified.
-Otherwise, the current variable value is returned.
-.Sh ERRORS
-If any of the following conditions occur, the
-.Fn pathconf
-and
-.Fn fpathconf
-system calls shall return -1 and set
-.Va errno
-to the corresponding value.
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The value of the
-.Fa name
-argument is invalid.
-.It Bq Er EINVAL
-The implementation does not support an association of the variable
-name with the associated file.
-.El
-.Pp
-The
-.Fn pathconf
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded
-.Brq Dv NAME_MAX
-characters (but see
-.Dv _PC_NO_TRUNC
-above),
-or an entire path name exceeded
-.Brq Dv PATH_MAX
-characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-The
-.Fn fpathconf
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid open file descriptor.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Sh SEE ALSO
-.Xr lseek 2 ,
-.Xr sysctl 3
-.Sh HISTORY
-The
-.Fn pathconf
-and
-.Fn fpathconf
-system calls first appeared in
-.Bx 4.4 .
-The
-.Fn lpathconf
-system call first appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/pdfork.2 b/lib/libc/sys/pdfork.2
deleted file mode 100644
index b96e876a84e3..000000000000
--- a/lib/libc/sys/pdfork.2
+++ /dev/null
@@ -1,188 +0,0 @@
-.\"
-.\" Copyright (c) 2009-2010, 2012-2013 Robert N. M. Watson
-.\" All rights reserved.
-.\"
-.\" This software was developed at the University of Cambridge Computer
-.\" Laboratory with support from a grant from Google, Inc.
-.\"
-.\" This software was developed by SRI International and the University of
-.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
-.\" ("CTSRD"), as part of the DARPA CRASH research programme.
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 14, 2018
-.Dt PDFORK 2
-.Os
-.Sh NAME
-.Nm pdfork ,
-.Nm pdgetpid ,
-.Nm pdkill
-.Nd System calls to manage process descriptors
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/procdesc.h
-.Ft pid_t
-.Fn pdfork "int *fdp" "int flags"
-.Ft int
-.Fn pdgetpid "int fd" "pid_t *pidp"
-.Ft int
-.Fn pdkill "int fd" "int signum"
-.Sh DESCRIPTION
-Process descriptors are special file descriptors that represent processes,
-and are created using
-.Fn pdfork ,
-a variant of
-.Xr fork 2 ,
-which, if successful, returns a process descriptor in the integer pointed to
-by
-.Fa fdp .
-Processes created via
-.Fn pdfork
-will not cause
-.Dv SIGCHLD
-on termination.
-.Fn pdfork
-can accept the flags:
-.Bl -tag -width ".Dv PD_DAEMON"
-.It Dv PD_DAEMON
-Instead of the default terminate-on-close behaviour, allow the process to
-live until it is explicitly killed with
-.Xr kill 2 .
-.Pp
-This option is not permitted in
-.Xr capsicum 4
-capability mode (see
-.Xr cap_enter 2 ) .
-.El
-.Bl -tag -width ".Dv PD_DAEMON"
-.It Dv PD_CLOEXEC
-Set close-on-exec on process descriptor.
-.El
-.Pp
-.Fn pdgetpid
-queries the process ID (PID) in the process descriptor
-.Fa fd .
-.Pp
-.Fn pdkill
-is functionally identical to
-.Xr kill 2 ,
-except that it accepts a process descriptor,
-.Fa fd ,
-rather than a PID.
-.Pp
-The following system calls also have effects specific to process descriptors:
-.Pp
-.Xr fstat 2
-queries status of a process descriptor; currently only the
-.Fa st_mode ,
-.Fa st_birthtime ,
-.Fa st_atime ,
-.Fa st_ctime
-and
-.Fa st_mtime
-fields are defined.
-If the owner read, write, and execute bits are set then the
-process represented by the process descriptor is still alive.
-.Pp
-.Xr poll 2
-and
-.Xr select 2
-allow waiting for process state transitions; currently only
-.Dv POLLHUP
-is defined, and will be raised when the process dies.
-Process state transitions can also be monitored using
-.Xr kqueue 2
-filter
-.Dv EVFILT_PROCDESC ;
-currently only
-.Dv NOTE_EXIT
-is implemented.
-.Pp
-.Xr close 2
-will close the process descriptor unless
-.Dv PD_DAEMON
-is set; if the process is still alive and this is
-the last reference to the process descriptor, the process will be terminated
-with the signal
-.Dv SIGKILL .
-.Sh RETURN VALUES
-.Fn pdfork
-returns a PID, 0 or -1, as
-.Xr fork 2
-does.
-.Pp
-.Fn pdgetpid
-and
-.Fn pdkill
-return 0 on success and -1 on failure.
-.Sh ERRORS
-These functions may return the same error numbers as their PID-based equivalents
-(e.g.
-.Fn pdfork
-may return the same error numbers as
-.Xr fork 2 ) ,
-with the following additions:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The signal number given to
-.Fn pdkill
-is invalid.
-.It Bq Er ENOTCAPABLE
-The process descriptor being operated on has insufficient rights (e.g.
-.Dv CAP_PDKILL
-for
-.Fn pdkill ) .
-.El
-.Sh SEE ALSO
-.Xr close 2 ,
-.Xr fork 2 ,
-.Xr fstat 2 ,
-.Xr kill 2 ,
-.Xr kqueue 2 ,
-.Xr poll 2 ,
-.Xr wait4 2 ,
-.Xr capsicum 4 ,
-.Xr procdesc 4
-.Sh HISTORY
-The
-.Fn pdfork ,
-.Fn pdgetpid ,
-and
-.Fn pdkill
-system calls first appeared in
-.Fx 9.0 .
-.Pp
-Support for process descriptors mode was developed as part of the
-.Tn TrustedBSD
-Project.
-.Sh AUTHORS
-.An -nosplit
-These functions and the capability facility were created by
-.An Robert N. M. Watson Aq Mt rwatson@FreeBSD.org
-and
-.An Jonathan Anderson Aq Mt jonathan@FreeBSD.org
-at the University of Cambridge Computer Laboratory with support from a grant
-from Google, Inc.
diff --git a/lib/libc/sys/pdfork.c b/lib/libc/sys/pdfork.c
index d98f9b2f7d26..f25f081ec174 100644
--- a/lib/libc/sys/pdfork.c
+++ b/lib/libc/sys/pdfork.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2021 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/types.h>
#include <sys/procdesc.h>
#include "libc_private.h"
@@ -41,6 +37,5 @@ __FBSDID("$FreeBSD$");
pid_t
pdfork(int *fdp, int flags)
{
- return (((pid_t (*)(int *, int))__libc_interposing[
- INTERPOS_pdfork])(fdp, flags));
+ return (INTERPOS_SYS(pdfork, fdp, flags));
}
diff --git a/lib/libc/sys/pipe.2 b/lib/libc/sys/pipe.2
deleted file mode 100644
index 0bfb8cf4ffb9..000000000000
--- a/lib/libc/sys/pipe.2
+++ /dev/null
@@ -1,178 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)pipe.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2017
-.Dt PIPE 2
-.Os
-.Sh NAME
-.Nm pipe ,
-.Nm pipe2
-.Nd create descriptor pair for interprocess communication
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn pipe "int fildes[2]"
-.Ft int
-.Fn pipe2 "int fildes[2]" "int flags"
-.Sh DESCRIPTION
-The
-.Fn pipe
-function
-creates a
-.Em pipe ,
-which is an object allowing
-bidirectional data flow,
-and allocates a pair of file descriptors.
-.Pp
-The
-.Fn pipe2
-system call allows control over the attributes of the file descriptors
-via the
-.Fa flags
-argument.
-Values for
-.Fa flags
-are constructed by a bitwise-inclusive OR of flags from the following
-list, defined in
-.In fcntl.h :
-.Bl -tag -width ".Dv O_NONBLOCK"
-.It Dv O_CLOEXEC
-Set the close-on-exec flag for the new file descriptors.
-.It Dv O_NONBLOCK
-Set the non-blocking flag for the ends of the pipe.
-.El
-.Pp
-If the
-.Fa flags
-argument is 0, the behavior is identical to a call to
-.Fn pipe .
-.Pp
-By convention, the first descriptor is normally used as the
-.Em read end
-of the pipe,
-and the second is normally the
-.Em write end ,
-so that data written to
-.Fa fildes[1]
-appears on (i.e., can be read from)
-.Fa fildes[0] .
-This allows the output of one program to be
-sent
-to another program:
-the source's standard output is set up to be
-the write end of the pipe,
-and the sink's standard input is set up to be
-the read end of the pipe.
-The pipe itself persists until all its associated descriptors are
-closed.
-.Pp
-A pipe that has had an end closed is considered
-.Em widowed .
-Writing on such a pipe causes the writing process to receive
-a
-.Dv SIGPIPE
-signal.
-Widowing a pipe is the only way to deliver end-of-file to a reader:
-after the reader consumes any buffered data, reading a widowed pipe
-returns a zero count.
-.Pp
-The bidirectional nature of this implementation of pipes is not
-portable to older systems, so it is recommended to use the convention
-for using the endpoints in the traditional manner when using a
-pipe in one direction.
-.Sh IMPLEMENTATION NOTES
-The
-.Fn pipe
-function calls the
-.Fn pipe2
-system call.
-As a result, system call traces such as those captured by
-.Xr dtrace 1
-or
-.Xr ktrace 1
-will show calls to
-.Fn pipe2 .
-.Sh RETURN VALUES
-.Rv -std pipe
-.Sh ERRORS
-The
-.Fn pipe
-and
-.Fn pipe2
-system calls will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-.Ar fildes
-argument points to an invalid memory location.
-.It Bq Er EMFILE
-Too many descriptors are active.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er ENOMEM
-Not enough kernel memory to establish a pipe.
-.El
-.Pp
-The
-.Fn pipe2
-system call will also fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa flags
-argument is invalid.
-.El
-.Sh SEE ALSO
-.Xr sh 1 ,
-.Xr fork 2 ,
-.Xr read 2 ,
-.Xr socketpair 2 ,
-.Xr write 2
-.Sh HISTORY
-The
-.Fn pipe
-function appeared in
-.At v3 .
-.Pp
-Bidirectional pipes were first used on
-.At V.4 .
-.Pp
-The
-.Fn pipe2
-function appeared in
-.Fx 10.0 .
-.Pp
-The
-.Fn pipe
-function became a wrapper around
-.Fn pipe2
-in
-.Fx 11.0 .
diff --git a/lib/libc/sys/pipe.c b/lib/libc/sys/pipe.c
index f5ade0eb914b..370895166ad0 100644
--- a/lib/libc/sys/pipe.c
+++ b/lib/libc/sys/pipe.c
@@ -26,11 +26,8 @@
* 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.
- *
- * $FreeBSD$
*/
-#include <sys/cdefs.h>
#include <unistd.h>
diff --git a/lib/libc/sys/poll.2 b/lib/libc/sys/poll.2
deleted file mode 100644
index fec82db08944..000000000000
--- a/lib/libc/sys/poll.2
+++ /dev/null
@@ -1,294 +0,0 @@
-.\" $NetBSD: poll.2,v 1.3 1996/09/07 21:53:08 mycroft Exp $
-.\" $FreeBSD$
-.\"
-.\" Copyright (c) 1996 Charles M. Hannum. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Charles M. Hannum.
-.\" 4. The name of the author may not be used to endorse or promote products
-.\" derived from this software without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
-.\"
-.Dd April 27, 2021
-.Dt POLL 2
-.Os
-.Sh NAME
-.Nm poll
-.Nd synchronous I/O multiplexing
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In poll.h
-.Ft int
-.Fn poll "struct pollfd fds[]" "nfds_t nfds" "int timeout"
-.Ft int
-.Fo ppoll
-.Fa "struct pollfd fds[]"
-.Fa "nfds_t nfds"
-.Fa "const struct timespec * restrict timeout"
-.Fa "const sigset_t * restrict newsigmask"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn poll
-system call
-examines a set of file descriptors to see if some of them are ready for
-I/O.
-The
-.Fa fds
-argument is a pointer to an array of pollfd structures as defined in
-.In poll.h
-(shown below).
-The
-.Fa nfds
-argument determines the size of the
-.Fa fds
-array.
-.Bd -literal
-struct pollfd {
- int fd; /* file descriptor */
- short events; /* events to look for */
- short revents; /* events returned */
-};
-.Ed
-.Pp
-The fields of
-.Fa struct pollfd
-are as follows:
-.Bl -tag -width XXXrevents
-.It fd
-File descriptor to poll.
-If fd is equal to -1 then
-.Fa revents
-is cleared (set to zero), and that pollfd is not checked.
-.It events
-Events to poll for.
-(See below.)
-.It revents
-Events which may occur.
-(See below.)
-.El
-.Pp
-The event bitmasks in
-.Fa events
-and
-.Fa revents
-have the following bits:
-.Bl -tag -width XXXPOLLWRNORM
-.It POLLIN
-Data other than high priority data may be read without blocking.
-.It POLLRDNORM
-Normal data may be read without blocking.
-.It POLLRDBAND
-Data with a non-zero priority may be read without blocking.
-.It POLLPRI
-High priority data may be read without blocking.
-.It POLLOUT
-.It POLLWRNORM
-Normal data may be written without blocking.
-.It POLLWRBAND
-Data with a non-zero priority may be written without blocking.
-.It POLLERR
-An exceptional condition has occurred on the device or socket.
-This
-flag is always checked, even if not present in the
-.Fa events
-bitmask.
-.It POLLHUP
-The device or socket has been disconnected.
-This flag is always
-checked, even if not present in the
-.Fa events
-bitmask.
-Note that
-POLLHUP
-and
-POLLOUT
-should never be present in the
-.Fa revents
-bitmask at the same time.
-.It POLLRDHUP
-Remote peer closed connection, or shut down writing.
-Unlike
-POLLHUP,
-POLLRDHUP
-must be present in the
-.Fa events
-bitmask to be reported.
-Applies only to stream sockets.
-.It POLLNVAL
-The file descriptor is not open,
-or in capability mode the file descriptor has insufficient rights.
-This flag is always checked, even
-if not present in the
-.Fa events
-bitmask.
-.El
-.Pp
-If
-.Fa timeout
-is neither zero nor INFTIM (-1), it specifies a maximum interval to
-wait for any file descriptor to become ready, in milliseconds.
-If
-.Fa timeout
-is INFTIM (-1), the poll blocks indefinitely.
-If
-.Fa timeout
-is zero, then
-.Fn poll
-will return without blocking.
-.Pp
-The
-.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.
-The
-.Fa fds
-and
-.Fa nfds
-arguments are identical to the analogous arguments of
-.Fn poll .
-The
-.Fa timeout
-argument in
-.Fn ppoll
-points to a
-.Vt "const struct timespec"
-which is defined in
-.In sys/timespec.h
-(shown below) rather than the
-.Vt "int timeout"
-used by
-.Fn poll .
-A null pointer may be passed to indicate that
-.Fn ppoll
-should wait indefinitely.
-Finally,
-.Fa newsigmask
-specifies a signal mask which is set while waiting for input.
-When
-.Fn ppoll
-returns, the original signal mask is restored.
-.Bd -literal
-struct timespec {
- time_t tv_sec; /* seconds */
- long tv_nsec; /* and nanoseconds */
-};
-.Ed
-.Sh RETURN VALUES
-The
-.Fn poll
-system call
-returns the number of descriptors that are ready for I/O, or -1 if an
-error occurred.
-If the time limit expires,
-.Fn poll
-returns 0.
-If
-.Fn poll
-returns with an error,
-including one due to an interrupted system call,
-the
-.Fa fds
-array will be unmodified.
-.Sh COMPATIBILITY
-This implementation differs from the historical one in that a given
-file descriptor may not cause
-.Fn poll
-to return with an error.
-In cases where this would have happened in
-the historical implementation (e.g.\& trying to poll a
-.Xr revoke 2 Ns ed
-descriptor), this implementation instead copies the
-.Fa events
-bitmask to the
-.Fa revents
-bitmask.
-Attempting to perform I/O on this descriptor will then
-return an error.
-This behaviour is believed to be more useful.
-.Sh ERRORS
-An error return from
-.Fn poll
-indicates:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa fds
-argument
-points outside the process's allocated address space.
-.It Bq Er EINTR
-A signal was delivered before the time limit expired and
-before any of the selected events occurred.
-.It Bq Er EINVAL
-The specified time limit is invalid.
-One of its components is negative or too large.
-.It Bq Er EINVAL
-The number of pollfd structures specified by
-.Fa nfds
-exceeds the system tunable
-.Va kern.maxfilesperproc
-and
-.Dv FD_SETSIZE .
-.El
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr connect 2 ,
-.Xr kqueue 2 ,
-.Xr pselect 2 ,
-.Xr read 2 ,
-.Xr recv 2 ,
-.Xr select 2 ,
-.Xr send 2 ,
-.Xr write 2
-.Sh STANDARDS
-The
-.Fn poll
-function conforms to
-.St -p1003.1-2001 .
-The
-.Fn ppoll
-is not specified by POSIX.
-The
-POLLRDHUP
-flag is not specified by POSIX, but is compatible with Linux and illumos.
-.Sh HISTORY
-The
-.Fn poll
-function appeared in
-.At V .
-This manual page and the core of the implementation was taken from
-.Nx .
-The
-.Fn ppoll
-function first appeared in
-.Fx 11.0
-.Sh BUGS
-The distinction between some of the fields in the
-.Fa events
-and
-.Fa revents
-bitmasks is really not useful without STREAMS.
-The fields are
-defined for compatibility with existing software.
diff --git a/lib/libc/sys/poll.c b/lib/libc/sys/poll.c
index 43c17d2f65ce..6528603e7603 100644
--- a/lib/libc/sys/poll.c
+++ b/lib/libc/sys/poll.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -43,7 +39,5 @@ __weak_reference(__sys_poll, __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));
+ return (INTERPOS_SYS(poll, pfd, nfds, timeout));
}
diff --git a/lib/libc/sys/posix_fadvise.2 b/lib/libc/sys/posix_fadvise.2
deleted file mode 100644
index 0e4d25ac4c55..000000000000
--- a/lib/libc/sys/posix_fadvise.2
+++ /dev/null
@@ -1,143 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)madvise.2 8.1 (Berkeley) 6/9/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt POSIX_FADVISE 2
-.Os
-.Sh NAME
-.Nm posix_fadvise
-.Nd give advice about use of file data
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In fcntl.h
-.Ft int
-.Fn posix_fadvise "int fd" "off_t offset" "off_t len" "int advice"
-.Sh DESCRIPTION
-The
-.Fn posix_fadvise
-system call
-allows a process to describe to the system its data access behavior for an
-open file descriptor
-.Fa fd .
-The advice covers the data starting at offset
-.Fa offset
-and continuing for
-.Fa len
-bytes.
-If
-.Fa len
-is zero,
-all data from
-.Fa offset
-to the end of the file is covered.
-.Pp
-The behavior is specified by the
-.Fa advice
-parameter and may be one of:
-.Bl -tag -width POSIX_FADV_SEQUENTIAL
-.It Dv POSIX_FADV_NORMAL
-Tells the system to revert to the default data access behavior.
-.It Dv POSIX_FADV_RANDOM
-Is a hint that file data will be accessed randomly,
-and prefetching is likely not advantageous.
-.It Dv POSIX_FADV_SEQUENTIAL
-Tells the system that file data will be accessed sequentially.
-This currently does nothing as the default behavior uses heuristics to
-detect sequential behavior.
-.It Dv POSIX_FADV_WILLNEED
-Tells the system that the specified data will be accessed in the near future.
-The system may initiate an asynchronous read of the data if it is not already
-present in memory.
-.It Dv POSIX_FADV_DONTNEED
-Tells the system that the specified data will not be accessed in the near
-future.
-The system may decrease the in-memory priority of clean data within the
-specified range and future access to this data may require a read operation.
-.It Dv POSIX_FADV_NOREUSE
-Tells the system that the specified data will only be accessed once and
-then not reused.
-The system may decrease the in-memory priority of data once it has been
-read or written.
-Future access to this data may require a read operation.
-.El
-.Sh RETURN VALUES
-If successful,
-.Fn posix_fadvise
-returns zero.
-It returns an error on failure, without setting
-.Va errno .
-.Sh ERRORS
-Possible failure conditions:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid file descriptor.
-.It Bq Er EINVAL
-The
-.Fa advice
-argument is not valid.
-.It Bq Er EINVAL
-The
-.Fa offset
-or
-.Fa len
-arguments are negative,
-or
-.Fa offset
-+
-.Fa len
-is greater than the maximum file size.
-.It Bq Er ENODEV
-The
-.Fa fd
-argument does not refer to a regular file.
-.It Bq Er ESPIPE
-The
-.Fa fd
-argument is associated with a pipe or FIFO.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to a file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Sh SEE ALSO
-.Xr madvise 2
-.Sh STANDARDS
-The
-.Fn posix_fadvise
-interface conforms to
-.St -p1003.1-2001 .
-.Sh HISTORY
-The
-.Fn posix_fadvise
-system call first appeared in
-.Fx 9.1 .
diff --git a/lib/libc/sys/posix_fallocate.2 b/lib/libc/sys/posix_fallocate.2
deleted file mode 100644
index ddf8aeb750fb..000000000000
--- a/lib/libc/sys/posix_fallocate.2
+++ /dev/null
@@ -1,152 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)open.2 8.2 (Berkeley) 11/16/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt POSIX_FALLOCATE 2
-.Os
-.Sh NAME
-.Nm posix_fallocate
-.Nd pre-allocate storage for a range in a file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In fcntl.h
-.Ft int
-.Fn posix_fallocate "int fd" "off_t offset" "off_t len"
-.Sh DESCRIPTION
-Required storage for the range
-.Fa offset
-to
-.Fa offset +
-.Fa len
-in the file referenced by
-.Fa fd
-is guaranteed to be allocated upon successful return.
-That is, if
-.Fn posix_fallocate
-returns successfully, subsequent writes to the specified file data
-will not fail due to lack of free space on the file system storage
-media.
-Any existing file data in the specified range is unmodified.
-If
-.Fa offset +
-.Fa len
-is beyond the current file size, then
-.Fn posix_fallocate
-will adjust the file size to
-.Fa offset +
-.Fa len .
-Otherwise, the file size will not be changed.
-.Pp
-Space allocated by
-.Fn posix_fallocate
-will be freed by a successful call to
-.Xr creat 2
-or
-.Xr open 2
-that truncates the size of the file.
-Space allocated via
-.Fn posix_fallocate
-may be freed by a successful call to
-.Xr ftruncate 2
-that reduces the file size to a size smaller than
-.Fa offset +
-.Fa len .
-.Sh RETURN VALUES
-If successful,
-.Fn posix_fallocate
-returns zero.
-It returns an error on failure, without setting
-.Va errno .
-.Sh ERRORS
-Possible failure conditions:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument is not a valid file descriptor.
-.It Bq Er EBADF
-The
-.Fa fd
-argument references a file that was opened without write permission.
-.It Bq Er EFBIG
-The value of
-.Fa offset +
-.Fa len
-is greater than the maximum file size.
-.It Bq Er EINTR
-A signal was caught during execution.
-.It Bq Er EINVAL
-The
-.Fa len
-argument was less than or equal to zero, the
-.Fa offset
-argument was less than zero,
-or the operation is not supported by the file system.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to a file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ENODEV
-The
-.Fa fd
-argument does not refer to a file that supports
-.Nm .
-.It Bq Er ENOSPC
-There is insufficient free space remaining on the file system storage
-media.
-.It Bq Er ENOTCAPABLE
-The file descriptor
-.Fa fd
-has insufficient rights.
-.It Bq Er ESPIPE
-The
-.Fa fd
-argument is associated with a pipe or FIFO.
-.El
-.Sh SEE ALSO
-.Xr creat 2 ,
-.Xr ftruncate 2 ,
-.Xr open 2 ,
-.Xr unlink 2
-.Sh STANDARDS
-The
-.Fn posix_fallocate
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-The
-.Fn posix_fallocate
-function appeared in
-.Fx 9.0 .
-.Sh AUTHORS
-.Fn posix_fallocate
-and this manual page were initially written by
-.An Matthew Fleming Aq Mt mdf@FreeBSD.org .
diff --git a/lib/libc/sys/posix_openpt.2 b/lib/libc/sys/posix_openpt.2
deleted file mode 100644
index 01a372931af8..000000000000
--- a/lib/libc/sys/posix_openpt.2
+++ /dev/null
@@ -1,140 +0,0 @@
-.\" Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org>
-.\" All rights reserved.
-.\"
-.\" Portions of this software were developed under sponsorship from Snow
-.\" B.V., the Netherlands.
-.\"
-.\" 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.
-.\"
-.\" Portions of this text are reprinted and reproduced in electronic form
-.\" from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology --
-.\" Portable Operating System Interface (POSIX), The Open Group Base
-.\" Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of
-.\" Electrical and Electronics Engineers, Inc and The Open Group. In the
-.\" event of any discrepancy between this version and the original IEEE and
-.\" The Open Group Standard, the original IEEE and The Open Group Standard is
-.\" the referee document. The original Standard can be obtained online at
-.\" http://www.opengroup.org/unix/online.html.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 21, 2016
-.Dt POSIX_OPENPT 2
-.Os
-.Sh NAME
-.Nm posix_openpt
-.Nd "open a pseudo-terminal device"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In fcntl.h
-.In stdlib.h
-.Ft int
-.Fn posix_openpt "int oflag"
-.Sh DESCRIPTION
-The
-.Fn posix_openpt
-function allocates a new pseudo-terminal and establishes a connection
-with its master device.
-A slave device shall be created in
-.Pa /dev/pts .
-After the pseudo-terminal has been allocated, the slave device should
-have the proper permissions before it can be used (see
-.Xr grantpt 3 ) .
-The name of the slave device can be determined by calling
-.Xr ptsname 3 .
-.Pp
-The file status flags and file access modes of the open file description
-shall be set according to the value of
-.Fa oflag .
-Values for
-.Fa oflag
-are constructed by a bitwise-inclusive OR of flags from the following
-list, defined in
-.In fcntl.h :
-.Bl -tag -width ".Dv O_CLOEXEC"
-.It Dv O_RDWR
-Open for reading and writing.
-.It Dv O_NOCTTY
-If set
-.Fn posix_openpt
-shall not cause the terminal device to become the controlling terminal
-for the process.
-.It Dv O_CLOEXEC
-Set the close-on-exec flag for the new file descriptor.
-.El
-.Pp
-The
-.Fn posix_openpt
-function shall fail when
-.Fa oflag
-contains other values.
-.Sh RETURN VALUES
-Upon successful completion, the
-.Fn posix_openpt
-function shall allocate a new pseudo-terminal device and return a
-non-negative integer representing a file descriptor, which is connected
-to its master device.
-Otherwise, -1 shall be returned and errno set to indicate the error.
-.Sh ERRORS
-The
-.Fn posix_openpt
-function shall fail if:
-.Bl -tag -width Er
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er EINVAL
-The value of
-.Fa oflag
-is not valid.
-.It Bq Er EAGAIN
-Out of pseudo-terminal resources.
-.El
-.Sh SEE ALSO
-.Xr ptsname 3 ,
-.Xr pts 4 ,
-.Xr tty 4
-.Sh STANDARDS
-The
-.Fn posix_openpt
-function conforms to
-.St -p1003.1-2001 .
-The ability to use
-.Dv O_CLOEXEC
-is an extension to the standard.
-.Sh HISTORY
-The
-.Fn posix_openpt
-function appeared in
-.Fx 5.0 .
-In
-.Fx 8.0 ,
-this function was changed to a system call.
-.Sh NOTES
-The flag
-.Dv O_NOCTTY
-is included for compatibility; in
-.Fx ,
-opening a terminal does not cause it to become a process's controlling
-terminal.
-.Sh AUTHORS
-.An \&Ed Schouten Aq Mt ed@FreeBSD.org
diff --git a/lib/libc/sys/ppoll.c b/lib/libc/sys/ppoll.c
index f62fd19cafe1..52c4c177cf0a 100644
--- a/lib/libc/sys/ppoll.c
+++ b/lib/libc/sys/ppoll.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -44,8 +40,5 @@ 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));
+ return (INTERPOS_SYS(ppoll, pfd, nfds, timeout, newsigmask));
}
diff --git a/lib/libc/sys/procctl.2 b/lib/libc/sys/procctl.2
deleted file mode 100644
index 97509d0fbf06..000000000000
--- a/lib/libc/sys/procctl.2
+++ /dev/null
@@ -1,853 +0,0 @@
-.\" Copyright (c) 2013 Hudson River Trading 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:
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 2, 2021
-.Dt PROCCTL 2
-.Os
-.Sh NAME
-.Nm procctl
-.Nd control processes
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/procctl.h
-.Ft int
-.Fn procctl "idtype_t idtype" "id_t id" "int cmd" "void *data"
-.Sh DESCRIPTION
-The
-.Fn procctl
-system call provides for control over processes.
-The
-.Fa idtype
-and
-.Fa id
-arguments specify the set of processes to control.
-If multiple processes match the identifier,
-.Nm
-will make a
-.Dq best effort
-to control as many of the selected processes as possible.
-An error is only returned if no selected processes successfully complete
-the request.
-The following identifier types are supported:
-.Bl -tag -width P_PGID
-.It Dv P_PID
-Control the process with the process ID
-.Fa id .
-.Fa id
-zero is a shortcut for the calling process ID.
-.It Dv P_PGID
-Control processes belonging to the process group with the ID
-.Fa id .
-.El
-.Pp
-The control request to perform is specified by the
-.Fa cmd
-argument.
-.Pp
-All status changing requests
-.Dv *_CTL
-require the caller to have the right to debug the target.
-All status query requests
-.DV *_STATUS
-require the caller to have the right to observe the target.
-.Pp
-The following commands are supported:
-.Bl -tag -width PROC_TRAPCAP_STATUS
-.It Dv PROC_ASLR_CTL
-Controls the Address Space Layout Randomization (ASLR) in the program
-images created
-by
-.Xr execve 2
-in the specified process or its descendants that did not changed
-the control nor modified it by other means.
-The
-.Fa data
-parameter must point to the integer variable holding one of the following
-values:
-.Bl -tag -width PROC_ASLR_FORCE_DISABLE
-.It Dv PROC_ASLR_FORCE_ENABLE
-Request that ASLR is enabled after execution, even if it is disabled
-system-wide.
-The image flag and set-uid might prevent ASLR enablement still.
-.It Dv PROC_ASLR_FORCE_DISABLE
-Request that ASLR is disabled after execution.
-Same notes as for
-.Dv PROC_ASLR_FORCE_ENABLE
-apply.
-.It Dv PROC_ASLR_NOFORCE
-Use the system-wide configured policy for ASLR.
-.El
-.It Dv PROC_ASLR_STATUS
-Returns the current status of ASLR enablement for the target process.
-The
-.Fa data
-parameter must point to the integer variable, where one of the
-following values is written:
-.Bl -tag -width PROC_ASLR_FORCE_DISABLE
-.It Dv PROC_ASLR_FORCE_ENABLE
-.It Dv PROC_ASLR_FORCE_DISABLE
-.It Dv PROC_ASLR_NOFORCE
-.El
-.Pp
-If the currently executed image in the process itself has ASLR enabled,
-the
-.Dv PROC_ASLR_ACTIVE
-flag is or-ed with the value listed above.
-.It Dv PROC_PROTMAX_CTL
-Controls implicit application of PROT_MAX protection equal to the
-.Fa prot
-argument of the
-.Xr mmap 2
-syscall, in the target process.
-The
-.Fa data
-parameter must point to the integer variable holding one of the following
-values:
-.Bl -tag -width PROC_PROTMAX_FORCE_DISABLE
-.It Dv PROC_PROTMAX_FORCE_ENABLE
-Enables implicit PROT_MAX application,
-even if it is disabled system-wide by the sysctl
-.Va vm.imply_prot_max .
-The image flag might still prevent the enablement.
-.It Dv PROC_PROTMAX_FORCE_DISABLE
-Request that implicit application of PROT_MAX be disabled.
-Same notes as for
-.Dv PROC_PROTMAX_FORCE_ENABLE
-apply.
-.It Dv PROC_PROTMAX_NOFORCE
-Use the system-wide configured policy for PROT_MAX.
-.El
-.It Dv PROC_PROTMAX_STATUS
-Returns the current status of implicit PROT_MAX enablement for the
-target process.
-The
-.Fa data
-parameter must point to the integer variable, where one of the
-following values is written:
-.Bl -tag -width PROC_PROTMAX_FORCE_DISABLE
-.It Dv PROC_PROTMAX_FORCE_ENABLE
-.It Dv PROC_PROTMAX_FORCE_DISABLE
-.It Dv PROC_PROTMAX_NOFORCE
-.El
-.Pp
-If the currently executed image in the process itself has implicit PROT_MAX
-application enabled, the
-.Dv PROC_PROTMAX_ACTIVE
-flag is or-ed with the value listed above.
-.It Dv PROC_SPROTECT
-Set process protection state.
-This is used to mark a process as protected from being killed if the system
-exhausts the available memory and swap.
-The
-.Fa data
-parameter must point to an integer containing an operation and zero or more
-optional flags.
-The following operations are supported:
-.Bl -tag -width PPROT_CLEAR
-.It Dv PPROT_SET
-Mark the selected processes as protected.
-.It Dv PPROT_CLEAR
-Clear the protected state of selected processes.
-.El
-.Pp
-The following optional flags are supported:
-.Bl -tag -width PPROT_DESCEND
-.It Dv PPROT_DESCEND
-Apply the requested operation to all child processes of each selected process
-in addition to each selected process.
-.It Dv PPROT_INHERIT
-When used with
-.Dv PPROT_SET ,
-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.
-Reaper status means that children orphaned by the reaper's descendants
-that were forked after the acquisition of reaper status are reparented to the
-reaper process.
-After system initialization,
-.Xr init 8
-is the default reaper.
-.It Dv PROC_REAP_RELEASE
-Release 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 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 REAPER_STATUS_REALINIT
-.It Dv REAPER_STATUS_OWNED
-The specified process has acquired 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 among the descendants.
-It is possible to have a child whose reaper is not the specified process,
-since the reaper for any existing children is not reset on the
-.Dv PROC_REAP_ACQUIRE
-operation.
-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 REAPER_PIDINFO_REAPER
-.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.
-.It Dv REAPER_PIDINFO_REAPER
-The reported process is itself a reaper.
-The descendants of the subordinate reaper are not reported.
-.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 for
-.Xr kill 2 .
-The
-.Fa rk_flags
-field further directs the operation.
-It is or-ed from the following flags:
-.Bl -tag -width 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 permission problems.
-If no such process exists, 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 the
-.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 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 the
-.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 persists 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 the
-.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.
-.It Dv PROC_TRAPCAP_CTL
-Controls the capability mode sandbox actions for the specified
-sandboxed processes,
-on a return from any syscall which gives either a
-.Er ENOTCAPABLE
-or
-.Er ECAPMODE
-error.
-If the control is enabled, such errors from the syscalls cause
-delivery of the synchronous
-.Dv SIGTRAP
-signal to the thread immediately before returning from the syscalls.
-.Pp
-Possible values for the
-.Fa data
-argument are:
-.Bl -tag -width PROC_TRAPCAP_CTL_DISABLE
-.It Dv PROC_TRAPCAP_CTL_ENABLE
-Enable the
-.Dv SIGTRAP
-signal delivery on capability mode access violations.
-The enabled mode is inherited by the children of the process,
-and is kept after
-.Xr fexecve 2
-calls.
-.It Dv PROC_TRAPCAP_CTL_DISABLE
-Disable the signal delivery on capability mode access violations.
-Note that the global sysctl
-.Dv kern.trap_enotcap
-might still cause the signal to be delivered.
-See
-.Xr capsicum 4 .
-.El
-.Pp
-On signal delivery, the
-.Va si_errno
-member of the
-.Fa siginfo
-signal handler parameter is set to the syscall error value,
-and the
-.Va si_code
-member is set to
-.Dv TRAP_CAP .
-The system call number is stored in the
-.Va si_syscall
-field of the
-.Fa siginfo
-signal handler parameter.
-The other system call parameters can be read from the
-.Fa ucontext_t
-but the system call number is typically stored in the register
-that also contains the return value and so is unavailable in the
-signal handler.
-.Pp
-See
-.Xr capsicum 4
-for more information about the capability mode.
-.It Dv PROC_TRAPCAP_STATUS
-Return the current status of signalling capability mode access
-violations for the specified process.
-The integer value pointed to by the
-.Fa data
-argument is set to the
-.Dv PROC_TRAPCAP_CTL_ENABLE
-value if the process control enables signal delivery, and to
-.Dv PROC_TRAPCAP_CTL_DISABLE
-otherwise.
-.Pp
-See the note about sysctl
-.Dv kern.trap_enotcap
-above, which gives independent global control of signal delivery.
-.It Dv PROC_PDEATHSIG_CTL
-Request the delivery of a signal when the parent of the calling
-process exits.
-.Fa idtype
-must be
-.Dv P_PID
-and
-.Fa id
-must be the either caller's pid or zero, with no difference in effect.
-The value is cleared for child processes
-and when executing set-user-ID or set-group-ID binaries.
-.Fa data
-must point to a value of type
-.Vt int
-indicating the signal
-that should be delivered to the caller.
-Use zero to cancel a previously requested signal delivery.
-.It Dv PROC_PDEATHSIG_STATUS
-Query the current signal number that will be delivered when the parent
-of the calling process exits.
-.Fa idtype
-must be
-.Dv P_PID
-and
-.Fa id
-must be the either caller's pid or zero, with no difference in effect.
-.Fa data
-must point to a memory location that can hold a value of type
-.Vt int .
-If signal delivery has not been requested, it will contain zero
-on return.
-.It Dv PROC_STACKGAP_CTL
-Controls the stack gaps in the specified process.
-A stack gap is the part of the growth area for a
-.Dv MAP_STACK
-mapped region that is reserved and never filled by memory.
-Instead, the process is guaranteed to receive a
-.Dv SIGSEGV
-signal on accessing pages in the gap.
-Gaps protect against stack overflow corrupting memory adjacent
-to the stack.
-.Pp
-The
-.Fa data
-argument must point to an integer variable containing flags.
-The following flags are allowed:
-.Bl -tag -width PROC_STACKGAP_DISABLE_EXEC
-.It Dv PROC_STACKGAP_ENABLE
-This flag is only accepted for consistency with
-.Dv PROC_STACKGAP_STATUS .
-If stack gaps are enabled, the flag is ignored.
-If disabled, the flag causes an
-.Ev EINVAL
-error to be returned.
-After gaps are disabled in a process, they can only be re-enabled when an
-.Xr execve 2
-is performed.
-.It Dv PROC_STACKGAP_DISABLE
-Disable stack gaps for the process.
-For existing stacks, the gap is no longer a reserved part of the growth
-area and can be filled by memory on access.
-.It Dv PROC_STACKGAP_ENABLE_EXEC
-Enable stack gaps for programs started after an
-.Xr execve 2
-by the specified process.
-.It Dv PROC_STACKGAP_DISABLE_EXEC
-Inherit disabled stack gaps state after
-.Xr execve 2 .
-In other words, if the currently executing program has stack gaps disabled,
-they are kept disabled on exec.
-If gaps were enabled, they are kept enabled after exec.
-.El
-.Pp
-The stack gap state is inherited from the parent on
-.Xr fork 2 .
-.It Dv PROC_STACKGAP_STATUS
-Returns the current stack gap state for the specified process.
-.Fa data
-must point to an integer variable, which is used to return a bitmask
-consisting of the following flags:
-.Bl -tag -width PROC_STACKGAP_DISABLE_EXEC
-.It Dv PROC_STACKGAP_ENABLE
-Stack gaps are enabled.
-.It Dv PROC_STACKGAP_DISABLE
-Stack gaps are disabled.
-.It Dv PROC_STACKGAP_ENABLE_EXEC
-Stack gaps are enabled in the process after
-.Xr execve 2 .
-.It Dv PROC_STACKGAP_DISABLE_EXEC
-Stack gaps are disabled in the process after
-.Xr execve 2 .
-.El
-.It Dv PROC_NO_NEW_PRIVS_CTL
-Allows one to ignore the SUID and SGID bits on the program
-images activated by
-.Xr execve 2
-in the specified process and its future descendants.
-The
-.Fa data
-parameter must point to the integer variable holding the following
-value:
-.Bl -tag -width PROC_NO_NEW_PRIVS_ENABLE
-.It Dv PROC_NO_NEW_PRIVS_ENABLE
-Request SUID and SGID bits to be ignored.
-.El
-.Pp
-It is not possible to disable it once it has been enabled.
-.It Dv PROC_NO_NEW_PRIVS_STATUS
-Returns the current status of SUID/SGID enablement for the target process.
-The
-.Fa data
-parameter must point to the integer variable, where one of the
-following values is written:
-.Bl -tag -width PROC_NO_NEW_PRIVS_DISABLE
-.It Dv PROC_NO_NEW_PRIVS_ENABLE
-.It Dv PROC_NO_NEW_PRIVS_DISABLE
-.El
-.It Dv PROC_WXMAP_CTL
-Controls the 'write exclusive against execution' permissions for the
-mappings in the process address space.
-It overrides the global settings established by the
-.Dv kern.elf{32/64}.allow_wx
-sysctl,
-and the corresponding bit in the ELF control note, see
-.Xr elfctl 1 .
-.Pp
-The
-.Fa data
-parameter must point to the integer variable holding one of the
-following values:
-.Bl -tag -width PROC_WX_MAPPINGS_DISALLOW_EXEC
-.It Dv PROC_WX_MAPPINGS_PERMIT
-Enable creation of mappings that have both write and execute
-protection attributes, in the specified process' address space.
-.It Dv PROC_WX_MAPPINGS_DISALLOW_EXEC
-In the new address space created by
-.Xr execve 2 ,
-disallow creation of mappings that have both write and execute
-permissions.
-.El
-.Pp
-Once creation of writeable and executable mappings is allowed,
-it is impossible (and pointless) to disallow it.
-The only way to ensure the absence of such mappings after they
-were enabled in a given process, is to set the
-.Dv PROC_WX_MAPPINGS_DISALLOW_EXEC
-flag and
-.Xr execve 2
-an image.
-.It Dv PROC_WXMAP_STATUS
-Returns the current status of the 'write exclusive against execution'
-enforcement for the specified process.
-The
-.Dv data
-parameter must point to the integer variable, where one of the
-following values is written:
-.Bl -tag -width PROC_WX_MAPPINGS_DISALLOW_EXEC
-.It Dv PROC_WX_MAPPINGS_PERMIT
-Creation of simultaneously writable and executable mapping is permitted,
-otherwise the process cannot create such mappings.
-.It Dv PROC_WX_MAPPINGS_DISALLOW_EXEC
-After
-.Xr execve 2 ,
-the new address space should disallow creation of simultaneously
-writable and executable mappings.
-.El
-.Pp
-Additionally, if the address space of the process disallows
-creation of simultaneously writable and executable mappings and
-it is guaranteed that no such mapping was created since address space
-creation, the
-.Dv PROC_WXORX_ENFORCE
-flag is set in the returned value.
-.El
-.Sh x86 MACHINE-SPECIFIC REQUESTS
-.Bl -tag -width PROC_KPTI_STATUS
-.It Dv PROC_KPTI_CTL
-AMD64 only.
-Controls the Kernel Page Table Isolation (KPTI) option for the children
-of the specified process.
-For the command to work, the
-.Va vm.pmap.kpti
-tunable must be enabled on boot.
-It is not possible to change the KPTI setting for a running process,
-except at the
-.Xr execve 2 ,
-where the address space is reinitialized.
-.Pp
-The
-.Fa data
-parameter must point to an integer variable containing one of the
-following commands:
-.Bl -tag -width PROC_KPTI_CTL_DISABLE_ON_EXEC
-.It Dv PROC_KPTI_CTL_ENABLE_ON_EXEC
-Enable KPTI after
-.Xr execve 2 .
-.It Dv PROC_KPTI_CTL_DISABLE_ON_EXEC
-Disable KPTI after
-.Xr execve 2 .
-Only root or a process having the
-.Va PRIV_IO
-privilege might use this option.
-.El
-.It Dv PROC_KPTI_STATUS
-Returns the current KPTI status for the specified process.
-.Fa data
-must point to the integer variable, which returns the
-following statuses:
-.Bl -tag -width PROC_KPTI_CTL_DISABLE_ON_EXEC
-.It Dv PROC_KPTI_CTL_ENABLE_ON_EXEC
-.It Dv PROC_KPTI_CTL_DISABLE_ON_EXEC
-.El
-.Pp
-The status is or-ed with the
-.Va PROC_KPTI_STATUS_ACTIVE
-in case KPTI is active for the current address space of the process.
-.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 utilized to reliably protect cryptographic
-keying material or other confidential data.
-.Pp
-Note that processes can trivially bypass the 'no simultaneously
-writable and executable mappings' policy by first marking some mapping
-as writeable and write code to it, then removing write and adding
-execute permission.
-This may be legitimately required by some programs, such as JIT compilers.
-.Sh RETURN VALUES
-If an error occurs, a value of -1 is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn procctl
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa data
-parameter points outside the process's allocated address space.
-.It Bq Er EINVAL
-The
-.Fa cmd
-argument specifies an unsupported command.
-.Pp
-The
-.Fa idtype
-argument specifies an unsupported identifier type.
-.It Bq Er EPERM
-The calling process does not have permission to perform the requested
-operation on any of the selected processes.
-.It Bq Er ESRCH
-No processes matched the requested
-.Fa idtype
-and
-.Fa id .
-.It Bq Er EINVAL
-An invalid operation or flag was passed in
-.Fa data
-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
-.Po Dv PROC_TRACE_CTL_ENABLE Pc ,
-or to disable persistence of
-.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
-or
-.Dv PROC_TRAPCAP_CTL
-request is invalid.
-.It Bq Er EINVAL
-The
-.Dv PROC_PDEATHSIG_CTL
-or
-.Dv PROC_PDEATHSIG_STATUS
-request referenced an unsupported
-.Fa id ,
-.Fa idtype
-or invalid signal number.
-.El
-.Sh SEE ALSO
-.Xr dtrace 1 ,
-.Xr proccontrol 1 ,
-.Xr protect 1 ,
-.Xr cap_enter 2 ,
-.Xr kill 2 ,
-.Xr ktrace 2 ,
-.Xr mmap 2 ,
-.Xr mprotect 2 ,
-.Xr ptrace 2 ,
-.Xr wait 2 ,
-.Xr capsicum 4 ,
-.Xr hwpmc 4 ,
-.Xr init 8
-.Sh HISTORY
-The
-.Fn procctl
-function appeared in
-.Fx 10.0 .
-.Pp
-The reaper facility is based on a similar feature of Linux and
-DragonflyBSD, and first appeared in
-.Fx 10.2 .
-.Pp
-The
-.Dv PROC_PDEATHSIG_CTL
-facility is based on the prctl(PR_SET_PDEATHSIG, ...) feature of Linux,
-and first appeared in
-.Fx 11.2 .
-.Pp
-The ASLR support was added to system for the checklists compliance in
-.Fx 13.0 .
diff --git a/lib/libc/sys/profil.2 b/lib/libc/sys/profil.2
deleted file mode 100644
index cdaa32a7f939..000000000000
--- a/lib/libc/sys/profil.2
+++ /dev/null
@@ -1,122 +0,0 @@
-.\" Copyright (c) 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" This code is derived from software contributed to Berkeley by
-.\" Donn Seeley of BSDI.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)profil.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2017
-.Dt PROFIL 2
-.Os
-.Sh NAME
-.Nm profil
-.Nd control process profiling
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn profil "char *samples" "size_t size" "vm_offset_t offset" "int scale"
-.Sh DESCRIPTION
-The
-.Fn profil
-system call enables or disables
-program counter profiling of the current process.
-If profiling is enabled,
-then at every profiling clock tick,
-the kernel updates an appropriate count in the
-.Fa samples
-buffer.
-The frequency of the profiling clock is recorded
-in the header in the profiling output file.
-.Pp
-The buffer
-.Fa samples
-contains
-.Fa size
-bytes and is divided into
-a series of 16-bit bins.
-Each bin counts the number of times the program counter
-was in a particular address range in the process
-when a profiling clock tick occurred while profiling was enabled.
-For a given program counter address,
-the number of the corresponding bin is given
-by the relation:
-.Bd -literal -offset indent
-[(pc - offset) / 2] * scale / 65536
-.Ed
-.Pp
-The
-.Fa offset
-argument is the lowest address at which
-the kernel takes program counter samples.
-The
-.Fa scale
-argument ranges from 1 to 65536 and
-can be used to change the span of the bins.
-A scale of 65536 maps each bin to 2 bytes of address range;
-a scale of 32768 gives 4 bytes, 16384 gives 8 bytes and so on.
-Intermediate values provide approximate intermediate ranges.
-A
-.Fa scale
-value of 0 disables profiling.
-.Sh RETURN VALUES
-.Rv -std profil
-.Sh FILES
-.Bl -tag -width /usr/lib/gcrt0.o -compact
-.It Pa /usr/lib/gcrt0.o
-profiling C run-time startup file
-.It Pa gmon.out
-conventional name for profiling output file
-.El
-.Sh ERRORS
-The following error may be reported:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The buffer
-.Fa samples
-contains an invalid address.
-.El
-.Sh SEE ALSO
-.Xr gprof 1
-.Sh HISTORY
-The
-.Fn profil
-function appeared in
-.At v6 .
-.Sh BUGS
-This routine should be named
-.Fn profile .
-.Pp
-The
-.Fa samples
-argument should really be a vector of type
-.Fa "unsigned short" .
-.Pp
-The format of the gmon.out file is undocumented.
diff --git a/lib/libc/sys/pselect.2 b/lib/libc/sys/pselect.2
deleted file mode 100644
index 6221c473e7d7..000000000000
--- a/lib/libc/sys/pselect.2
+++ /dev/null
@@ -1,123 +0,0 @@
-.\"
-.\" Copyright 2002 Massachusetts Institute of Technology
-.\"
-.\" Permission to use, copy, modify, and distribute this software and
-.\" its documentation for any purpose and without fee is hereby
-.\" granted, provided that both the above copyright notice and this
-.\" permission notice appear in all copies, that both the above
-.\" copyright notice and this permission notice appear in all
-.\" supporting documentation, and that the name of M.I.T. not be used
-.\" in advertising or publicity pertaining to distribution of the
-.\" software without specific, written prior permission. M.I.T. makes
-.\" no representations about the suitability of this software for any
-.\" purpose. It is provided "as is" without express or implied
-.\" warranty.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS
-.\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
-.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
-.\" SHALL M.I.T. 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 16, 2013
-.Dt PSELECT 2
-.Os
-.Sh NAME
-.Nm pselect
-.Nd synchronous I/O multiplexing a la POSIX.1g
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/select.h
-.Ft int
-.Fo pselect
-.Fa "int nfds"
-.Fa "fd_set * restrict readfds"
-.Fa "fd_set * restrict writefds"
-.Fa "fd_set * restrict exceptfds"
-.Fa "const struct timespec * restrict timeout"
-.Fa "const sigset_t * restrict newsigmask"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn pselect
-function was introduced by
-.St -p1003.1g-2000
-as a slightly stronger version of
-.Xr select 2 .
-The
-.Fa nfds , readfds , writefds ,
-and
-.Fa exceptfds
-arguments are all identical to the analogous arguments of
-.Fn select .
-The
-.Fa timeout
-argument in
-.Fn pselect
-points to a
-.Vt "const struct timespec"
-rather than the (modifiable)
-.Vt "struct timeval"
-used by
-.Fn select ;
-as in
-.Fn select ,
-a null pointer may be passed to indicate that
-.Fn pselect
-should wait indefinitely.
-Finally,
-.Fa newsigmask
-specifies a signal mask which is set while waiting for input.
-When
-.Fn pselect
-returns, the original signal mask is restored.
-.Pp
-See
-.Xr select 2
-for a more detailed discussion of the semantics of this interface, and
-for macros used to manipulate the
-.Vt "fd_set"
-data type.
-.Sh RETURN VALUES
-The
-.Fn pselect
-function returns the same values and under the same conditions as
-.Fn select .
-.Sh ERRORS
-The
-.Fn pselect
-function may fail for any of the reasons documented for
-.Xr select 2
-and (if a signal mask is provided)
-.Xr sigprocmask 2 .
-.Sh SEE ALSO
-.Xr kqueue 2 ,
-.Xr poll 2 ,
-.Xr select 2 ,
-.Xr sigprocmask 2 ,
-.Xr sigsuspend 2
-.Sh STANDARDS
-The
-.Fn pselect
-function conforms to
-.St -p1003.1-2001 .
-.Sh HISTORY
-The
-.Fn pselect
-function first appeared in
-.Fx 5.0 .
-.Sh AUTHORS
-The first implementation of
-.Fn pselect
-function and this manual page were written by
-.An Garrett Wollman Aq Mt wollman@FreeBSD.org .
diff --git a/lib/libc/sys/pselect.c b/lib/libc/sys/pselect.c
index a623a7d5cc74..38477e39af44 100644
--- a/lib/libc/sys/pselect.c
+++ b/lib/libc/sys/pselect.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -44,8 +40,5 @@ 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));
+ return (INTERPOS_SYS(pselect, n, rs, ws, es, t, s));
}
diff --git a/lib/libc/sys/ptrace.2 b/lib/libc/sys/ptrace.2
deleted file mode 100644
index cceb0d0d05c8..000000000000
--- a/lib/libc/sys/ptrace.2
+++ /dev/null
@@ -1,1354 +0,0 @@
-.\" $FreeBSD$
-.\" $NetBSD: ptrace.2,v 1.2 1995/02/27 12:35:37 cgd Exp $
-.\"
-.\" This file is in the public domain.
-.Dd January 27, 2022
-.Dt PTRACE 2
-.Os
-.Sh NAME
-.Nm ptrace
-.Nd process tracing and debugging
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ptrace.h
-.Ft int
-.Fn ptrace "int request" "pid_t pid" "caddr_t addr" "int data"
-.Sh DESCRIPTION
-The
-.Fn ptrace
-system call
-provides tracing and debugging facilities.
-It allows one process
-(the
-.Em tracing
-process)
-to control another
-(the
-.Em traced
-process).
-The tracing process must first attach to the traced process, and then
-issue a series of
-.Fn ptrace
-system calls to control the execution of the process, as well as access
-process memory and register state.
-For the duration of the tracing session, the traced process will be
-.Dq re-parented ,
-with its parent process ID (and resulting behavior)
-changed to the tracing process.
-It is permissible for a tracing process to attach to more than one
-other process at a time.
-When the tracing process has completed its work, it must detach the
-traced process; if a tracing process exits without first detaching all
-processes it has attached, those processes will be killed.
-.Pp
-Most of the time, the traced process runs normally, but when it
-receives a signal
-(see
-.Xr sigaction 2 ) ,
-it stops.
-The tracing process is expected to notice this via
-.Xr wait 2
-or the delivery of a
-.Dv SIGCHLD
-signal, examine the state of the stopped process, and cause it to
-terminate or continue as appropriate.
-The signal may be a normal process signal, generated as a result of
-traced process behavior, or use of the
-.Xr kill 2
-system call; alternatively, it may be generated by the tracing facility
-as a result of attaching, stepping by the tracing
-process,
-or an event in the traced process.
-The tracing process may choose to intercept the signal, using it to
-observe process behavior (such as
-.Dv SIGTRAP ) ,
-or forward the signal to the process if appropriate.
-The
-.Fn ptrace
-system call
-is the mechanism by which all this happens.
-.Pp
-A traced process may report additional signal stops corresponding to
-events in the traced process.
-These additional signal stops are reported as
-.Dv SIGTRAP
-or
-.Dv SIGSTOP
-signals.
-The tracing process can use the
-.Dv PT_LWPINFO
-request to determine which events are associated with a
-.Dv SIGTRAP
-or
-.Dv SIGSTOP
-signal.
-Note that multiple events may be associated with a single signal.
-For example, events indicated by the
-.Dv PL_FLAG_BORN ,
-.Dv PL_FLAG_FORKED ,
-and
-.Dv PL_FLAG_EXEC
-flags are also reported as a system call exit event
-.Pq Dv PL_FLAG_SCX .
-The signal stop for a new child process enabled via
-.Dv PTRACE_FORK
-will report a
-.Dv SIGSTOP
-signal.
-All other additional signal stops use
-.Dv SIGTRAP .
-.Sh DETACH AND TERMINATION
-.Pp
-Normally, exiting tracing process should wait for all pending
-debugging events and then detach from all alive traced processes
-before exiting using
-.Dv PT_DETACH
-request.
-If tracing process exits without detaching, for instance due to abnormal
-termination, the destiny of the traced children processes is determined
-by the
-.Dv kern.kill_on_debugger_exit
-sysctl control.
-.Pp
-If the control is set to the default value 1, such traced processes
-are terminated.
-If set to zero, kernel implicitly detaches traced processes.
-Traced processes are un-stopped if needed, and then continue the execution
-without tracing.
-Kernel drops any
-.Dv SIGTRAP
-signals queued to the traced children, which could be either generated by
-not yet consumed debug events, or sent by other means, the later should
-not be done anyway.
-.Sh DISABLING PTRACE
-The
-.Nm
-subsystem provides rich facilities to manipulate other processes state.
-Sometimes it may be desirable to disallow it either completely, or limit
-its scope.
-The following controls are provided for this:
-.Bl -tag -width security.bsd.unprivileged_proc_debug
-.It Dv security.bsd.allow_ptrace
-Setting this sysctl to zero value makes
-.Xr ptrace 2
-return
-.Er ENOSYS
-always as if the syscall is not implemented by the kernel.
-.It Dv security.bsd.unprivileged_proc_debug
-Setting this sysctl to zero disallows use of
-.Fn ptrace
-by unprivileged processes.
-.It Dv security.bsd.see_other_uids
-Setting this sysctl to zero value disallows
-.Fn ptrace
-requests from targeting processes with the real user identifier different
-from the real user identifier of the caller.
-The requests return
-.Er ESRCH
-if policy is not met.
-.It Dv security.bsd.see_other_gids
-Setting this sysctl to zero value disallows
-.Fn ptrace
-requests from process belonging to a group that is not also one of
-the group of the target process.
-The requests return
-.Er ESRCH
-if policy is not met.
-.It Dv securelevel and init
-The
-.Xr init 1
-process can only be traced with
-.Nm
-if securelevel is zero.
-.It Dv procctl(2) PROC_TRACE_CTL
-Process can deny attempts to trace itself with
-.Xr procctl 2
-.Dv PROC_TRACE_CTL
-request.
-In this case requests return
-.Xr EPERM
-error.
-.El
-.Sh TRACING EVENTS
-.Pp
-Each traced process has a tracing event mask.
-An event in the traced process only reports a
-signal stop if the corresponding flag is set in the tracing event mask.
-The current set of tracing event flags include:
-.Bl -tag -width "Dv PTRACE_SYSCALL"
-.It Dv PTRACE_EXEC
-Report a stop for a successful invocation of
-.Xr execve 2 .
-This event is indicated by the
-.Dv PL_FLAG_EXEC
-flag in the
-.Va pl_flags
-member of
-.Vt "struct ptrace_lwpinfo" .
-.It Dv PTRACE_SCE
-Report a stop on each system call entry.
-This event is indicated by the
-.Dv PL_FLAG_SCE
-flag in the
-.Va pl_flags
-member of
-.Vt "struct ptrace_lwpinfo" .
-.It Dv PTRACE_SCX
-Report a stop on each system call exit.
-This event is indicated by the
-.Dv PL_FLAG_SCX
-flag in the
-.Va pl_flags
-member of
-.Vt "struct ptrace_lwpinfo" .
-.It Dv PTRACE_SYSCALL
-Report stops for both system call entry and exit.
-.It Dv PTRACE_FORK
-This event flag controls tracing for new child processes of a traced process.
-.Pp
-When this event flag is enabled,
-new child processes will enable tracing and stop before executing their
-first instruction.
-The new child process will include the
-.Dv PL_FLAG_CHILD
-flag in the
-.Va pl_flags
-member of
-.Vt "struct ptrace_lwpinfo" .
-The traced process will report a stop that includes the
-.Dv PL_FLAG_FORKED
-flag.
-The process ID of the new child process will also be present in the
-.Va pl_child_pid
-member of
-.Vt "struct ptrace_lwpinfo" .
-If the new child process was created via
-.Xr vfork 2 ,
-the traced process's stop will also include the
-.Dv PL_FLAG_VFORKED
-flag.
-Note that new child processes will be attached with the default
-tracing event mask;
-they do not inherit the event mask of the traced process.
-.Pp
-When this event flag is not enabled,
-new child processes will execute without tracing enabled.
-.It Dv PTRACE_LWP
-This event flag controls tracing of LWP
-.Pq kernel thread
-creation and destruction.
-When this event is enabled,
-new LWPs will stop and report an event with
-.Dv PL_FLAG_BORN
-set before executing their first instruction,
-and exiting LWPs will stop and report an event with
-.Dv PL_FLAG_EXITED
-set before completing their termination.
-.Pp
-Note that new processes do not report an event for the creation of their
-initial thread,
-and exiting processes do not report an event for the termination of the
-last thread.
-.It Dv PTRACE_VFORK
-Report a stop event when a parent process resumes after a
-.Xr vfork 2 .
-.Pp
-When a thread in the traced process creates a new child process via
-.Xr vfork 2 ,
-the stop that reports
-.Dv PL_FLAG_FORKED
-and
-.Dv PL_FLAG_SCX
-occurs just after the child process is created,
-but before the thread waits for the child process to stop sharing process
-memory.
-If a debugger is not tracing the new child process,
-it must ensure that no breakpoints are enabled in the shared process
-memory before detaching from the new child process.
-This means that no breakpoints are enabled in the parent process either.
-.Pp
-The
-.Dv PTRACE_VFORK
-flag enables a new stop that indicates when the new child process stops
-sharing the process memory of the parent process.
-A debugger can reinsert breakpoints in the parent process and resume it
-in response to this event.
-This event is indicated by setting the
-.Dv PL_FLAG_VFORK_DONE
-flag.
-.El
-.Pp
-The default tracing event mask when attaching to a process via
-.Dv PT_ATTACH ,
-.Dv PT_TRACE_ME ,
-or
-.Dv PTRACE_FORK
-includes only
-.Dv PTRACE_EXEC
-events.
-All other event flags are disabled.
-.Sh PTRACE REQUESTS
-.Pp
-The
-.Fa request
-argument specifies what operation is being performed; the meaning of
-the rest of the arguments depends on the operation, but except for one
-special case noted below, all
-.Fn ptrace
-calls are made by the tracing process, and the
-.Fa pid
-argument specifies the process ID of the traced process
-or a corresponding thread ID.
-The
-.Fa request
-argument
-can be:
-.Bl -tag -width "Dv PT_GET_EVENT_MASK"
-.It Dv PT_TRACE_ME
-This request is the only one used by the traced process; it declares
-that the process expects to be traced by its parent.
-All the other arguments are ignored.
-(If the parent process does not expect to trace the child, it will
-probably be rather confused by the results; once the traced process
-stops, it cannot be made to continue except via
-.Fn ptrace . )
-When a process has used this request and calls
-.Xr execve 2
-or any of the routines built on it
-(such as
-.Xr execv 3 ) ,
-it will stop before executing the first instruction of the new image.
-Also, any setuid or setgid bits on the executable being executed will
-be ignored.
-If the child was created by
-.Xr vfork 2
-system call or
-.Xr rfork 2
-call with the
-.Dv RFMEM
-flag specified, the debugging events are reported to the parent
-only after the
-.Xr execve 2
-is executed.
-.It Dv PT_READ_I , Dv PT_READ_D
-These requests read a single
-.Vt int
-of data from the traced process's address space.
-Traditionally,
-.Fn ptrace
-has allowed for machines with distinct address spaces for instruction
-and data, which is why there are two requests: conceptually,
-.Dv PT_READ_I
-reads from the instruction space and
-.Dv PT_READ_D
-reads from the data space.
-In the current
-.Fx
-implementation, these two requests are completely identical.
-The
-.Fa addr
-argument specifies the address
-(in the traced process's virtual address space)
-at which the read is to be done.
-This address does not have to meet any alignment constraints.
-The value read is returned as the return value from
-.Fn ptrace .
-.It Dv PT_WRITE_I , Dv PT_WRITE_D
-These requests parallel
-.Dv PT_READ_I
-and
-.Dv PT_READ_D ,
-except that they write rather than read.
-The
-.Fa data
-argument supplies the value to be written.
-.It Dv PT_IO
-This request allows reading and writing arbitrary amounts of data in
-the traced process's address space.
-The
-.Fa addr
-argument specifies a pointer to a
-.Vt "struct ptrace_io_desc" ,
-which is defined as follows:
-.Bd -literal
-struct ptrace_io_desc {
- int piod_op; /* I/O operation */
- void *piod_offs; /* child offset */
- void *piod_addr; /* parent offset */
- size_t piod_len; /* request length */
-};
-
-/*
- * Operations in piod_op.
- */
-#define PIOD_READ_D 1 /* Read from D space */
-#define PIOD_WRITE_D 2 /* Write to D space */
-#define PIOD_READ_I 3 /* Read from I space */
-#define PIOD_WRITE_I 4 /* Write to I space */
-.Ed
-.Pp
-The
-.Fa data
-argument is ignored.
-The actual number of bytes read or written is stored in
-.Va piod_len
-upon return.
-.It Dv PT_CONTINUE
-The traced process continues execution.
-The
-.Fa addr
-argument
-is an address specifying the place where execution is to be resumed
-(a new value for the program counter),
-or
-.Po Vt caddr_t Pc Ns 1
-to indicate that execution is to pick up where it left off.
-The
-.Fa data
-argument
-provides a signal number to be delivered to the traced process as it
-resumes execution, or 0 if no signal is to be sent.
-.It Dv PT_STEP
-The traced process is single stepped one instruction.
-The
-.Fa addr
-argument
-should be passed
-.Po Vt caddr_t Pc Ns 1 .
-The
-.Fa data
-argument
-provides a signal number to be delivered to the traced process as it
-resumes execution, or 0 if no signal is to be sent.
-.It Dv PT_KILL
-The traced process terminates, as if
-.Dv PT_CONTINUE
-had been used with
-.Dv SIGKILL
-given as the signal to be delivered.
-.It Dv PT_ATTACH
-This request allows a process to gain control of an otherwise
-unrelated process and begin tracing it.
-It does not need any cooperation from the to-be-traced process.
-In
-this case,
-.Fa pid
-specifies the process ID of the to-be-traced process, and the other
-two arguments are ignored.
-This request requires that the target process must have the same real
-UID as the tracing process, and that it must not be executing a setuid
-or setgid executable.
-(If the tracing process is running as root, these restrictions do not
-apply.)
-The tracing process will see the newly-traced process stop and may
-then control it as if it had been traced all along.
-.It Dv PT_DETACH
-This request is like PT_CONTINUE, except that it does not allow
-specifying an alternate place to continue execution, and after it
-succeeds, the traced process is no longer traced and continues
-execution normally.
-.It Dv PT_GETREGS
-This request reads the traced process's machine registers into the
-.Do
-.Vt "struct reg"
-.Dc
-(defined in
-.In machine/reg.h )
-pointed to by
-.Fa addr .
-.It Dv PT_SETREGS
-This request is the converse of
-.Dv PT_GETREGS ;
-it loads the traced process's machine registers from the
-.Do
-.Vt "struct reg"
-.Dc
-(defined in
-.In machine/reg.h )
-pointed to by
-.Fa addr .
-.It Dv PT_GETFPREGS
-This request reads the traced process's floating-point registers into
-the
-.Do
-.Vt "struct fpreg"
-.Dc
-(defined in
-.In machine/reg.h )
-pointed to by
-.Fa addr .
-.It Dv PT_SETFPREGS
-This request is the converse of
-.Dv PT_GETFPREGS ;
-it loads the traced process's floating-point registers from the
-.Do
-.Vt "struct fpreg"
-.Dc
-(defined in
-.In machine/reg.h )
-pointed to by
-.Fa addr .
-.It Dv PT_GETDBREGS
-This request reads the traced process's debug registers into
-the
-.Do
-.Vt "struct dbreg"
-.Dc
-(defined in
-.In machine/reg.h )
-pointed to by
-.Fa addr .
-.It Dv PT_SETDBREGS
-This request is the converse of
-.Dv PT_GETDBREGS ;
-it loads the traced process's debug registers from the
-.Do
-.Vt "struct dbreg"
-.Dc
-(defined in
-.In machine/reg.h )
-pointed to by
-.Fa addr .
-.It Dv PT_GETREGSET
-This request reads the registers from the traced process.
-The
-.Fa data
-argument specifies the register set to read, with the
-.Fa addr
-argument pointing at a
-.Vt "struct iovec"
-where the
-.Va iov_base
-field points to a register set specific structure to hold the registers,
-and the
-.Va iov_len
-field holds the length of the structure.
-.It Dv PT_SETREGSET
-This request writes to the registers of the traced process.
-The
-.Fa data
-argument specifies the register set to write to, with the
-.Fa addr
-argument pointing at a
-.Vt "struct iovec"
-where the
-.Va iov_base
-field points to a register set specific structure to hold the registers,
-and the
-.Va iov_len
-field holds the length of the structure.
-If
-.Va iov_base
-is NULL the kernel will return the expected length of the register set
-specific structure in the
-.Va iov_len
-field and not change the target register set.
-.It Dv PT_LWPINFO
-This request can be used to obtain information about the kernel thread,
-also known as light-weight process, that caused the traced process to stop.
-The
-.Fa addr
-argument specifies a pointer to a
-.Vt "struct ptrace_lwpinfo" ,
-which is defined as follows:
-.Bd -literal
-struct ptrace_lwpinfo {
- lwpid_t pl_lwpid;
- int pl_event;
- int pl_flags;
- sigset_t pl_sigmask;
- sigset_t pl_siglist;
- siginfo_t pl_siginfo;
- char pl_tdname[MAXCOMLEN + 1];
- pid_t pl_child_pid;
- u_int pl_syscall_code;
- u_int pl_syscall_narg;
-};
-.Ed
-.Pp
-The
-.Fa data
-argument is to be set to the size of the structure known to the caller.
-This allows the structure to grow without affecting older programs.
-.Pp
-The fields in the
-.Vt "struct ptrace_lwpinfo"
-have the following meaning:
-.Bl -tag -width indent -compact
-.It Va pl_lwpid
-LWP id of the thread
-.It Va pl_event
-Event that caused the stop.
-Currently defined events are:
-.Bl -tag -width "Dv PL_EVENT_SIGNAL" -compact
-.It Dv PL_EVENT_NONE
-No reason given
-.It Dv PL_EVENT_SIGNAL
-Thread stopped due to the pending signal
-.El
-.It Va pl_flags
-Flags that specify additional details about observed stop.
-Currently defined flags are:
-.Bl -tag -width indent -compact
-.It Dv PL_FLAG_SCE
-The thread stopped due to system call entry, right after the kernel is entered.
-The debugger may examine syscall arguments that are stored in memory and
-registers according to the ABI of the current process, and modify them,
-if needed.
-.It Dv PL_FLAG_SCX
-The thread is stopped immediately before syscall is returning to the usermode.
-The debugger may examine system call return values in the ABI-defined registers
-and/or memory.
-.It Dv PL_FLAG_EXEC
-When
-.Dv PL_FLAG_SCX
-is set, this flag may be additionally specified to inform that the
-program being executed by debuggee process has been changed by successful
-execution of a system call from the
-.Fn execve 2
-family.
-.It Dv PL_FLAG_SI
-Indicates that
-.Va pl_siginfo
-member of
-.Vt "struct ptrace_lwpinfo"
-contains valid information.
-.It Dv PL_FLAG_FORKED
-Indicates that the process is returning from a call to
-.Fn fork 2
-that created a new child process.
-The process identifier of the new process is available in the
-.Va pl_child_pid
-member of
-.Vt "struct ptrace_lwpinfo" .
-.It Dv PL_FLAG_CHILD
-The flag is set for first event reported from a new child which is
-automatically attached when
-.Dv PTRACE_FORK
-is enabled.
-.It Dv PL_FLAG_BORN
-This flag is set for the first event reported from a new LWP when
-.Dv PTRACE_LWP
-is enabled.
-It is reported along with
-.Dv PL_FLAG_SCX .
-.It Dv PL_FLAG_EXITED
-This flag is set for the last event reported by an exiting LWP when
-.Dv PTRACE_LWP
-is enabled.
-Note that this event is not reported when the last LWP in a process exits.
-The termination of the last thread is reported via a normal process exit
-event.
-.It Dv PL_FLAG_VFORKED
-Indicates that the thread is returning from a call to
-.Xr vfork 2
-that created a new child process.
-This flag is set in addition to
-.Dv PL_FLAG_FORKED .
-.It Dv PL_FLAG_VFORK_DONE
-Indicates that the thread has resumed after a child process created via
-.Xr vfork 2
-has stopped sharing its address space with the traced process.
-.El
-.It Va pl_sigmask
-The current signal mask of the LWP
-.It Va pl_siglist
-The current pending set of signals for the LWP.
-Note that signals that are delivered to the process would not appear
-on an LWP siglist until the thread is selected for delivery.
-.It Va pl_siginfo
-The siginfo that accompanies the signal pending.
-Only valid for
-.Dv PL_EVENT_SIGNAL
-stop when
-.Dv PL_FLAG_SI
-is set in
-.Va pl_flags .
-.It Va pl_tdname
-The name of the thread.
-.It Va pl_child_pid
-The process identifier of the new child process.
-Only valid for a
-.Dv PL_EVENT_SIGNAL
-stop when
-.Dv PL_FLAG_FORKED
-is set in
-.Va pl_flags .
-.It Va pl_syscall_code
-The ABI-specific identifier of the current system call.
-Note that for indirect system calls this field reports the indirected
-system call.
-Only valid when
-.Dv PL_FLAG_SCE
-or
-.Dv PL_FLAG_SCX
-is set in
-.Va pl_flags .
-.It Va pl_syscall_narg
-The number of arguments passed to the current system call not counting
-the system call identifier.
-Note that for indirect system calls this field reports the arguments
-passed to the indirected system call.
-Only valid when
-.Dv PL_FLAG_SCE
-or
-.Dv PL_FLAG_SCX
-is set in
-.Va pl_flags .
-.El
-.It Dv PT_GETNUMLWPS
-This request returns the number of kernel threads associated with the
-traced process.
-.It Dv PT_GETLWPLIST
-This request can be used to get the current thread list.
-A pointer to an array of type
-.Vt lwpid_t
-should be passed in
-.Fa addr ,
-with the array size specified by
-.Fa data .
-The return value from
-.Fn ptrace
-is the count of array entries filled in.
-.It Dv PT_SETSTEP
-This request will turn on single stepping of the specified process.
-Stepping is automatically disabled when a single step trap is caught.
-.It Dv PT_CLEARSTEP
-This request will turn off single stepping of the specified process.
-.It Dv PT_SUSPEND
-This request will suspend the specified thread.
-.It Dv PT_RESUME
-This request will resume the specified thread.
-.It Dv PT_TO_SCE
-This request will set the
-.Dv PTRACE_SCE
-event flag to trace all future system call entries and continue the process.
-The
-.Fa addr
-and
-.Fa data
-arguments are used the same as for
-.Dv PT_CONTINUE .
-.It Dv PT_TO_SCX
-This request will set the
-.Dv PTRACE_SCX
-event flag to trace all future system call exits and continue the process.
-The
-.Fa addr
-and
-.Fa data
-arguments are used the same as for
-.Dv PT_CONTINUE .
-.It Dv PT_SYSCALL
-This request will set the
-.Dv PTRACE_SYSCALL
-event flag to trace all future system call entries and exits and continue
-the process.
-The
-.Fa addr
-and
-.Fa data
-arguments are used the same as for
-.Dv PT_CONTINUE .
-.It Dv PT_GET_SC_ARGS
-For the thread which is stopped in either
-.Dv PL_FLAG_SCE
-or
-.Dv PL_FLAG_SCX
-state, that is, on entry or exit to a syscall,
-this request fetches the syscall arguments.
-.Pp
-The arguments are copied out into the buffer pointed to by the
-.Fa addr
-pointer, sequentially.
-Each syscall argument is stored as the machine word.
-Kernel copies out as many arguments as the syscall accepts,
-see the
-.Va pl_syscall_narg
-member of the
-.Vt struct ptrace_lwpinfo ,
-but not more than the
-.Fa data
-bytes in total are copied.
-.It Dv PT_GET_SC_RET
-Fetch the system call return values on exit from a syscall.
-This request is only valid for threads stopped in a syscall
-exit (the
-.Dv PL_FLAG_SCX
-state).
-The
-.Fa addr
-argument specifies a pointer to a
-.Vt "struct ptrace_sc_ret" ,
-which is defined as follows:
-.Bd -literal
-struct ptrace_sc_ret {
- register_t sr_retval[2];
- int sr_error;
-};
-.Ed
-.Pp
-The
-.Fa data
-argument is set to the size of the structure.
-.Pp
-If the system call completed successfully,
-.Va sr_error
-is set to zero and the return values of the system call are saved in
-.Va sr_retval .
-If the system call failed to execute,
-.Va sr_error
-field is set to a positive
-.Xr errno 2
-value.
-If the system call completed in an unusual fashion,
-.Va sr_error
-is set to a negative value:
-.Bl -tag -width Dv EJUSTRETURN -compact
-.It Dv ERESTART
-System call will be restarted.
-.It Dv EJUSTRETURN
-System call completed sucessfully but did not set a return value
-.Po for example,
-.Xr setcontext 2
-and
-.Xr sigreturn 2
-.Pc .
-.El
-.It Dv PT_FOLLOW_FORK
-This request controls tracing for new child processes of a traced process.
-If
-.Fa data
-is non-zero,
-.Dv PTRACE_FORK
-is set in the traced process's event tracing mask.
-If
-.Fa data
-is zero,
-.Dv PTRACE_FORK
-is cleared from the traced process's event tracing mask.
-.It Dv PT_LWP_EVENTS
-This request controls tracing of LWP creation and destruction.
-If
-.Fa data
-is non-zero,
-.Dv PTRACE_LWP
-is set in the traced process's event tracing mask.
-If
-.Fa data
-is zero,
-.Dv PTRACE_LWP
-is cleared from the traced process's event tracing mask.
-.It Dv PT_GET_EVENT_MASK
-This request reads the traced process's event tracing mask into the
-integer pointed to by
-.Fa addr .
-The size of the integer must be passed in
-.Fa data .
-.It Dv PT_SET_EVENT_MASK
-This request sets the traced process's event tracing mask from the
-integer pointed to by
-.Fa addr .
-The size of the integer must be passed in
-.Fa data .
-.It Dv PT_VM_TIMESTAMP
-This request returns the generation number or timestamp of the memory map of
-the traced process as the return value from
-.Fn ptrace .
-This provides a low-cost way for the tracing process to determine if the
-VM map changed since the last time this request was made.
-.It Dv PT_VM_ENTRY
-This request is used to iterate over the entries of the VM map of the traced
-process.
-The
-.Fa addr
-argument specifies a pointer to a
-.Vt "struct ptrace_vm_entry" ,
-which is defined as follows:
-.Bd -literal
-struct ptrace_vm_entry {
- int pve_entry;
- int pve_timestamp;
- u_long pve_start;
- u_long pve_end;
- u_long pve_offset;
- u_int pve_prot;
- u_int pve_pathlen;
- long pve_fileid;
- uint32_t pve_fsid;
- char *pve_path;
-};
-.Ed
-.Pp
-The first entry is returned by setting
-.Va pve_entry
-to zero.
-Subsequent entries are returned by leaving
-.Va pve_entry
-unmodified from the value returned by previous requests.
-The
-.Va pve_timestamp
-field can be used to detect changes to the VM map while iterating over the
-entries.
-The tracing process can then take appropriate action, such as restarting.
-By setting
-.Va pve_pathlen
-to a non-zero value on entry, the pathname of the backing object is returned
-in the buffer pointed to by
-.Va pve_path ,
-provided the entry is backed by a vnode.
-The
-.Va pve_pathlen
-field is updated with the actual length of the pathname (including the
-terminating null character).
-The
-.Va pve_offset
-field is the offset within the backing object at which the range starts.
-The range is located in the VM space at
-.Va pve_start
-and extends up to
-.Va pve_end
-(inclusive).
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_COREDUMP
-This request creates a coredump for the stopped program.
-The
-.Fa addr
-argument specifies a pointer to a
-.Vt "struct ptrace_coredump" ,
-which is defined as follows:
-.Bd -literal
-struct ptrace_coredump {
- int pc_fd;
- uint32_t pc_flags;
- off_t pc_limit;
-};
-.Ed
-The fields of the structure are:
-.Bl -tag -width pc_flags
-.It Dv pc_fd
-File descriptor to write the dump to.
-It must refer to a regular file, opened for writing.
-.It Dv pc_flags
-Flags.
-The following flags are defined:
-.Bl -tag -width PC_COMPRESS
-.It Dv PC_COMPRESS
-Request compression of the dump.
-.It Dv PC_ALL
-Include non-dumpable entries into the dump.
-The dumper ignores
-.Dv MAP_NOCORE
-flag of the process map entry, but device mappings are not dumped even with
-.Dv PC_ALL
-set.
-.El
-.It Dv pc_limit
-Maximum size of the coredump.
-Specify zero for no limit.
-.El
-.Pp
-The size of
-.Vt "struct ptrace_coredump"
-must be passed in
-.Fa data .
-.Pp
-The process must be stopped before dumping core.
-A single thread in the target process is temporarily unsuspended
-in kernel to write the dump.
-If the
-.Nm
-call fails before a thread is unsuspended, there is no event to
-.Xr waitpid 2
-for.
-If a thread was unsuspended, it will stop again before the
-.Nm
-call returns, and the process must be waited upon using
-.Xr waitpid 2
-to consume the new stop event.
-Since it is hard to deduce whether a thread was unsuspended before
-an error occurred, it is recommended to unconditionally perform
-.Xr waitpid 2
-with
-.Dv WNOHANG
-flag after
-.Dv PT_COREDUMP ,
-and silently accept zero result from it.
-.El
-.Sh ARM MACHINE-SPECIFIC REQUESTS
-.Bl -tag -width "Dv PT_SETVFPREGS"
-.It Dv PT_GETVFPREGS
-Return the thread's
-.Dv VFP
-machine state in the buffer pointed to by
-.Fa addr .
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_SETVFPREGS
-Set the thread's
-.Dv VFP
-machine state from the buffer pointed to by
-.Fa addr .
-.Pp
-The
-.Fa data
-argument is ignored.
-.El
-.Sh x86 MACHINE-SPECIFIC REQUESTS
-.Bl -tag -width "Dv PT_GETXSTATE_INFO"
-.It Dv PT_GETXMMREGS
-Copy the XMM FPU state into the buffer pointed to by the
-argument
-.Fa addr .
-The buffer has the same layout as the 32-bit save buffer for the
-machine instruction
-.Dv FXSAVE .
-.Pp
-This request is only valid for i386 programs, both on native 32-bit
-systems and on amd64 kernels.
-For 64-bit amd64 programs, the XMM state is reported as part of
-the FPU state returned by the
-.Dv PT_GETFPREGS
-request.
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_SETXMMREGS
-Load the XMM FPU state for the thread from the buffer pointed to
-by the argument
-.Fa addr .
-The buffer has the same layout as the 32-bit load buffer for the
-machine instruction
-.Dv FXRSTOR .
-.Pp
-As with
-.Dv PT_GETXMMREGS ,
-this request is only valid for i386 programs.
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_GETXSTATE_INFO
-Report which XSAVE FPU extensions are supported by the CPU
-and allowed in userspace programs.
-The
-.Fa addr
-argument must point to a variable of type
-.Vt struct ptrace_xstate_info ,
-which contains the information on the request return.
-.Vt struct ptrace_xstate_info
-is defined as follows:
-.Bd -literal
-struct ptrace_xstate_info {
- uint64_t xsave_mask;
- uint32_t xsave_len;
-};
-.Ed
-The
-.Dv xsave_mask
-field is a bitmask of the currently enabled extensions.
-The meaning of the bits is defined in the Intel and AMD
-processor documentation.
-The
-.Dv xsave_len
-field reports the length of the XSAVE area for storing the hardware
-state for currently enabled extensions in the format defined by the x86
-.Dv XSAVE
-machine instruction.
-.Pp
-The
-.Fa data
-argument value must be equal to the size of the
-.Vt struct ptrace_xstate_info .
-.It Dv PT_GETXSTATE
-Return the content of the XSAVE area for the thread.
-The
-.Fa addr
-argument points to the buffer where the content is copied, and the
-.Fa data
-argument specifies the size of the buffer.
-The kernel copies out as much content as allowed by the buffer size.
-The buffer layout is specified by the layout of the save area for the
-.Dv XSAVE
-machine instruction.
-.It Dv PT_SETXSTATE
-Load the XSAVE state for the thread from the buffer specified by the
-.Fa addr
-pointer.
-The buffer size is passed in the
-.Fa data
-argument.
-The buffer must be at least as large as the
-.Vt struct savefpu
-(defined in
-.Pa x86/fpu.h )
-to allow the complete x87 FPU and XMM state load.
-It must not be larger than the XSAVE state length, as reported by the
-.Dv xsave_len
-field from the
-.Vt struct ptrace_xstate_info
-of the
-.Dv PT_GETXSTATE_INFO
-request.
-Layout of the buffer is identical to the layout of the load area for the
-.Dv XRSTOR
-machine instruction.
-.It Dv PT_GETFSBASE
-Return the value of the base used when doing segmented
-memory addressing using the %fs segment register.
-The
-.Fa addr
-argument points to an
-.Vt unsigned long
-variable where the base value is stored.
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_GETGSBASE
-Like the
-.Dv PT_GETFSBASE
-request, but returns the base for the %gs segment register.
-.It Dv PT_SETFSBASE
-Set the base for the %fs segment register to the value pointed to
-by the
-.Fa addr
-argument.
-.Fa addr
-must point to the
-.Vt unsigned long
-variable containing the new base.
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_SETGSBASE
-Like the
-.Dv PT_SETFSBASE
-request, but sets the base for the %gs segment register.
-.El
-.Sh PowerPC MACHINE-SPECIFIC REQUESTS
-.Bl -tag -width "Dv PT_SETVRREGS"
-.It Dv PT_GETVRREGS
-Return the thread's
-.Dv ALTIVEC
-machine state in the buffer pointed to by
-.Fa addr .
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_SETVRREGS
-Set the thread's
-.Dv ALTIVEC
-machine state from the buffer pointed to by
-.Fa addr .
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_GETVSRREGS
-Return doubleword 1 of the thread's
-.Dv VSX
-registers VSR0-VSR31 in the buffer pointed to by
-.Fa addr .
-.Pp
-The
-.Fa data
-argument is ignored.
-.It Dv PT_SETVSRREGS
-Set doubleword 1 of the thread's
-.Dv VSX
-registers VSR0-VSR31 from the buffer pointed to by
-.Fa addr .
-.Pp
-The
-.Fa data
-argument is ignored.
-.El
-.Pp
-Additionally, other machine-specific requests can exist.
-.Sh RETURN VALUES
-Most requests return 0 on success and \-1 on error.
-Some requests can cause
-.Fn ptrace
-to return
-\-1
-as a non-error value, among them are
-.Dv PT_READ_I
-and
-.Dv PT_READ_D ,
-which return the value read from the process memory on success.
-To disambiguate,
-.Va errno
-can be set to 0 before the call and checked afterwards.
-.Pp
-The current
-.Fn ptrace
-implementation always sets
-.Va errno
-to 0 before calling into the kernel, both for historic reasons and for
-consistency with other operating systems.
-It is recommended to assign zero to
-.Va errno
-explicitly for forward compatibility.
-.Sh ERRORS
-The
-.Fn ptrace
-system call may fail if:
-.Bl -tag -width Er
-.It Bq Er ESRCH
-.Bl -bullet -compact
-.It
-No process having the specified process ID exists.
-.El
-.It Bq Er EINVAL
-.Bl -bullet -compact
-.It
-A process attempted to use
-.Dv PT_ATTACH
-on itself.
-.It
-The
-.Fa request
-argument
-was not one of the legal requests.
-.It
-The signal number
-(in
-.Fa data )
-to
-.Dv PT_CONTINUE
-was neither 0 nor a legal signal number.
-.It
-.Dv PT_GETREGS ,
-.Dv PT_SETREGS ,
-.Dv PT_GETFPREGS ,
-.Dv PT_SETFPREGS ,
-.Dv PT_GETDBREGS ,
-or
-.Dv PT_SETDBREGS
-was attempted on a process with no valid register set.
-(This is normally true only of system processes.)
-.It
-.Dv PT_VM_ENTRY
-was given an invalid value for
-.Fa pve_entry .
-This can also be caused by changes to the VM map of the process.
-.It
-The size (in
-.Fa data )
-provided to
-.Dv PT_LWPINFO
-was less than or equal to zero, or larger than the
-.Vt ptrace_lwpinfo
-structure known to the kernel.
-.It
-The size (in
-.Fa data )
-provided to the x86-specific
-.Dv PT_GETXSTATE_INFO
-request was not equal to the size of the
-.Vt struct ptrace_xstate_info .
-.It
-The size (in
-.Fa data )
-provided to the x86-specific
-.Dv PT_SETXSTATE
-request was less than the size of the x87 plus the XMM save area.
-.It
-The size (in
-.Fa data )
-provided to the x86-specific
-.Dv PT_SETXSTATE
-request was larger than returned in the
-.Dv xsave_len
-member of the
-.Vt struct ptrace_xstate_info
-from the
-.Dv PT_GETXSTATE_INFO
-request.
-.It
-The base value, provided to the amd64-specific requests
-.Dv PT_SETFSBASE
-or
-.Dv PT_SETGSBASE ,
-pointed outside of the valid user address space.
-This error will not occur in 32-bit programs.
-.El
-.It Bq Er EBUSY
-.Bl -bullet -compact
-.It
-.Dv PT_ATTACH
-was attempted on a process that was already being traced.
-.It
-A request attempted to manipulate a process that was being traced by
-some process other than the one making the request.
-.It
-A request
-(other than
-.Dv PT_ATTACH )
-specified a process that was not stopped.
-.El
-.It Bq Er EPERM
-.Bl -bullet -compact
-.It
-A request
-(other than
-.Dv PT_ATTACH )
-attempted to manipulate a process that was not being traced at all.
-.It
-An attempt was made to use
-.Dv PT_ATTACH
-on a process in violation of the requirements listed under
-.Dv PT_ATTACH
-above.
-.El
-.It Bq Er ENOENT
-.Bl -bullet -compact
-.It
-.Dv PT_VM_ENTRY
-previously returned the last entry of the memory map.
-No more entries exist.
-.El
-.It Bq Er ENOMEM
-.Bl -bullet -compact
-.It
-A
-.Dv PT_READ_I,
-.Dv PT_READ_D,
-.Dv PT_WRITE_I, or
-.Dv PT_WRITE_D
-request attempted to access an invalid address, or a memory allocation failure
-occurred when accessing process memory.
-.El
-.It Bq Er ENAMETOOLONG
-.Bl -bullet -compact
-.It
-.Dv PT_VM_ENTRY
-cannot return the pathname of the backing object because the buffer is not big
-enough.
-.Fa pve_pathlen
-holds the minimum buffer size required on return.
-.El
-.El
-.Sh SEE ALSO
-.Xr execve 2 ,
-.Xr sigaction 2 ,
-.Xr wait 2 ,
-.Xr execv 3 ,
-.Xr i386_clr_watch 3 ,
-.Xr i386_set_watch 3
-.Sh HISTORY
-The
-.Fn ptrace
-function appeared in
-.At v6 .
diff --git a/lib/libc/sys/ptrace.c b/lib/libc/sys/ptrace.c
deleted file mode 100644
index 2bb615fe563e..000000000000
--- a/lib/libc/sys/ptrace.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2016 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/ptrace.h>
-#include <errno.h>
-#include "libc_private.h"
-
-__weak_reference(_ptrace, ptrace);
-
-int
-_ptrace(int request, pid_t pid, caddr_t addr, int data)
-{
-
- errno = 0;
- return (__sys_ptrace(request, pid, addr, data));
-}
diff --git a/lib/libc/sys/quotactl.2 b/lib/libc/sys/quotactl.2
deleted file mode 100644
index 0ab87324575d..000000000000
--- a/lib/libc/sys/quotactl.2
+++ /dev/null
@@ -1,263 +0,0 @@
-.\" Copyright (c) 1983, 1990, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" This code is derived from software contributed to Berkeley by
-.\" Robert Elz at The University of Melbourne.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)quotactl.2 8.2 (Berkeley) 3/10/95
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt QUOTACTL 2
-.Os
-.Sh NAME
-.Nm quotactl
-.Nd manipulate file system quotas
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In ufs/ufs/quota.h
-.Ft int
-.Fn quotactl "const char *path" "int cmd" "int id" "void *addr"
-.Sh DESCRIPTION
-The
-.Fn quotactl
-system call enables, disables and
-manipulates file system quotas.
-A quota control command
-given by
-.Fa cmd
-operates on the given filename
-.Fa path
-for the given user or group
-.Fa id .
-(NOTE: One should use the QCMD macro defined in
-.In ufs/ufs/quota.h
-to formulate the value for
-.Fa cmd . )
-The address of an optional command specific data structure,
-.Fa addr ,
-may be given; its interpretation
-is discussed below with each command.
-.Pp
-For commands that use the
-.Fa id
-identifier, it must be either -1 or any positive value.
-The value of -1 indicates that the current UID or GID should be used.
-Any other negative value will return an error.
-.Pp
-Currently quotas are supported only for the
-.Dq ufs
-file system.
-For
-.Dq ufs ,
-a command is composed of a primary command (see below)
-and a command type used to interpret the
-.Fa id .
-Types are supported for interpretation of user identifiers (USRQUOTA)
-and group identifiers (GRPQUOTA).
-The
-.Dq ufs
-specific commands are:
-.Bl -tag -width Q_GETQUOTASIZEx
-.It Dv Q_QUOTAON
-Enable disk quotas for the file system specified by
-.Fa path .
-The command type specifies the type of the quotas being enabled.
-The
-.Fa addr
-argument specifies a file from which to take the quotas.
-The quota file must exist;
-it is normally created with the
-.Xr quotacheck 8
-program.
-The
-.Fa id
-argument is unused.
-Only the super-user may turn quotas on.
-.It Dv Q_QUOTAOFF
-Disable disk quotas for the file system specified by
-.Fa path .
-The command type specifies the type of the quotas being disabled.
-The
-.Fa addr
-and
-.Fa id
-arguments are unused.
-Only the super-user may turn quotas off.
-.It Dv Q_GETQUOTASIZE
-Get the wordsize used to represent the quotas for the user or group
-(as determined by the command type).
-Possible values are 32 for the old-style quota file
-and 64 for the new-style quota file.
-The
-.Fa addr
-argument is a pointer to an integer into which the size is stored.
-The identifier
-.Fa id
-is not used.
-.It Dv Q_GETQUOTA
-Get disk quota limits and current usage for the user or group
-(as determined by the command type) with identifier
-.Fa id .
-The
-.Fa addr
-argument
-is a pointer to a
-.Fa struct dqblk
-structure (defined in
-.In ufs/ufs/quota.h ) .
-.It Dv Q_SETQUOTA
-Set disk quota limits for the user or group
-(as determined by the command type) with identifier
-.Fa id .
-The
-.Fa addr
-argument
-is a pointer to a
-.Fa struct dqblk
-structure (defined in
-.In ufs/ufs/quota.h ) .
-The usage fields of the
-.Fa dqblk
-structure are ignored.
-This system call is restricted to the super-user.
-.It Dv Q_SETUSE
-Set disk usage limits for the user or group
-(as determined by the command type) with identifier
-.Fa id .
-The
-.Fa addr
-argument
-is a pointer to a
-.Fa struct dqblk
-structure (defined in
-.In ufs/ufs/quota.h ) .
-Only the usage fields are used.
-This system call is restricted to the super-user.
-.It Dv Q_SYNC
-Update the on-disk copy of quota usages.
-The command type specifies which type of quotas are to be updated.
-The
-.Fa id
-and
-.Fa addr
-arguments are ignored.
-.El
-.Sh RETURN VALUES
-.Rv -std quotactl
-.Sh ERRORS
-The
-.Fn quotactl
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EOPNOTSUPP
-The kernel has not been compiled with the
-.Dv QUOTA
-option.
-.It Bq Er EUSERS
-The quota table cannot be expanded.
-.It Bq Er EINVAL
-The
-.Fa cmd
-argument
-or the command type is invalid.
-In
-.Dv Q_GETQUOTASIZE ,
-.Dv Q_GETQUOTA ,
-.Dv Q_SETQUOTA ,
-and
-.Dv Q_SETUSE ,
-quotas are not currently enabled for this file system.
-.Pp
-The
-.Fa id
-argument to
-.Dv Q_GETQUOTA ,
-.Dv Q_SETQUOTA
-or
-.Dv Q_SETUSE
-is a negative value.
-.It Bq Er EACCES
-In
-.Dv Q_QUOTAON ,
-the quota file is not a plain file.
-.It Bq Er EACCES
-Search permission is denied for a component of a path prefix.
-.It Bq Er ENOTDIR
-A component of a path prefix was not a directory.
-.It Bq Er ENAMETOOLONG
-A component of either pathname exceeded 255 characters,
-or the entire length of either path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A filename does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating a pathname.
-.It Bq Er EROFS
-In
-.Dv Q_QUOTAON ,
-either the file system on which quotas are to be enabled is mounted read-only
-or the quota file resides on a read-only file system.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing
-to a file containing quotas.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFAULT
-An invalid
-.Fa addr
-was supplied; the associated structure could not be copied in or out
-of the kernel.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EPERM
-The call was privileged and the caller was not the super-user.
-.El
-.Sh SEE ALSO
-.Xr quota 1 ,
-.Xr fstab 5 ,
-.Xr edquota 8 ,
-.Xr quotacheck 8 ,
-.Xr quotaon 8 ,
-.Xr repquota 8
-.Sh HISTORY
-The
-.Fn quotactl
-system call appeared in
-.Bx 4.3 Reno .
-.Sh BUGS
-There should be some way to integrate this call with the resource
-limit interface provided by
-.Xr setrlimit 2
-and
-.Xr getrlimit 2 .
diff --git a/lib/libc/sys/rctl_add_rule.2 b/lib/libc/sys/rctl_add_rule.2
deleted file mode 100644
index b1d807baa80c..000000000000
--- a/lib/libc/sys/rctl_add_rule.2
+++ /dev/null
@@ -1,220 +0,0 @@
-.\" Copyright (c) 2016 Eric Badger
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 14, 2016
-.Dt RCTL_ADD_RULE 2
-.Os
-.Sh NAME
-.Nm rctl_add_rule ,
-.Nm rctl_get_limits ,
-.Nm rctl_get_racct ,
-.Nm rctl_get_rules ,
-.Nm rctl_remove_rule
-.Nd manipulate and query the resource limits database
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/rctl.h
-.Ft int
-.Fo rctl_add_rule
-.Fa "const char *inbufp" "size_t inbuflen" "char *outbufp" "size_t outbuflen"
-.Fc
-.Ft int
-.Fo rctl_get_limits
-.Fa "const char *inbufp" "size_t inbuflen" "char *outbufp" "size_t outbuflen"
-.Fc
-.Ft int
-.Fo rctl_get_racct
-.Fa "const char *inbufp" "size_t inbuflen" "char *outbufp" "size_t outbuflen"
-.Fc
-.Ft int
-.Fo rctl_get_rules
-.Fa "const char *inbufp" "size_t inbuflen" "char *outbufp" "size_t outbuflen"
-.Fc
-.Ft int
-.Fo rctl_remove_rule
-.Fa "const char *inbufp" "size_t inbuflen" "char *outbufp" "size_t outbuflen"
-.Fc
-.Sh DESCRIPTION
-These system calls are used to manipulate and query the resource limits
-database.
-For all functions,
-.Fa inbuflen
-refers to the length of the buffer pointed to by
-.Fa inbufp
-and
-.Fa outbuflen
-refers to the length of the buffer pointed to by
-.Fa outbufp .
-.Pp
-The
-.Fn rctl_add_rule
-function adds the rule pointed to by
-.Fa inbufp
-to the resource limits database.
-The
-.Fa outbufp
-and
-.Fa outbuflen
-arguments are unused.
-Rule format is as described in
-.Xr rctl 8 ,
-with exceptions noted in the
-.Sx RULES AND FILTERS
-section.
-.Pp
-The
-.Fn rctl_get_limits
-function returns in
-.Fa outbufp
-a comma-separated list of rules that apply to the process that
-matches the filter specified in
-.Fa inbufp .
-This includes rules with a subject of the process itself as well as rules
-with a different subject (such as user or loginclass) that apply to the
-process.
-.Pp
-The
-.Fn rctl_get_racct
-function returns resource usage information for a given subject.
-The subject is specified by passing a filter in
-.Fa inbufp .
-Filter syntax is as described in
-.Xr rctl 8 ,
-with exceptions noted in the
-.Sx RULES AND FILTERS
-section.
-A comma-separated list of resources and the amount used of each by the
-specified subject is returned in
-.Fa outbufp .
-The resource and amount is formatted as
-.Qq resource=amount .
-.Pp
-The
-.Fn rctl_get_rules
-function returns in
-.Fa outbufp
-a comma-separated list of rules from the resource limits database that
-match the filter passed in
-.Fa inbufp .
-Filter syntax is as described in
-.Xr rctl 8 ,
-with exceptions noted in the
-.Sx RULES AND FILTERS
-section.
-A filter of
-.Va ::
-may be passed to return all rules.
-.Pp
-The
-.Fn rctl_remove_rule
-function removes all rules matching the filter passed in
-.Fa inbufp
-from the resource limits database.
-Filter syntax is as described in
-.Xr rctl 8 ,
-with exceptions noted in the
-.Sx RULES AND FILTERS
-section.
-.Fa outbufp
-and
-.Fa outbuflen
-are unused.
-.Sh RULES AND FILTERS
-This section explains how the rule and filter format described in
-.Xr rctl 8
-differs from the format passed to the system calls themselves.
-The rctl tool provides several conveniences that the system calls do not.
-When using the system call:
-.Bl -dash -offset indent
-.It
-The subject must be fully specified.
-For example, abbreviating
-.Ql user
-to
-.Ql u
-is not acceptable.
-.It
-User and group IDs must be numeric.
-For example,
-.Ql root
-must be expressed as
-.Ql 0 .
-.It
-Units are not permitted on resource amounts.
-For example, a quantity of 1024 bytes must be expressed as
-.Ql 1024
-and not
-.Ql 1k .
-.El
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The rctl system calls may fail if:
-.Bl -tag -width Er
-.It Bq Er ENOSYS
-RACCT/RCTL support is not present in the kernel or the
-.Va kern.racct.enable
-sysctl is 0.
-.It Bq Er EINVAL
-The rule or filter passed in
-.Fa inbufp
-is invalid.
-.It Bq Er EPERM
-User has insufficient privileges to carry out the requested operation.
-.It Bq Er E2BIG
-.Fa inbufp
-or
-.Fa outbufp
-are too large.
-.It Bq Er ESRCH
-No process matched the provided rule or filter.
-.It Bq Er ENAMETOOLONG
-The loginclass or jail name specified is too long.
-.It Bq Er ERANGE
-The rule amount is outside of the allowable range or
-.Fa outbufp
-is too small.
-.It Bq Er EOPNOTSUPP
-The requested operation is not supported for the given rule or filter.
-.It Bq Er EFAULT
-.Fa inbufp
-or
-.Fa outbufp
-refer to invalid addresses.
-.El
-.Sh SEE ALSO
-.Xr rctl 8
-.Sh HISTORY
-The rctl family of system calls appeared in
-.Fx 9.0 .
-.Sh AUTHORS
-.An -nosplit
-The rctl system calls were developed by
-.An Edward Tomasz Napierala Aq Mt trasz@FreeBSD.org
-under sponsorship from the FreeBSD Foundation.
-This manual page was written by
-.An Eric Badger Aq Mt badger@FreeBSD.org .
diff --git a/lib/libc/sys/read.2 b/lib/libc/sys/read.2
deleted file mode 100644
index 8b58debd3fbb..000000000000
--- a/lib/libc/sys/read.2
+++ /dev/null
@@ -1,310 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)read.2 8.4 (Berkeley) 2/26/94
-.\" $FreeBSD$
-.\"
-.Dd June 4, 2020
-.Dt READ 2
-.Os
-.Sh NAME
-.Nm read ,
-.Nm readv ,
-.Nm pread ,
-.Nm preadv
-.Nd read input
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft ssize_t
-.Fn read "int fd" "void *buf" "size_t nbytes"
-.Ft ssize_t
-.Fn pread "int fd" "void *buf" "size_t nbytes" "off_t offset"
-.In sys/uio.h
-.Ft ssize_t
-.Fn readv "int fd" "const struct iovec *iov" "int iovcnt"
-.Ft ssize_t
-.Fn preadv "int fd" "const struct iovec *iov" "int iovcnt" "off_t offset"
-.Sh DESCRIPTION
-The
-.Fn read
-system call
-attempts to read
-.Fa nbytes
-of data from the object referenced by the descriptor
-.Fa fd
-into the buffer pointed to by
-.Fa buf .
-The
-.Fn readv
-system call
-performs the same action, but scatters the input data
-into the
-.Fa iovcnt
-buffers specified by the members of the
-.Fa iov
-array: iov[0], iov[1], ..., iov[iovcnt\|\-\|1].
-The
-.Fn pread
-and
-.Fn preadv
-system calls
-perform the same functions, but read from the specified position in
-the file without modifying the file pointer.
-.Pp
-For
-.Fn readv
-and
-.Fn preadv ,
-the
-.Fa iovec
-structure is defined as:
-.Pp
-.Bd -literal -offset indent -compact
-struct iovec {
- void *iov_base; /* Base address. */
- size_t iov_len; /* Length. */
-};
-.Ed
-.Pp
-Each
-.Fa iovec
-entry specifies the base address and length of an area
-in memory where data should be placed.
-The
-.Fn readv
-system call
-will always fill an area completely before proceeding
-to the next.
-.Pp
-On objects capable of seeking, the
-.Fn read
-starts at a position
-given by the pointer associated with
-.Fa fd
-(see
-.Xr lseek 2 ) .
-Upon return from
-.Fn read ,
-the pointer is incremented by the number of bytes actually read.
-.Pp
-Objects that are not capable of seeking always read from the current
-position.
-The value of the pointer associated with such an
-object is undefined.
-.Pp
-Upon successful completion,
-.Fn read ,
-.Fn readv ,
-.Fn pread
-and
-.Fn preadv
-return the number of bytes actually read and placed in the buffer.
-The system guarantees to read the number of bytes requested if
-the descriptor references a normal file that has that many bytes left
-before the end-of-file, but in no other case.
-.Pp
-In accordance with
-.St -p1003.1-2004 ,
-both
-.Xr read 2
-and
-.Xr write 2
-syscalls are atomic with respect to each other in the effects on file
-content, when they operate on regular files.
-If two threads each call one of the
-.Xr read 2
-or
-.Xr write 2 ,
-syscalls, each call will see either all of the changes of the other call,
-or none of them.
-The
-.Fx
-kernel implements this guarantee by locking the file ranges affected by
-the calls.
-.Sh RETURN VALUES
-If successful, the
-number of bytes actually read is returned.
-Upon reading end-of-file,
-zero is returned.
-Otherwise, a -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn read ,
-.Fn readv ,
-.Fn pread
-and
-.Fn preadv
-system calls
-will succeed unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid file or socket descriptor open for reading.
-.It Bq Er ECONNRESET
-The
-.Fa fd
-argument refers to a socket, and the remote socket end is
-forcibly closed.
-.It Bq Er EFAULT
-The
-.Fa buf
-argument
-points outside the allocated address space.
-.It Bq Er EIO
-An I/O error occurred while reading from the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EBUSY
-Failed to read from a file, e.g. /proc/<pid>/regs while <pid> is not stopped
-.It Bq Er EINTR
-A read from a slow device
-(i.e.\& one that might block for an arbitrary amount of time)
-was interrupted by the delivery of a signal
-before any data arrived.
-.It Bq Er EINVAL
-The pointer associated with
-.Fa fd
-was negative.
-.It Bq Er EAGAIN
-The file was marked for non-blocking I/O,
-and no data were ready to be read.
-.It Bq Er EISDIR
-The file descriptor is associated with a directory.
-Directories may only be read directly by root if the filesystem supports it and
-the
-.Dv security.bsd.allow_read_dir
-sysctl MIB is set to a non-zero value.
-For most scenarios, the
-.Xr readdir 3
-function should be used instead.
-.It Bq Er EOPNOTSUPP
-The file descriptor is associated with a file system and file type that
-do not allow regular read operations on it.
-.It Bq Er EOVERFLOW
-The file descriptor is associated with a regular file,
-.Fa nbytes
-is greater than 0,
-.Fa offset
-is before the end-of-file, and
-.Fa offset
-is greater than or equal to the offset maximum established
-for this file system.
-.It Bq Er EINVAL
-The value
-.Fa nbytes
-is greater than
-.Dv INT_MAX .
-.El
-.Pp
-In addition,
-.Fn readv
-and
-.Fn preadv
-may return one of the following errors:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa iovcnt
-argument
-was less than or equal to 0, or greater than
-.Dv IOV_MAX .
-.It Bq Er EINVAL
-One of the
-.Fa iov_len
-values in the
-.Fa iov
-array was negative.
-.It Bq Er EINVAL
-The sum of the
-.Fa iov_len
-values in the
-.Fa iov
-array overflowed a 32-bit integer.
-.It Bq Er EFAULT
-Part of the
-.Fa iov
-array points outside the process's allocated address space.
-.El
-.Pp
-The
-.Fn pread
-and
-.Fn preadv
-system calls may also return the following errors:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa offset
-value was negative.
-.It Bq Er ESPIPE
-The file descriptor is associated with a pipe, socket, or FIFO.
-.El
-.Sh SEE ALSO
-.Xr dup 2 ,
-.Xr fcntl 2 ,
-.Xr getdirentries 2 ,
-.Xr open 2 ,
-.Xr pipe 2 ,
-.Xr select 2 ,
-.Xr socket 2 ,
-.Xr socketpair 2 ,
-.Xr fread 3 ,
-.Xr readdir 3
-.Sh STANDARDS
-The
-.Fn read
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Fn readv
-and
-.Fn pread
-system calls are expected to conform to
-.St -xpg4.2 .
-.Sh HISTORY
-The
-.Fn preadv
-system call appeared in
-.Fx 6.0 .
-The
-.Fn pread
-function appeared in
-.At V.4 .
-The
-.Fn readv
-system call appeared in
-.Bx 4.2 .
-The
-.Fn read
-function appeared in
-.At v1 .
diff --git a/lib/libc/sys/read.c b/lib/libc/sys/read.c
index ab30189026e3..b4610e0c38c3 100644
--- a/lib/libc/sys/read.c
+++ b/lib/libc/sys/read.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -44,7 +40,5 @@ __weak_reference(__sys_read, __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));
+ return (INTERPOS_SYS(read, fd, buf, nbytes));
}
diff --git a/lib/libc/sys/readlink.2 b/lib/libc/sys/readlink.2
deleted file mode 100644
index 72aadef37cc6..000000000000
--- a/lib/libc/sys/readlink.2
+++ /dev/null
@@ -1,160 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)readlink.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt READLINK 2
-.Os
-.Sh NAME
-.Nm readlink ,
-.Nm readlinkat
-.Nd read value of a symbolic link
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft ssize_t
-.Fn readlink "const char *restrict path" "char *restrict buf" "size_t bufsiz"
-.Ft ssize_t
-.Fo readlinkat
-.Fa "int fd" "const char *restrict path" "char *restrict buf" "size_t bufsize"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn readlink
-system call
-places the contents of the symbolic link
-.Fa path
-in the buffer
-.Fa buf ,
-which has size
-.Fa bufsiz .
-The
-.Fn readlink
-system call does not append a
-.Dv NUL
-character to
-.Fa buf .
-.Pp
-The
-.Fn readlinkat
-system call is equivalent to
-.Fn readlink
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the symbolic link whose content is read relative to the
-directory associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-If
-.Fn readlinkat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn readlink .
-.Sh RETURN VALUES
-The call returns the count of characters placed in the buffer
-if it succeeds, or a \-1 if an error occurs, placing the error
-code in the global variable
-.Va errno .
-.Sh ERRORS
-The
-.Fn readlink
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EINVAL
-The named file is not a symbolic link.
-.It Bq Er EIO
-An I/O error occurred while reading from the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFAULT
-The
-.Fa buf
-argument
-extends outside the process's allocated address space.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn readlink ,
-the
-.Fn readlinkat
-may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.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.
-.El
-.Sh SEE ALSO
-.Xr lstat 2 ,
-.Xr stat 2 ,
-.Xr symlink 2 ,
-.Xr symlink 7
-.Sh STANDARDS
-The
-.Fn readlinkat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn readlink
-system call appeared in
-.Bx 4.2 .
-The
-.Fn readlinkat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/readv.c b/lib/libc/sys/readv.c
index 567292750da0..78a529254fa0 100644
--- a/lib/libc/sys/readv.c
+++ b/lib/libc/sys/readv.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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/uio.h>
@@ -45,7 +41,5 @@ __weak_reference(__sys_readv, __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));
+ return (INTERPOS_SYS(readv, fd, iov, iovcnt));
}
diff --git a/lib/libc/sys/reboot.2 b/lib/libc/sys/reboot.2
deleted file mode 100644
index 99d5dcc42808..000000000000
--- a/lib/libc/sys/reboot.2
+++ /dev/null
@@ -1,164 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)reboot.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd July 10, 2018
-.Dt REBOOT 2
-.Os
-.Sh NAME
-.Nm reboot
-.Nd reboot system or halt processor
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.In sys/reboot.h
-.Ft int
-.Fn reboot "int howto"
-.Sh DESCRIPTION
-The
-.Fn reboot
-system call
-reboots the system.
-Only the super-user may reboot a machine on demand.
-However, a reboot is invoked
-automatically in the event of unrecoverable system failures.
-.Pp
-The
-.Fa howto
-argument
-is a mask of options; the system call interface allows the following
-options, defined in the include file
-.In sys/reboot.h ,
-to be passed
-to the new kernel or the new bootstrap and init programs.
-.Bl -tag -width RB_POWERCYCLE
-.It Dv RB_AUTOBOOT
-The default, causing the system to reboot in its usual fashion.
-.It Dv RB_ASKNAME
-Normally the system only prompts the user if the loader specified root
-file system has an error.
-This flag forces it to always prompt the user for the root partition.
-.It Dv RB_DFLTROOT
-Use the compiled in root device.
-Normally, the system uses the device from which it was booted
-as the root device if possible.
-(The default behavior is dependent on the ability of the bootstrap program
-to determine the drive from which it was loaded, which is not possible
-on all systems.)
-.It Dv RB_DUMP
-Dump kernel memory before rebooting; see
-.Xr savecore 8
-for more information.
-.It Dv RB_HALT
-The processor is simply halted; no reboot takes place.
-This option should be used with caution.
-.It Dv RB_POWERCYCLE
-After halting, the shutdown code will do what it can to turn
-off the power and then turn the power back on.
-This requires hardware support, usually an auxiliary microprocessor
-that can sequence the power supply.
-At present only the
-.Xr ipmi 4
-driver implements this feature.
-.It Dv RB_POWEROFF
-After halting, the shutdown code will do what it can to turn
-off the power.
-This requires hardware support.
-.It Dv RB_KDB
-Load the symbol table and enable a built-in debugger in the system.
-This option will have no useful function if the kernel is not configured
-for debugging.
-Several other options have different meaning if combined
-with this option, although their use may not be possible
-via the
-.Fn reboot
-system call.
-See
-.Xr ddb 4
-for more information.
-.It Dv RB_NOSYNC
-Normally, the disks are sync'd (see
-.Xr sync 8 )
-before the processor is halted or rebooted.
-This option may be useful if file system changes have been made manually
-or if the processor is on fire.
-.It Dv RB_REROOT
-Instead of rebooting, unmount all filesystems except the one containing
-currently-running executable, and mount root filesystem using the same
-mechanism which is used during normal boot, based on
-vfs.root.mountfrom
-.Xr kenv 1
-variable.
-.It Dv RB_RDONLY
-Initially mount the root file system read-only.
-This is currently the default, and this option has been deprecated.
-.It Dv RB_SINGLE
-Normally, the reboot procedure involves an automatic disk consistency
-check and then multi-user operations.
-.Dv RB_SINGLE
-prevents this, booting the system with a single-user shell
-on the console.
-.Dv RB_SINGLE
-is actually interpreted by the
-.Xr init 8
-program in the newly booted system.
-.El
-.Pp
-When no options are given (i.e.,
-.Dv RB_AUTOBOOT
-is used), the system is
-rebooted from file
-.Dq kernel
-in the root file system of unit 0
-of a disk chosen in a processor specific way.
-An automatic consistency check of the disks is normally performed
-(see
-.Xr fsck 8 ) .
-.Sh RETURN VALUES
-If successful, this call never returns.
-Otherwise, a -1 is returned and an error is returned in the global
-variable
-.Va errno .
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EPERM
-The caller is not the super-user.
-.El
-.Sh SEE ALSO
-.Xr crash 8 ,
-.Xr halt 8 ,
-.Xr init 8 ,
-.Xr reboot 8 ,
-.Xr savecore 8
-.Sh HISTORY
-The
-.Fn reboot
-system call appeared in
-.Bx 4.0 .
diff --git a/lib/libc/sys/recv.2 b/lib/libc/sys/recv.2
deleted file mode 100644
index 46e0cf8163dd..000000000000
--- a/lib/libc/sys/recv.2
+++ /dev/null
@@ -1,374 +0,0 @@
-.\" Copyright (c) 1983, 1990, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)recv.2 8.3 (Berkeley) 2/21/94
-.\" $FreeBSD$
-.\"
-.Dd August 19, 2018
-.Dt RECV 2
-.Os
-.Sh NAME
-.Nm recv ,
-.Nm recvfrom ,
-.Nm recvmsg ,
-.Nm recvmmsg
-.Nd receive message(s) from a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft ssize_t
-.Fn recv "int s" "void *buf" "size_t len" "int flags"
-.Ft ssize_t
-.Fn recvfrom "int s" "void *buf" "size_t len" "int flags" "struct sockaddr * restrict from" "socklen_t * restrict fromlen"
-.Ft ssize_t
-.Fn recvmsg "int s" "struct msghdr *msg" "int flags"
-.Ft ssize_t
-.Fn recvmmsg "int s" "struct mmsghdr * restrict msgvec" "size_t vlen" "int flags" "const struct timespec * restrict timeout"
-.Sh DESCRIPTION
-The
-.Fn recvfrom ,
-.Fn recvmsg ,
-and
-.Fn recvmmsg
-system calls
-are used to receive messages from a socket,
-and may be used to receive data on a socket whether or not
-it is connection-oriented.
-.Pp
-If
-.Fa from
-is not a null pointer
-and the socket is not connection-oriented,
-the source address of the message is filled in.
-The
-.Fa fromlen
-argument
-is a value-result argument, initialized to the size of
-the buffer associated with
-.Fa from ,
-and modified on return to indicate the actual size of the
-address stored there.
-.Pp
-The
-.Fn recv
-function is normally used only on a
-.Em connected
-socket (see
-.Xr connect 2 )
-and is identical to
-.Fn recvfrom
-with a
-null pointer passed as its
-.Fa from
-argument.
-.Pp
-The
-.Fn recvmmsg
-function is used to receive multiple
-messages at a call.
-Their number is supplied by
-.Fa vlen .
-The messages are placed in the buffers described by
-.Fa msgvec
-vector, after reception.
-The size of each received message is placed in the
-.Fa msg_len
-field of each element of the vector.
-If
-.Fa timeout
-is NULL the call blocks until the data is available for each
-supplied message buffer.
-Otherwise it waits for data for the specified amount of time.
-If the timeout expired and there is no data received,
-a value 0 is returned.
-The
-.Xr ppoll 2
-system call is used to implement the timeout mechanism,
-before first receive is performed.
-.Pp
-The
-.Fn recv ,
-.Fn recvfrom
-and
-.Fn recvmsg
-return the length of the message on successful
-completion, whereas
-.Fn recvmmsg
-returns the number of received messages.
-If a message is too long to fit in the supplied buffer,
-excess bytes may be discarded depending on the type of socket
-the message is received from (see
-.Xr socket 2 ) .
-.Pp
-If no messages are available at the socket, the
-receive call waits for a message to arrive, unless
-the socket is non-blocking (see
-.Xr fcntl 2 )
-in which case the value
-\-1 is returned and the global variable
-.Va errno
-is set to
-.Er EAGAIN .
-The receive calls except
-.Fn recvmmsg
-normally return any data available,
-up to the requested amount,
-rather than waiting for receipt of the full amount requested;
-this behavior is affected by the socket-level options
-.Dv SO_RCVLOWAT
-and
-.Dv SO_RCVTIMEO
-described in
-.Xr getsockopt 2 .
-The
-.Fn recvmmsg
-function implements this behaviour for each message in the vector.
-.Pp
-The
-.Xr select 2
-system call may be used to determine when more data arrives.
-.Pp
-The
-.Fa flags
-argument to a
-.Fn recv
-function is formed by
-.Em or Ap ing
-one or more of the values:
-.Bl -column ".Dv MSG_CMSG_CLOEXEC" -offset indent
-.It Dv MSG_OOB Ta process out-of-band data
-.It Dv MSG_PEEK Ta peek at incoming message
-.It Dv MSG_WAITALL Ta wait for full request or error
-.It Dv MSG_DONTWAIT Ta do not block
-.It Dv MSG_CMSG_CLOEXEC Ta set received fds close-on-exec
-.It Dv MSG_WAITFORONE Ta do not block after receiving the first message
-(only for
-.Fn recvmmsg
-)
-.El
-.Pp
-The
-.Dv MSG_OOB
-flag requests receipt of out-of-band data
-that would not be received in the normal data stream.
-Some protocols place expedited data at the head of the normal
-data queue, and thus this flag cannot be used with such protocols.
-The
-.Dv MSG_PEEK
-flag causes the receive operation to return data
-from the beginning of the receive queue without removing that
-data from the queue.
-Thus, a subsequent receive call will return the same data.
-The
-.Dv MSG_WAITALL
-flag requests that the operation block until
-the full request is satisfied.
-However, the call may still return less data than requested
-if a signal is caught, an error or disconnect occurs,
-or the next data to be received is of a different type than that returned.
-The
-.Dv MSG_DONTWAIT
-flag requests the call to return when it would block otherwise.
-If no data is available,
-.Va errno
-is set to
-.Er EAGAIN .
-This flag is not available in
-.St -ansiC
-or
-.St -isoC-99
-compilation mode.
-The
-.Dv MSG_WAITFORONE
-flag sets MSG_DONTWAIT after the first message has been received.
-This flag is only relevant for
-.Fn recvmmsg .
-.Pp
-The
-.Fn recvmsg
-system call uses a
-.Fa msghdr
-structure to minimize the number of directly supplied arguments.
-This structure has the following form, as defined in
-.In sys/socket.h :
-.Bd -literal
-struct msghdr {
- void *msg_name; /* optional address */
- socklen_t msg_namelen; /* size of address */
- struct iovec *msg_iov; /* scatter/gather array */
- int msg_iovlen; /* # elements in msg_iov */
- void *msg_control; /* ancillary data, see below */
- socklen_t msg_controllen;/* ancillary data buffer len */
- int msg_flags; /* flags on received message */
-};
-.Ed
-.Pp
-Here
-.Fa msg_name
-and
-.Fa msg_namelen
-specify the source address if the socket is unconnected;
-.Fa msg_name
-may be given as a null pointer if no names are desired or required.
-The
-.Fa msg_iov
-and
-.Fa msg_iovlen
-arguments
-describe scatter gather locations, as discussed in
-.Xr read 2 .
-The
-.Fa msg_control
-argument,
-which has length
-.Fa msg_controllen ,
-points to a buffer for other protocol control related messages
-or other miscellaneous ancillary data.
-The messages are of the form:
-.Bd -literal
-struct cmsghdr {
- socklen_t cmsg_len; /* data byte count, including hdr */
- int cmsg_level; /* originating protocol */
- int cmsg_type; /* protocol-specific type */
-/* followed by
- u_char cmsg_data[]; */
-};
-.Ed
-.Pp
-As an example, the SO_TIMESTAMP socket option returns a reception
-timestamp for UDP packets.
-.Pp
-With
-.Dv AF_UNIX
-domain sockets, ancillary data can be used to pass file descriptors and
-process credentials.
-See
-.Xr unix 4
-for details.
-.Pp
-The
-.Fa msg_flags
-field is set on return according to the message received.
-.Dv MSG_EOR
-indicates end-of-record;
-the data returned completed a record (generally used with sockets of type
-.Dv SOCK_SEQPACKET ) .
-.Dv MSG_TRUNC
-indicates that
-the trailing portion of a datagram was discarded because the datagram
-was larger than the buffer supplied.
-.Dv MSG_CTRUNC
-indicates that some
-control data were discarded due to lack of space in the buffer
-for ancillary data.
-.Dv MSG_OOB
-is returned to indicate that expedited or out-of-band data were received.
-.Pp
-The
-.Fn recvmmsg
-system call uses the
-.Fa mmsghdr
-structure, defined as follows in the
-.In sys/socket.h
-header:
-.Bd -literal
-struct mmsghdr {
- struct msghdr msg_hdr; /* message header */
- ssize_t msg_len; /* message length */
-};
-.Ed
-.Pp
-On data reception the
-.Fa msg_len
-field is updated to the length of the received message.
-.Sh RETURN VALUES
-These calls except
-.Fn recvmmsg
-return the number of bytes received.
-.Fn recvmmsg
-returns the number of messages received.
-A value of -1 is returned if an error occurred.
-.Sh ERRORS
-The calls fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The argument
-.Fa s
-is an invalid descriptor.
-.It Bq Er ECONNRESET
-The remote socket end is forcibly closed.
-.It Bq Er ENOTCONN
-The socket is associated with a connection-oriented protocol
-and has not been connected (see
-.Xr connect 2
-and
-.Xr accept 2 ) .
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-does not refer to a socket.
-.It Bq Er EMSGSIZE
-The
-.Fn recvmsg
-system call
-was used to receive rights (file descriptors) that were in flight on the
-connection.
-However, the receiving program did not have enough free file
-descriptor slots to accept them.
-In this case the descriptors are
-closed, any pending data can be returned by another call to
-.Fn recvmsg .
-.It Bq Er EAGAIN
-The socket is marked non-blocking and the receive operation
-would block, or
-a receive timeout had been set
-and the timeout expired before data were received.
-.It Bq Er EINTR
-The receive was interrupted by delivery of a signal before
-any data were available.
-.It Bq Er EFAULT
-The receive buffer pointer(s) point outside the process's
-address space.
-.El
-.Sh SEE ALSO
-.Xr fcntl 2 ,
-.Xr getsockopt 2 ,
-.Xr read 2 ,
-.Xr select 2 ,
-.Xr socket 2 ,
-.Xr CMSG_DATA 3 ,
-.Xr unix 4
-.Sh HISTORY
-The
-.Fn recv
-function appeared in
-.Bx 4.2 .
-The
-.Fn recvmmsg
-function appeared in
-.Fx 11.0 .
diff --git a/lib/libc/sys/fstatat.c b/lib/libc/sys/recv.c
index 104f22ee16bd..9afb1dee0654 100644
--- a/lib/libc/sys/fstatat.c
+++ b/lib/libc/sys/recv.c
@@ -1,5 +1,8 @@
/*-
- * Copyright (c) 2017 M. Warner Losh <imp@FreeBSD.org>
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1988, 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 +12,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.
+ * 3. 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,27 +29,18 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include "namespace.h"
-#include <sys/param.h>
-#include <sys/syscall.h>
-#include "compat-ino64.h"
-#include <unistd.h>
-
+#include <sys/types.h>
+#include <sys/socket.h>
#include "libc_private.h"
-int
-fstatat(int fd, const char *path, struct stat *sb, int flag)
-{
- struct freebsd11_stat stat11;
- int rv;
+#include <stddef.h>
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_fstatat(fd, path, sb, flag));
- rv = syscall(SYS_freebsd11_fstatat, fd, path, &stat11, flag);
- if (rv == 0)
- __stat11_to_stat(&stat11, sb);
- return (rv);
+ssize_t
+recv(int s, void *buf, size_t len, int flags)
+{
+ /*
+ * POSIX says recv() shall be a cancellation point, so call the
+ * cancellation-enabled recvfrom() and not _recvfrom().
+ */
+ return (INTERPOS_SYS(recvfrom, s, buf, len, flags, NULL, NULL));
}
diff --git a/lib/libc/sys/recvfrom.c b/lib/libc/sys/recvfrom.c
index aa6ef3fb7be2..04738d06a71c 100644
--- a/lib/libc/sys/recvfrom.c
+++ b/lib/libc/sys/recvfrom.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -45,9 +41,5 @@ 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));
+ return (INTERPOS_SYS(recvfrom, s, buf, len, flags, from, fromlen));
}
diff --git a/lib/libc/sys/recvmsg.c b/lib/libc/sys/recvmsg.c
index 282ede9995ff..c7e34b9beeb4 100644
--- a/lib/libc/sys/recvmsg.c
+++ b/lib/libc/sys/recvmsg.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -44,7 +40,5 @@ __weak_reference(__sys_recvmsg, __recvmsg);
ssize_t
recvmsg(int s, struct msghdr *msg, int flags)
{
-
- return (((int (*)(int, struct msghdr *, int))
- __libc_interposing[INTERPOS_recvmsg])(s, msg, flags));
+ return (INTERPOS_SYS(recvmsg, s, msg, flags));
}
diff --git a/lib/libc/sys/rename.2 b/lib/libc/sys/rename.2
deleted file mode 100644
index c67f6ebdc19a..000000000000
--- a/lib/libc/sys/rename.2
+++ /dev/null
@@ -1,342 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)rename.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt RENAME 2
-.Os
-.Sh NAME
-.Nm rename
-.Nd change the name of a file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In stdio.h
-.Ft int
-.Fn rename "const char *from" "const char *to"
-.Ft int
-.Fn renameat "int fromfd" "const char *from" "int tofd" "const char *to"
-.Sh DESCRIPTION
-The
-.Fn rename
-system call
-causes the link named
-.Fa from
-to be renamed as
-.Fa to .
-If
-.Fa to
-exists, it is first removed.
-Both
-.Fa from
-and
-.Fa to
-must be of the same type (that is, both directories or both
-non-directories), and must reside on the same file system.
-.Pp
-The
-.Fn rename
-system call
-guarantees that if
-.Fa to
-already exists, an instance of
-.Fa to
-will always exist, even if the system should crash in
-the middle of the operation.
-.Pp
-If the final component of
-.Fa from
-is a symbolic link,
-the symbolic link is renamed,
-not the file or directory to which it points.
-.Pp
-If
-.Fa from
-and
-.Fa to
-resolve to the same directory entry, or to different directory
-entries for the same existing file,
-.Fn rename
-returns success without taking any further action.
-.Pp
-The
-.Fn renameat
-system call is equivalent to
-.Fn rename
-except in the case where either
-.Fa from
-or
-.Fa to
-specifies a relative path.
-If
-.Fa from
-is a relative path, the file to be renamed is located
-relative to the directory associated with the file descriptor
-.Fa fromfd
-instead of the current working directory.
-If the
-.Fa to
-is a relative path, the same happens only relative to the directory associated
-with
-.Fa tofd .
-If the
-.Fn renameat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fromfd
-or
-.Fa tofd
-parameter, the current working directory is used in the determination
-of the file for the respective path parameter.
-.\".Sh CAVEAT
-.\"The system can deadlock if a loop in the file system graph is present.
-.\"This loop takes the form of an entry in directory
-.\".Pa a ,
-.\"say
-.\".Pa a/foo ,
-.\"being a hard link to directory
-.\".Pa b ,
-.\"and an entry in
-.\"directory
-.\".Pa b ,
-.\"say
-.\".Pa b/bar ,
-.\"being a hard link
-.\"to directory
-.\".Pa a .
-.\"When such a loop exists and two separate processes attempt to
-.\"perform
-.\".Ql rename a/foo b/bar
-.\"and
-.\".Ql rename b/bar a/foo ,
-.\"respectively,
-.\"the system may deadlock attempting to lock
-.\"both directories for modification.
-.\"Hard links to directories should be
-.\"replaced by symbolic links by the system administrator.
-.Sh RETURN VALUES
-.Rv -std rename
-.Sh ERRORS
-The
-.Fn rename
-system call
-will fail and neither of the argument files will be
-affected if:
-.Bl -tag -width Er
-.It Bq Er ENAMETOOLONG
-A component of either pathname exceeded 255 characters,
-or the entire length of either path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of the
-.Fa from
-path does not exist,
-or a path prefix of
-.Fa to
-does not exist.
-.It Bq Er EACCES
-A component of either path prefix denies search permission.
-.It Bq Er EACCES
-The requested link requires writing in a directory with a mode
-that denies write permission.
-.It Bq Er EACCES
-The directory pointed at by the
-.Fa from
-argument denies write permission, and the operation would move
-it to another parent directory.
-.It Bq Er EPERM
-The file pointed at by the
-.Fa from
-argument has its immutable, undeletable or append-only flag set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EPERM
-The parent directory of the file pointed at by the
-.Fa from
-argument has its immutable or append-only flag set.
-.It Bq Er EPERM
-The parent directory of the file pointed at by the
-.Fa to
-argument has its immutable flag set.
-.It Bq Er EPERM
-The directory containing
-.Fa from
-is marked sticky,
-and neither the containing directory nor
-.Fa from
-are owned by the effective user ID.
-.It Bq Er EPERM
-The file pointed at by the
-.Fa to
-argument
-exists,
-the directory containing
-.Fa to
-is marked sticky,
-and neither the containing directory nor
-.Fa to
-are owned by the effective user ID.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating either pathname.
-.It Bq Er ENOTDIR
-A component of either path prefix is not a directory.
-.It Bq Er ENOTDIR
-The
-.Fa from
-argument
-is a directory, but
-.Fa to
-is not a directory.
-.It Bq Er EISDIR
-The
-.Fa to
-argument
-is a directory, but
-.Fa from
-is not a directory.
-.It Bq Er EXDEV
-The link named by
-.Fa to
-and the file named by
-.Fa from
-are on different logical devices (file systems).
-Note that this error
-code will not be returned if the implementation permits cross-device
-links.
-.It Bq Er ENOSPC
-The directory in which the entry for the new name is being placed
-cannot be extended because there is no space left on the file
-system containing the directory.
-.It Bq Er EDQUOT
-The directory in which the entry for the new name
-is being placed cannot be extended because the
-user's quota of disk blocks on the file system
-containing the directory has been exhausted.
-.It Bq Er EIO
-An I/O error occurred while making or updating a directory entry.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EROFS
-The requested link requires writing in a directory on a read-only file
-system.
-.It Bq Er EFAULT
-Path
-points outside the process's allocated address space.
-.It Bq Er EINVAL
-The
-.Fa from
-argument
-is a parent directory of
-.Fa to ,
-or an attempt is made to rename
-.Ql .\&
-or
-.Ql \&.. .
-.It Bq Er ENOTEMPTY
-The
-.Fa to
-argument
-is a directory and is not empty.
-.It Bq Er ECAPMODE
-.Fn rename
-was called and the process is in capability mode.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn rename ,
-the
-.Fn renameat
-may fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa from
-argument does not specify an absolute path and the
-.Fa fromfd
-argument is neither
-.Dv AT_FDCWD
-nor a valid file descriptor open for searching, or the
-.Fa to
-argument does not specify an absolute path and the
-.Fa tofd
-argument is neither
-.Dv AT_FDCWD
-nor a valid file descriptor open for searching.
-.It Bq Er ENOTDIR
-The
-.Fa from
-argument is not an absolute path and
-.Fa fromfd
-is neither
-.Dv AT_FDCWD
-nor a file descriptor associated with a directory, or the
-.Fa to
-argument is not an absolute path and
-.Fa tofd
-is neither
-.Dv AT_FDCWD
-nor a file descriptor associated with a directory.
-.It Bq Er ECAPMODE
-.Dv AT_FDCWD
-is specified and the process is in capability mode.
-.It Bq Er ENOTCAPABLE
-.Fa path
-is an absolute path or contained a ".." component leading to a directory
-outside of the directory hierarchy specified by
-.Fa fromfd
-or
-.Fa tofd .
-.It Bq Er ENOTCAPABLE
-The
-.Fa fromfd
-file descriptor lacks the
-.Dv CAP_RENAMEAT_SOURCE
-right, or the
-.Fa tofd
-file descriptor lacks the
-.Dv CAP_RENAMEAT_TARGET
-right.
-.El
-.Sh SEE ALSO
-.Xr chflags 2 ,
-.Xr open 2 ,
-.Xr symlink 7
-.Sh STANDARDS
-The
-.Fn rename
-system call is expected to conform to
-.St -p1003.1-96 .
-The
-.Fn renameat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn renameat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/revoke.2 b/lib/libc/sys/revoke.2
deleted file mode 100644
index bb232d9d0488..000000000000
--- a/lib/libc/sys/revoke.2
+++ /dev/null
@@ -1,110 +0,0 @@
-.\" Copyright (c) 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" This code is derived from software contributed to Berkeley by
-.\" Berkeley Software Design, Inc.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)revoke.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd January 25, 2016
-.Dt REVOKE 2
-.Os
-.Sh NAME
-.Nm revoke
-.Nd revoke file access
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn revoke "const char *path"
-.Sh DESCRIPTION
-The
-.Fn revoke
-system call invalidates all current open file descriptors in the system
-for the file named by
-.Fa path .
-Subsequent operations on any such descriptors
-fail, with the exceptions that a
-.Fn read
-from a character device file which has been revoked
-returns a count of zero (end of file),
-and a
-.Fn close
-system call will succeed.
-If the file is a special file for a device which is open,
-the device close function
-is called as if all open references to the file had been closed
-using a special close method which does not block.
-.Pp
-Access to a file may be revoked only by its owner or the super user.
-The
-.Fn revoke
-system call is currently supported only for block and character special
-device files.
-It is normally used to prepare a terminal device for a new login session,
-preventing any access by a previous user of the terminal.
-.Sh RETURN VALUES
-.Rv -std revoke
-.Sh ERRORS
-Access to the named file is revoked unless one of the following:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1024 characters.
-.It Bq Er ENOENT
-The named file or a component of the path name does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er EINVAL
-The implementation does not support the
-.Fn revoke
-operation on the named file.
-.It Bq Er EPERM
-The caller is neither the owner of the file nor the super user.
-.El
-.Sh SEE ALSO
-.Xr revoke 1 ,
-.Xr close 2
-.Sh HISTORY
-The
-.Fn revoke
-system call first appeared in
-.Bx 4.3 Reno .
-.Sh BUGS
-The non-blocking close method is only correctly implemented for
-terminal devices.
diff --git a/lib/libc/sys/rfork.2 b/lib/libc/sys/rfork.2
deleted file mode 100644
index f7fc99d2174b..000000000000
--- a/lib/libc/sys/rfork.2
+++ /dev/null
@@ -1,205 +0,0 @@
-.\"
-.\" This manual page is taken directly from Plan9, and modified to
-.\" describe the actual BSD implementation. Permission for
-.\" use of this page comes from Rob Pike <rob@plan9.att.com>.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 25, 2019
-.Dt RFORK 2
-.Os
-.Sh NAME
-.Nm rfork
-.Nd manipulate process resources
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft pid_t
-.Fn rfork "int flags"
-.Sh DESCRIPTION
-Forking, vforking or rforking are the only ways new processes are created.
-The
-.Fa flags
-argument to
-.Fn rfork
-selects which resources of the
-invoking process (parent) are shared
-by the new process (child) or initialized to
-their default values.
-The resources include
-the open file descriptor table (which, when shared, permits processes
-to open and close files for other processes),
-and open files.
-The
-.Fa flags
-argument
-is either
-.Dv RFSPAWN
-or the logical OR of some subset of:
-.Bl -tag -width ".Dv RFLINUXTHPN"
-.It Dv RFPROC
-If set a new process is created; otherwise changes affect the
-current process.
-.It Dv RFNOWAIT
-If set, the child process will be dissociated from the parent.
-Upon
-exit the child will not leave a status for the parent to collect.
-See
-.Xr wait 2 .
-.It Dv RFFDG
-If set, the invoker's file descriptor table (see
-.Xr intro 2 )
-is copied; otherwise the two processes share a
-single table.
-.It Dv RFCFDG
-If set, the new process starts with a clean file descriptor table.
-Is mutually exclusive with
-.Dv RFFDG .
-.It Dv RFTHREAD
-If set, the new process shares file descriptor to process leaders table
-with its parent.
-Only applies when neither
-.Dv RFFDG
-nor
-.Dv RFCFDG
-are set.
-.It Dv RFMEM
-If set, the kernel will force sharing of the entire address space,
-typically by sharing the hardware page table directly.
-The child
-will thus inherit and share all the segments the parent process owns,
-whether they are normally shareable or not.
-The stack segment is
-not split (both the parent and child return on the same stack) and thus
-.Fn rfork
-with the RFMEM flag may not generally be called directly from high level
-languages including C.
-May be set only with
-.Dv RFPROC .
-A helper function is provided to assist with this problem and will cause
-the new process to run on the provided stack.
-See
-.Xr rfork_thread 3
-for information.
-Note that a lot of code will not run correctly in such an environment.
-.It Dv RFSIGSHARE
-If set, the kernel will force sharing the sigacts structure between the
-child and the parent.
-.It Dv RFTSIGZMB
-If set, the kernel will deliver a specified signal to the parent
-upon the child exit, instead of default SIGCHLD.
-The signal number
-.Dv signum
-is specified by oring the
-.Dv RFTSIGFLAGS(signum)
-expression into
-.Fa flags .
-Specifying signal number 0 disables signal delivery upon the child exit.
-.It Dv RFLINUXTHPN
-If set, the kernel will deliver SIGUSR1 instead of SIGCHLD upon thread
-exit for the child.
-This is intended to mimic certain Linux clone behaviour.
-.El
-.Pp
-File descriptors in a shared file descriptor table are kept
-open until either they are explicitly closed
-or all processes sharing the table exit.
-.Pp
-If
-.Dv RFSPAWN
-is passed,
-.Nm
-will use
-.Xr vfork 2
-semantics but reset all signal actions in the child to default.
-This flag is used by the
-.Xr posix_spawn 3
-implementation in libc.
-.Pp
-If
-.Dv RFPROC
-is set, the
-value returned in the parent process
-is the process id
-of the child process; the value returned in the child is zero.
-Without
-.Dv RFPROC ,
-the return value is zero.
-Process id's range from 1 to the maximum integer
-.Ft ( int )
-value.
-The
-.Fn rfork
-system call
-will sleep, if necessary, until required process resources are available.
-.Pp
-The
-.Fn fork
-system call
-can be implemented as a call to
-.Fn rfork "RFFDG | RFPROC"
-but is not for backwards compatibility.
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn rfork
-returns a value
-of 0 to the child process and returns the process ID of the child
-process to the parent process.
-Otherwise, a value of -1 is returned
-to the parent process, no child process is created, and the global
-variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn rfork
-system call
-will fail and no child process will be created if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The system-imposed limit on the total
-number of processes under execution would be exceeded.
-The limit is given by the
-.Xr sysctl 3
-MIB variable
-.Dv KERN_MAXPROC .
-(The limit is actually ten less than this
-except for the super user).
-.It Bq Er EAGAIN
-The user is not the super user, and
-the system-imposed limit
-on the total number of
-processes under execution by a single user would be exceeded.
-The limit is given by the
-.Xr sysctl 3
-MIB variable
-.Dv KERN_MAXPROCPERUID .
-.It Bq Er EAGAIN
-The user is not the super user, and
-the soft resource limit corresponding to the
-.Fa resource
-argument
-.Dv RLIMIT_NOFILE
-would be exceeded (see
-.Xr getrlimit 2 ) .
-.It Bq Er EINVAL
-Both the RFFDG and the RFCFDG flags were specified.
-.It Bq Er EINVAL
-Any flags not listed above were specified.
-.It Bq Er EINVAL
-An invalid signal number was specified.
-.It Bq Er ENOMEM
-There is insufficient swap space for the new process.
-.El
-.Sh SEE ALSO
-.Xr fork 2 ,
-.Xr intro 2 ,
-.Xr minherit 2 ,
-.Xr vfork 2 ,
-.Xr pthread_create 3 ,
-.Xr rfork_thread 3
-.Sh HISTORY
-The
-.Fn rfork
-function first appeared in Plan9.
diff --git a/lib/libc/sys/rmdir.2 b/lib/libc/sys/rmdir.2
deleted file mode 100644
index de7331acdc3d..000000000000
--- a/lib/libc/sys/rmdir.2
+++ /dev/null
@@ -1,120 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)rmdir.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt RMDIR 2
-.Os
-.Sh NAME
-.Nm rmdir
-.Nd remove a directory file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn rmdir "const char *path"
-.Sh DESCRIPTION
-The
-.Fn rmdir
-system call
-removes a directory file
-whose name is given by
-.Fa path .
-The directory must not have any entries other
-than
-.Ql .\&
-and
-.Ql \&.. .
-.Sh RETURN VALUES
-.Rv -std rmdir
-.Sh ERRORS
-The named file is removed unless:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named directory does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er ENOTEMPTY
-The named directory contains files other than
-.Ql .\&
-and
-.Ql ..\&
-in it.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er EACCES
-Write permission is denied on the directory containing the link
-to be removed.
-.It Bq Er EPERM
-The directory to be removed has its immutable, undeletable or append-only flag
-set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EPERM
-The parent directory of the directory to be removed has its immutable or
-append-only flag set.
-.It Bq Er EPERM
-The directory containing the directory to be removed is marked sticky,
-and neither the containing directory nor the directory to be removed
-are owned by the effective user ID.
-.It Bq Er EINVAL
-The last component of the path is
-.Ql .\&
-or
-.Ql .. .
-.It Bq Er EBUSY
-The directory to be removed is the mount point
-for a mounted file system.
-.It Bq Er EIO
-An I/O error occurred while deleting the directory entry
-or deallocating the inode.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EROFS
-The directory entry to be removed resides on a read-only file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.El
-.Sh SEE ALSO
-.Xr mkdir 2 ,
-.Xr unlink 2
-.Sh HISTORY
-The
-.Fn rmdir
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/rtprio.2 b/lib/libc/sys/rtprio.2
deleted file mode 100644
index 650e841b1075..000000000000
--- a/lib/libc/sys/rtprio.2
+++ /dev/null
@@ -1,206 +0,0 @@
-.\"-
-.\" Copyright (c) 1994, Henrik Vestergaard Draboel
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by Henrik Vestergaard Draboel.
-.\" 4. The name of the author may not 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
-.\" 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.
-.\"-
-.\" Copyright (c) 2011 Xin LI <delphij@FreeBSD.org>
-.\"
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd December 8, 2021
-.Dt RTPRIO 2
-.Os
-.Sh NAME
-.Nm rtprio ,
-.Nm rtprio_thread
-.Nd examine or modify realtime or idle priority
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/rtprio.h
-.Ft int
-.Fn rtprio "int function" "pid_t pid" "struct rtprio *rtp"
-.Ft int
-.Fn rtprio_thread "int function" "lwpid_t lwpid" "struct rtprio *rtp"
-.Sh DESCRIPTION
-The
-.Fn rtprio
-system call
-is used to lookup or change the realtime or idle priority of a process,
-or the calling thread.
-The
-.Fn rtprio_thread
-system call
-is used to lookup or change the realtime or idle priority of a thread.
-.Pp
-The
-.Fa function
-argument
-specifies the operation to be performed.
-RTP_LOOKUP to lookup the current priority,
-and RTP_SET to set the priority.
-.Pp
-For the
-.Fn rtprio
-system call,
-the
-.Fa pid
-argument
-specifies the process to operate on,
-0 for the calling thread.
-When
-.Fa pid
-is non-zero,
-the system call reports the highest priority in the process,
-or sets all threads' priority in the process,
-depending on value of the
-.Fa function
-argument.
-.Pp
-For the
-.Fn rtprio_thread
-system call,
-the
-.Fa lwpid
-specifies the thread to operate on,
-0 for the calling thread.
-.Pp
-The
-.Fa *rtp
-argument
-is a pointer to a struct rtprio which is used to specify the priority and priority type.
-This structure has the following form:
-.Bd -literal
-struct rtprio {
- u_short type;
- u_short prio;
-};
-.Ed
-.Pp
-The value of the
-.Va type
-field may be RTP_PRIO_REALTIME for realtime priorities,
-RTP_PRIO_NORMAL for normal priorities, and RTP_PRIO_IDLE for idle priorities.
-The priority specified by the
-.Va prio
-field ranges between 0 and
-.Dv RTP_PRIO_MAX
-.Pq usually 31 .
-0 is the highest possible priority.
-.Pp
-Realtime and idle priority is inherited through
-.Fn fork
-and
-.Fn exec .
-.Pp
-A realtime thread can only be preempted by a thread of equal or
-higher priority, or by an interrupt; idle priority threads will run only
-when no other real/normal priority thread is runnable.
-Higher real/idle priority threads
-preempt lower real/idle priority threads.
-Threads of equal real/idle priority are run round-robin.
-.Sh RETURN VALUES
-.Rv -std rtprio rtprio_thread
-.Sh ERRORS
-The
-.Fn rtprio
-and
-.Fn rtprio_thread
-system calls
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The rtp pointer passed to
-.Fn rtprio
-or
-.Fn rtprio_thread
-was invalid.
-.It Bq Er EINVAL
-The specified
-.Fa prio
-was out of range.
-.It Bq Er EPERM
-The calling thread is not allowed to set the priority.
-Only
-root is allowed to change the realtime or idle priority of any thread.
-Exceptional privileges can be granted through the
-.Xr mac_priority 4
-policy and the realtime and idletime user groups.
-The
-.Xr sysctl 8
-variable
-.Va security.bsd.unprivileged_idprio
-is deprecated.
-If set to non-zero, it lets any user change the idle priority of threads
-they own.
-.It Bq Er ESRCH
-The specified process or thread was not found or visible.
-.El
-.Sh SEE ALSO
-.Xr nice 1 ,
-.Xr ps 1 ,
-.Xr rtprio 1 ,
-.Xr setpriority 2 ,
-.Xr nice 3 ,
-.Xr mac_priority 4 ,
-.Xr renice 8 ,
-.Xr p_cansee 9
-.Sh AUTHORS
-.An -nosplit
-The original author was
-.An Henrik Vestergaard Draboel Aq Mt hvd@terry.ping.dk .
-This implementation in
-.Fx
-was substantially rewritten by
-.An David Greenman .
-The
-.Fn rtprio_thread
-system call was implemented by
-.An David Xu .
diff --git a/lib/libc/sys/sched_get_priority_max.2 b/lib/libc/sys/sched_get_priority_max.2
deleted file mode 100644
index 88d1d6d1460d..000000000000
--- a/lib/libc/sys/sched_get_priority_max.2
+++ /dev/null
@@ -1,123 +0,0 @@
-.\" Copyright (c) 1998 HD Associates, Inc.
-.\" 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 12, 1998
-.Dt SCHED_GET_PRIORITY_MAX 2
-.Os
-.Sh NAME
-.Nm sched_get_priority_max ,
-.Nm sched_get_priority_min ,
-.Nm sched_rr_get_interval
-.Nd get scheduling parameter limits
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sched.h
-.Ft int
-.Fn sched_get_priority_max "int policy"
-.Ft int
-.Fn sched_get_priority_min "int policy"
-.Ft int
-.Fn sched_rr_get_interval "pid_t pid" "struct timespec *interval"
-.Sh DESCRIPTION
-The
-.Fn sched_get_priority_max
-and
-.Fn sched_get_priority_min
-system calls return the appropriate maximum or minimum, respectively,
-for the scheduling policy specified by
-.Fa policy .
-The
-.Fn sched_rr_get_interval
-system call updates the
-.Fa timespec
-structure referenced by the
-.Fa interval
-argument to contain the current execution time limit (i.e., time
-quantum) for the process specified by
-.Fa pid .
-If
-.Fa pid
-is zero, the current execution time limit for the calling process is
-returned.
-.Pp
-The value of
-.Fa policy
-should be one of the scheduling policy values defined in
-.Fa <sched.h> :
-.Bl -tag -width [SCHED_OTHER]
-.It Bq Er SCHED_FIFO
-First-in-first-out fixed priority scheduling with no round robin scheduling;
-.It Bq Er SCHED_OTHER
-The standard time sharing scheduler;
-.It Bq Er SCHED_RR
-Round-robin scheduling across same priority processes.
-.El
-.Sh RETURN VALUES
-If successful, the
-.Fn sched_get_priority_max
-and
-.Fn sched_get_priority_min
-system calls shall return the appropriate maximum or minimum values,
-respectively.
-If unsuccessful, they shall return a value of -1 and set
-.Fa errno
-to indicate the error.
-.Pp
-.Rv -std sched_rr_get_interval
-.Sh ERRORS
-On failure
-.Va errno
-will be set to the corresponding value:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The value of the
-.Fa policy
-argument does not represent a defined scheduling policy.
-.It Bq Er ENOSYS
-The
-.Fn sched_get_priority_max ,
-.Fn sched_get_priority_min ,
-and
-.Fn sched_rr_get_interval
-system calls are not supported by the implementation.
-.It Bq Er ESRCH
-No process can be found corresponding to that specified by
-.Fa pid .
-.El
-.Sh SEE ALSO
-.Xr sched_getparam 2 ,
-.Xr sched_getscheduler 2 ,
-.Xr sched_setparam 2 ,
-.Xr sched_setscheduler 2
-.Sh STANDARDS
-The
-.Fn sched_get_priority_max ,
-.Fn sched_get_priority_min ,
-and
-.Fn sched_rr_get_interval
-system calls conform to
-.St -p1003.1b-93 .
diff --git a/lib/libc/sys/sched_setparam.2 b/lib/libc/sys/sched_setparam.2
deleted file mode 100644
index 315fd826cc7d..000000000000
--- a/lib/libc/sys/sched_setparam.2
+++ /dev/null
@@ -1,174 +0,0 @@
-.\" $FreeBSD$
-.\" Copyright (c) 1998 HD Associates, Inc.
-.\" 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.
-.\"
-.Dd March 12, 1998
-.Dt SCHED_SETPARAM 2
-.Os
-.Sh NAME
-.Nm sched_setparam ,
-.Nm sched_getparam
-.Nd set/get scheduling parameters
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sched.h
-.Ft int
-.Fn sched_setparam "pid_t pid" "const struct sched_param *param"
-.Ft int
-.Fn sched_getparam "pid_t pid" "struct sched_param *param"
-.Sh DESCRIPTION
-The
-.Fn sched_setparam
-system call sets the scheduling parameters of the process specified by
-.Fa pid
-to the values specified by the
-.Fa sched_param
-structure pointed to by
-.Fa param .
-The value of the
-.Fa sched_priority
-member in the
-.Fa param
-structure must be any integer within the inclusive priority range for
-the current scheduling policy of the process specified by
-.Fa pid .
-Higher numerical values for the priority represent higher priorities.
-.Pp
-In this implementation, if the value of
-.Fa pid
-is negative the system call will fail.
-.Pp
-If a process specified by
-.Fa pid
-exists and if the calling process has permission, the scheduling
-parameters are set for the process whose process ID is equal to
-.Fa pid .
-.Pp
-If
-.Fa pid
-is zero, the scheduling parameters are set for the calling process.
-.Pp
-In this implementation, the policy of when a process can affect
-the scheduling parameters of another process is specified in
-.St -p1003.1b-93
-as a write-style operation.
-.Pp
-The target process, whether it is running or not running, will resume
-execution after all other runnable processes of equal or greater
-priority have been scheduled to run.
-.Pp
-If the priority of the process specified by the
-.Fa pid
-argument is set higher than that of the lowest priority running process
-and if the specified process is ready to run, the process specified by
-the
-.Fa pid
-argument will preempt a lowest priority running process.
-Similarly, if
-the process calling
-.Fn sched_setparam
-sets its own priority lower than that of one or more other nonempty
-process lists, then the process that is the head of the highest priority
-list will also preempt the calling process.
-Thus, in either case, the
-originating process might not receive notification of the completion of
-the requested priority change until the higher priority process has
-executed.
-.Pp
-In this implementation, when the current scheduling policy for the
-process specified by
-.Fa pid
-is normal timesharing (SCHED_OTHER, aka SCHED_NORMAL when not POSIX-source)
-or the idle policy (SCHED_IDLE when not POSIX-source) then the behavior
-is as if the process had been running under SCHED_RR with a priority
-lower than any actual realtime priority.
-.Pp
-The
-.Fn sched_getparam
-system call will return the scheduling parameters of a process specified
-by
-.Fa pid
-in the
-.Fa sched_param
-structure pointed to by
-.Fa param .
-.Pp
-If a process specified by
-.Fa pid
-exists and if the calling process has permission,
-the scheduling parameters for the process whose process ID is equal to
-.Fa pid
-are returned.
-.Pp
-In this implementation, the policy of when a process can obtain the
-scheduling parameters of another process are detailed in
-.St -p1003.1b-93
-as a read-style operation.
-.Pp
-If
-.Fa pid
-is zero, the scheduling parameters for the calling process will be
-returned.
-In this implementation, the
-.Fa sched_getparam
-system call will fail if
-.Fa pid
-is negative.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-On failure
-.Va errno
-will be set to the corresponding value:
-.Bl -tag -width Er
-.It Bq Er ENOSYS
-The system is not configured to support this functionality.
-.It Bq Er EPERM
-The requesting process doesn not have permission as detailed in
-.St -p1003.1b-93 .
-.It Bq Er ESRCH
-No process can be found corresponding to that specified by
-.Fa pid .
-.It Bq Er EINVAL
-For
-.Fn sched_setparam :
-one or more of the requested scheduling parameters
-is outside the range defined for the scheduling policy of the specified
-.Fa pid .
-.El
-.Sh SEE ALSO
-.Xr sched_get_priority_max 2 ,
-.Xr sched_get_priority_min 2 ,
-.Xr sched_getscheduler 2 ,
-.Xr sched_rr_get_interval 2 ,
-.Xr sched_setscheduler 2 ,
-.Xr sched_yield 2
-.Sh STANDARDS
-The
-.Fn sched_setparam
-and
-.Fn sched_getparam
-system calls conform to
-.St -p1003.1b-93 .
diff --git a/lib/libc/sys/sched_setscheduler.2 b/lib/libc/sys/sched_setscheduler.2
deleted file mode 100644
index b84c1a1c9e35..000000000000
--- a/lib/libc/sys/sched_setscheduler.2
+++ /dev/null
@@ -1,166 +0,0 @@
-.\" $FreeBSD$
-.\" Copyright (c) 1998 HD Associates, Inc.
-.\" 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.
-.\"
-.Dd March 12, 1998
-.Dt SCHED_SETSCHEDULER 2
-.Os
-.Sh NAME
-.Nm sched_setscheduler ,
-.Nm sched_getscheduler
-.Nd set/get scheduling policy and scheduler parameters
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sched.h
-.Ft int
-.Fn sched_setscheduler "pid_t pid" "int policy" "const struct sched_param *param"
-.Ft int
-.Fn sched_getscheduler "pid_t pid"
-.Sh DESCRIPTION
-The
-.Fn sched_setscheduler
-system call sets the scheduling policy and scheduling parameters
-of the process specified by
-.Fa pid
-to
-.Fa policy
-and the parameters specified in the
-.Vt sched_param
-structure pointed to by
-.Fa param ,
-respectively.
-The value of the
-.Fa sched_priority
-member in the
-.Fa param
-structure must be any integer within the inclusive priority range for
-the scheduling policy specified by
-.Fa policy .
-.Pp
-In this implementation, if the value of
-.Fa pid
-is negative the system call will fail.
-.Pp
-If a process specified by
-.Fa pid
-exists and if the calling process has permission, the scheduling
-policy and scheduling parameters will be set for the process
-whose process ID is equal to
-.Fa pid .
-.Pp
-If
-.Fa pid
-is zero, the scheduling policy and scheduling
-parameters are set for the calling process.
-.Pp
-In this implementation, the policy of when a process can affect
-the scheduling parameters of another process is specified in
-.St -p1003.1b-93
-as a write-style operation.
-.Pp
-The scheduling policies are in
-.Fa <sched.h> :
-.Bl -tag -width [SCHED_OTHER]
-.It Bq Er SCHED_FIFO
-First-in-first-out fixed priority scheduling with no round robin scheduling;
-.It Bq Er SCHED_OTHER
-The standard time sharing scheduler;
-.It Bq Er SCHED_RR
-Round-robin scheduling across same priority processes.
-.El
-.Pp
-The
-.Vt sched_param
-structure is defined in
-.Fa <sched.h> :
-.Bd -literal -offset indent
-struct sched_param {
- int sched_priority; /* scheduling priority */
-};
-.Ed
-.Pp
-The
-.Fn sched_getscheduler
-system call returns the scheduling policy of the process specified
-by
-.Fa pid .
-.Pp
-If a process specified by
-.Fa pid
-exists and if the calling process has permission,
-the scheduling parameters for the process whose process ID is equal to
-.Fa pid
-are returned.
-.Pp
-In this implementation, the policy of when a process can obtain the
-scheduling parameters of another process are detailed in
-.St -p1003.1b-93
-as a read-style operation.
-.Pp
-If
-.Fa pid
-is zero, the scheduling parameters for the calling process will be
-returned.
-In this implementation, the
-.Fa sched_getscheduler
-system call will fail if
-.Fa pid
-is negative.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-On failure
-.Va errno
-will be set to the corresponding value:
-.Bl -tag -width Er
-.It Bq Er ENOSYS
-The system is not configured to support this functionality.
-.It Bq Er EPERM
-The requesting process doesn not have permission as detailed in
-.St -p1003.1b-93 .
-.It Bq Er ESRCH
-No process can be found corresponding to that specified by
-.Fa pid .
-.It Bq Er EINVAL
-The value of the
-.Fa policy
-argument is invalid, or one or more of the parameters contained in
-.Fa param
-is outside the valid range for the specified scheduling policy.
-.El
-.Sh SEE ALSO
-.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
-.Sh STANDARDS
-The
-.Fn sched_setscheduler
-and
-.Fn sched_getscheduler
-system calls conform to
-.St -p1003.1b-93 .
diff --git a/lib/libc/sys/sched_yield.2 b/lib/libc/sys/sched_yield.2
deleted file mode 100644
index 9db8942249e2..000000000000
--- a/lib/libc/sys/sched_yield.2
+++ /dev/null
@@ -1,58 +0,0 @@
-.\" $FreeBSD$
-.\" Copyright (c) 1998 HD Associates, Inc.
-.\" 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.
-.\"
-.Dd March 12, 1998
-.Dt SCHED_YIELD 2
-.Os
-.Sh NAME
-.Nm sched_yield
-.Nd yield processor
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sched.h
-.Ft int
-.Fn sched_yield void
-.Sh DESCRIPTION
-The
-.Fn sched_yield
-system call forces the running process to relinquish the processor until it
-again becomes the head of its process list.
-It takes no arguments.
-.Sh RETURN VALUES
-.Rv -std sched_yield
-.Sh ERRORS
-On failure
-.Va errno
-will be set to the corresponding value:
-.Bl -tag -width Er
-.It Bq Er ENOSYS
-The system is not configured to support this functionality.
-.El
-.Sh STANDARDS
-The
-.Fn sched_yield
-system call conforms to
-.St -p1003.1b-93 .
diff --git a/lib/libc/sys/sctp_generic_recvmsg.2 b/lib/libc/sys/sctp_generic_recvmsg.2
deleted file mode 100644
index 8ee3d36f90e9..000000000000
--- a/lib/libc/sys/sctp_generic_recvmsg.2
+++ /dev/null
@@ -1,74 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 30, 2007
-.Dt SCTP_GENERIC_RECVMSG 2
-.Os
-.Sh NAME
-.Nm sctp_generic_recvmsg
-.Nd receive data from a peer
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.In netinet/sctp.h
-.Ft int
-.Fn sctp_generic_recvmsg "int s" "struct iovec *iov" "int iovlen" "struct sockaddr *from" "socklen_t *fromlen" "struct sctp_sndrcvinfo *sinfo" "int *msgflags"
-.Sh DESCRIPTION
-.Fn sctp_generic_recvmsg
-is the true system call used by the
-.Xr sctp_recvmsg 3
-function call.
-This call is more efficient since it is a
-true system call but it is specific to
-.Fx
-and can be expected
-.Em not
-to be present on any other operating
-system.
-For detailed usage please see the
-.Xr sctp_recvmsg 3
-function call.
-.Sh RETURN VALUES
-The call returns the number of bytes read on success and -1 upon failure.
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EBADF
-The argument
-.Fa s
-is not a valid descriptor.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is not a socket.
-.El
-.Sh SEE ALSO
-.Xr sctp_recvmsg 3 ,
-.Xr sctp 4
diff --git a/lib/libc/sys/sctp_generic_sendmsg.2 b/lib/libc/sys/sctp_generic_sendmsg.2
deleted file mode 100644
index bf54e95473d5..000000000000
--- a/lib/libc/sys/sctp_generic_sendmsg.2
+++ /dev/null
@@ -1,86 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 30, 2007
-.Dt SCTP_GENERIC_SENDMSG 2
-.Os
-.Sh NAME
-.Nm sctp_generic_sendmsg
-.Nm sctp_generic_sendmsg_iov
-.Nd send data to a peer
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.In netinet/sctp.h
-.Ft int
-.Fn sctp_generic_sendmsg "int s" "void *msg" "int msglen" "struct sockaddr *to" "socklen_t len" "struct sctp_sndrcvinfo *sinfo" "int flags"
-.Ft int
-.Fn sctp_generic_sendmsg_iov "int s" "struct iovec *iov" "int iovlen" "struct sockaddr *to" "struct sctp_sndrcvinfo *sinfo" "int flags"
-.Sh DESCRIPTION
-.Fn sctp_generic_sendmsg
-and
-.Fn sctp_generic_sendmsg_iov
-are the true system calls used by the
-.Xr sctp_sendmsg 3
-and
-.Xr sctp_send 3
-function calls.
-These are more efficient since they are
-true system calls but they are specific to
-.Fx
-and can be expected
-.Em not
-to be present on any other operating
-system.
-For detailed usage please see either the
-.Xr sctp_send 3
-or
-.Xr sctp_sendmsg 3
-function calls.
-.Sh RETURN VALUES
-The call returns the number of bytes written on success and -1 upon failure.
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EBADF
-The argument
-.Fa s
-is not a valid descriptor.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is not a socket.
-.El
-.Sh SEE ALSO
-.Xr sctp_send 3 ,
-.Xr sctp_sendmsg 3 ,
-.Xr sctp_sendmsgx 3 ,
-.Xr sctp_sendx 3 ,
-.Xr sctp 4
diff --git a/lib/libc/sys/sctp_peeloff.2 b/lib/libc/sys/sctp_peeloff.2
deleted file mode 100644
index 9964586c9e9e..000000000000
--- a/lib/libc/sys/sctp_peeloff.2
+++ /dev/null
@@ -1,76 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 30, 2007
-.Dt SCTP_PEELOFF 2
-.Os
-.Sh NAME
-.Nm sctp_peeloff
-.Nd detach an association from a one-to-many socket to its own fd
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.In netinet/sctp.h
-.Ft int
-.Fn sctp_peeloff "int s" "sctp_assoc_t id"
-.Sh DESCRIPTION
-The
-.Fn sctp_peeloff
-system call attempts detach the association specified by
-.Fa id
-into its own separate socket.
-.Sh RETURN VALUES
-The call returns -1 on failure and the new socket descriptor
-upon success.
-.Sh ERRORS
-The
-.Fn sctp_peeloff
-system call can return the following errors:
-.Bl -tag -width Er
-.It Bq Er ENOTCONN
-The
-.Fa id
-given to the call does not map to a valid
-association.
-.It Bq Er E2BIG
-The size of the address list exceeds the amount of
-data provided.
-.It Bq Er EBADF
-The argument
-.Fa s
-is not a valid descriptor.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is not a socket.
-.El
-.Sh SEE ALSO
-.Xr sctp 4
diff --git a/lib/libc/sys/select.2 b/lib/libc/sys/select.2
deleted file mode 100644
index 695b60937657..000000000000
--- a/lib/libc/sys/select.2
+++ /dev/null
@@ -1,228 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)select.2 8.2 (Berkeley) 3/25/94
-.\" $FreeBSD$
-.\"
-.Dd June 25, 2020
-.Dt SELECT 2
-.Os
-.Sh NAME
-.Nm select
-.Nd synchronous I/O multiplexing
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/select.h
-.Ft int
-.Fn select "int nfds" "fd_set *readfds" "fd_set *writefds" "fd_set *exceptfds" "struct timeval *timeout"
-.Fn FD_SET fd &fdset
-.Fn FD_CLR fd &fdset
-.Fn FD_ISSET fd &fdset
-.Fn FD_ZERO &fdset
-.Sh DESCRIPTION
-The
-.Fn select
-system call
-examines the I/O descriptor sets whose addresses are passed in
-.Fa readfds ,
-.Fa writefds ,
-and
-.Fa exceptfds
-to see if some of their descriptors
-are ready for reading, are ready for writing, or have an exceptional
-condition pending, respectively.
-The only exceptional condition detectable is out-of-band
-data received on a socket.
-The first
-.Fa nfds
-descriptors are checked in each set;
-i.e., the descriptors from 0 through
-.Fa nfds Ns No -1
-in the descriptor sets are examined.
-On return,
-.Fn select
-replaces the given descriptor sets
-with subsets consisting of those descriptors that are ready
-for the requested operation.
-The
-.Fn select
-system call
-returns the total number of ready descriptors in all the sets.
-.Pp
-The descriptor sets are stored as bit fields in arrays of integers.
-The following macros are provided for manipulating such descriptor sets:
-.Fn FD_ZERO &fdset
-initializes a descriptor set
-.Fa fdset
-to the null set.
-.Fn FD_SET fd &fdset
-includes a particular descriptor
-.Fa fd
-in
-.Fa fdset .
-.Fn FD_CLR fd &fdset
-removes
-.Fa fd
-from
-.Fa fdset .
-.Fn FD_ISSET fd &fdset
-is non-zero if
-.Fa fd
-is a member of
-.Fa fdset ,
-zero otherwise.
-The behavior of these macros is undefined if
-a descriptor value is less than zero or greater than or equal to
-.Dv FD_SETSIZE ,
-which is normally at least equal
-to the maximum number of descriptors supported by the system.
-.Pp
-If
-.Fa timeout
-is not a null pointer, it specifies the maximum interval to wait for the
-selection to complete.
-System activity can lengthen the interval by
-an indeterminate amount.
-.Pp
-If
-.Fa timeout
-is a null pointer, the select blocks indefinitely.
-.Pp
-To effect a poll, the
-.Fa timeout
-argument should not be a null pointer,
-but it should point to a zero-valued timeval structure.
-.Pp
-Any of
-.Fa readfds ,
-.Fa writefds ,
-and
-.Fa exceptfds
-may be given as null pointers if no descriptors are of interest.
-.Sh RETURN VALUES
-The
-.Fn select
-system call
-returns the number of ready descriptors that are contained in
-the descriptor sets,
-or -1 if an error occurred.
-If the time limit expires,
-.Fn select
-returns 0.
-If
-.Fn select
-returns with an error,
-including one due to an interrupted system call,
-the descriptor sets will be unmodified.
-.Sh ERRORS
-An error return from
-.Fn select
-indicates:
-.Bl -tag -width Er
-.It Bq Er EBADF
-One of the descriptor sets specified an invalid descriptor.
-.It Bq Er EFAULT
-One of the arguments
-.Fa readfds , writefds , exceptfds ,
-or
-.Fa timeout
-points to an invalid address.
-.It Bq Er EINTR
-A signal was delivered before the time limit expired and
-before any of the selected events occurred.
-.It Bq Er EINVAL
-The specified time limit is invalid.
-One of its components is
-negative or too large.
-.It Bq Er EINVAL
-The
-.Fa nfds
-argument
-was invalid.
-.El
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr connect 2 ,
-.Xr getdtablesize 2 ,
-.Xr gettimeofday 2 ,
-.Xr kqueue 2 ,
-.Xr poll 2 ,
-.Xr pselect 2 ,
-.Xr read 2 ,
-.Xr recv 2 ,
-.Xr send 2 ,
-.Xr write 2 ,
-.Xr clocks 7
-.Sh NOTES
-The default size of
-.Dv FD_SETSIZE
-is currently 1024.
-In order to accommodate programs which might potentially
-use a larger number of open files with
-.Fn select ,
-it is possible
-to increase this size by having the program define
-.Dv FD_SETSIZE
-before the inclusion of any header which includes
-.In sys/types.h .
-.Pp
-If
-.Fa nfds
-is greater than the number of open files,
-.Fn select
-is not guaranteed to examine the unused file descriptors.
-For historical
-reasons,
-.Fn select
-will always examine the first 256 descriptors.
-.Sh STANDARDS
-The
-.Fn select
-system call and
-.Fn FD_CLR ,
-.Fn FD_ISSET ,
-.Fn FD_SET ,
-and
-.Fn FD_ZERO
-macros conform with
-.St -p1003.1-2001 .
-.Sh HISTORY
-The
-.Fn select
-system call appeared in
-.Bx 4.2 .
-.Sh BUGS
-.St -susv2
-allows systems to modify the original timeout in place.
-Thus, it is unwise to assume that the timeout value will be unmodified
-by the
-.Fn select
-system call.
-.Fx
-does not modify the return value, which can cause problems for applications
-ported from other systems.
diff --git a/lib/libc/sys/select.c b/lib/libc/sys/select.c
index 3990496ec412..bbbcfc8bf1e0 100644
--- a/lib/libc/sys/select.c
+++ b/lib/libc/sys/select.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -43,7 +39,5 @@ __weak_reference(__sys_select, __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));
+ return (INTERPOS_SYS(select, n, rs, ws, es, t));
}
diff --git a/lib/libc/sys/semctl.2 b/lib/libc/sys/semctl.2
deleted file mode 100644
index 27e7618bce92..000000000000
--- a/lib/libc/sys/semctl.2
+++ /dev/null
@@ -1,202 +0,0 @@
-.\"
-.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
-.\"
-.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 9, 2020
-.Dt SEMCTL 2
-.Os
-.Sh NAME
-.Nm semctl
-.Nd control operations on a semaphore set
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ipc.h
-.In sys/sem.h
-.Ft int
-.Fn semctl "int semid" "int semnum" "int cmd" ...
-.Sh DESCRIPTION
-The
-.Fn semctl
-system call
-performs the operation indicated by
-.Fa cmd
-on the semaphore set indicated by
-.Fa semid .
-A fourth argument, a
-.Fa "union semun arg" ,
-is required for certain values of
-.Fa cmd .
-For the commands that use the
-.Fa arg
-argument,
-.Fa "union semun"
-must be defined as follows:
-.Bd -literal
-union semun {
- int val; /* value for SETVAL */
- struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */
- u_short *array; /* array for GETALL & SETALL */
-};
-.Ed
-Non-portable software may define
-.Dv _WANT_SEMUN
-before including
-.Pa sys/sem.h
-to use the system definition of
-.Fa "union semun" .
-.Pp
-Commands are performed as follows:
-.\"
-.\" This section based on Stevens, _Advanced Programming in the UNIX
-.\" Environment_.
-.\"
-.Bl -tag -width IPC_RMIDXXX
-.It Dv IPC_STAT
-Fetch the semaphore set's
-.Fa "struct semid_ds" ,
-storing it in the memory pointed to by
-.Fa arg.buf .
-.It Dv IPC_SET
-Changes the
-.Fa sem_perm.uid ,
-.Fa sem_perm.gid ,
-and
-.Fa sem_perm.mode
-members of the semaphore set's
-.Fa "struct semid_ds"
-to match those of the struct pointed to by
-.Fa arg.buf .
-The calling process's effective uid must
-match either
-.Fa sem_perm.uid
-or
-.Fa sem_perm.cuid ,
-or it must have superuser privileges.
-.It IPC_RMID
-Immediately removes the semaphore set from the system.
-The calling
-process's effective uid must equal the semaphore set's
-.Fa sem_perm.uid
-or
-.Fa sem_perm.cuid ,
-or the process must have superuser privileges.
-.It Dv GETVAL
-Return the value of semaphore number
-.Fa semnum .
-.It Dv SETVAL
-Set the value of semaphore number
-.Fa semnum
-to
-.Fa arg.val .
-Outstanding adjust on exit values for this semaphore in any process
-are cleared.
-.It Dv GETPID
-Return the pid of the last process to perform an operation on
-semaphore number
-.Fa semnum .
-.It Dv GETNCNT
-Return the number of processes waiting for semaphore number
-.Fa semnum Ns 's
-value to become greater than its current value.
-.It Dv GETZCNT
-Return the number of processes waiting for semaphore number
-.Fa semnum Ns 's
-value to become 0.
-.It Dv GETALL
-Fetch the value of all of the semaphores in the set into the
-array pointed to by
-.Fa arg.array .
-.It Dv SETALL
-Set the values of all of the semaphores in the set to the values
-in the array pointed to by
-.Fa arg.array .
-Outstanding adjust on exit values for all semaphores in this set,
-in any process are cleared.
-.El
-.Pp
-The
-.Vt "struct semid_ds"
-is defined as follows:
-.\"
-.\" Taken straight from <sys/sem.h>.
-.\"
-.Bd -literal
-struct semid_ds {
- struct ipc_perm sem_perm; /* operation permission struct */
- u_short sem_nsems; /* number of sems in set */
- time_t sem_otime; /* last operation time */
- time_t sem_ctime; /* last change time */
- /* Times measured in secs since */
- /* 00:00:00 GMT, Jan. 1, 1970 */
-};
-.Ed
-.Sh RETURN VALUES
-On success, when
-.Fa cmd
-is one of
-.Dv GETVAL , GETPID , GETNCNT
-or
-.Dv GETZCNT ,
-.Fn semctl
-returns the corresponding value; otherwise, 0 is returned.
-On failure, -1 is returned, and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn semctl
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-No semaphore set corresponds to
-.Fa semid .
-.It Bq Er EINVAL
-The
-.Fa semnum
-argument
-is not in the range of valid semaphores for given semaphore set.
-.It Bq Er EPERM
-The calling process's effective uid does not match the uid of
-the semaphore set's owner or creator.
-.It Bq Er EACCES
-Permission denied due to mismatch between operation and mode of
-semaphore set.
-.It Bq Er ERANGE
-.Dv SETVAL
-or
-.Dv SETALL
-attempted to set a semaphore outside the allowable range
-.Bq 0 .. Dv SEMVMX .
-.El
-.Sh SEE ALSO
-.Xr semget 2 ,
-.Xr semop 2
-.Sh BUGS
-.Dv SETALL
-may update some semaphore elements before returning an error.
diff --git a/lib/libc/sys/semget.2 b/lib/libc/sys/semget.2
deleted file mode 100644
index 9da6975b363d..000000000000
--- a/lib/libc/sys/semget.2
+++ /dev/null
@@ -1,156 +0,0 @@
-.\"
-.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
-.\"
-.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 4, 2018
-.Dt SEMGET 2
-.Os
-.Sh NAME
-.Nm semget
-.Nd obtain a semaphore id
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/sem.h
-.Ft int
-.Fn semget "key_t key" "int nsems" "int flag"
-.Sh DESCRIPTION
-Based on the values of
-.Fa key
-and
-.Fa flag ,
-.Fn semget
-returns the identifier of a newly created or previously existing
-set of semaphores.
-.\"
-.\" This is copied verbatim from the shmget manpage. Perhaps
-.\" it should go in a common manpage, such as .Xr ipc 2
-.\"
-The key
-is analogous to a filename: it provides a handle that names an
-IPC object.
-There are three ways to specify a key:
-.Bl -bullet
-.It
-IPC_PRIVATE may be specified, in which case a new IPC object
-will be created.
-.It
-An integer constant may be specified.
-If no IPC object corresponding
-to
-.Fa key
-is specified and the IPC_CREAT bit is set in
-.Fa flag ,
-a new one will be created.
-.It
-The
-.Xr ftok 3
-function
-may be used to generate a key from a pathname.
-.El
-.\"
-.\" Likewise for this section, except SHM_* becomes SEM_*.
-.\"
-.Pp
-The mode of a newly created IPC object is determined by ORing these constants
-into the
-.Fa flag
-argument:
-.Bl -tag -width 0000
-.It Dv 0400
-Read access for user.
-.It Dv 0200
-Alter access for user.
-.It Dv 0040
-Read access for group.
-.It Dv 0020
-Alter access for group.
-.It Dv 0004
-Read access for other.
-.It Dv 0002
-Alter access for other.
-.El
-.Pp
-If a new set of semaphores is being created,
-.Fa nsems
-is used to indicate the number of semaphores the set should contain.
-Otherwise,
-.Fa nsems
-may be specified as 0.
-.Sh RETURN VALUES
-The
-.Fn semget
-system call
-returns the id of a semaphore set if successful; otherwise, -1
-is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn semget
-system call
-will fail if:
-.Bl -tag -width Er
-.\" ipcperm could fail (we are opening to read and write, as it were)
-.It Bq Er EACCES
-Access permission failure.
-.\"
-.\" sysv_sem.c is quite explicit about these, so I'm pretty sure
-.\" this is accurate
-.\"
-.It Bq Er EEXIST
-IPC_CREAT and IPC_EXCL were specified, and a semaphore set
-corresponding to
-.Fa key
-already exists.
-.It Bq Er EINVAL
-The number of semaphores requested exceeds the system imposed maximum
-per set.
-.It Bq Er EINVAL
-A semaphore set corresponding to
-.Fa key
-already exists and contains fewer semaphores than
-.Fa nsems .
-.It Bq Er EINVAL
-A semaphore set corresponding to
-.Fa key
-does not exist and
-.Fa nsems
-is 0 or negative.
-.It Bq Er ENOSPC
-Insufficiently many semaphores are available.
-.It Bq Er ENOSPC
-The kernel could not allocate a
-.Fa "struct semid_ds" .
-.It Bq Er ENOENT
-No semaphore set was found corresponding to
-.Fa key ,
-and IPC_CREAT was not specified.
-.El
-.Sh SEE ALSO
-.Xr semctl 2 ,
-.Xr semop 2 ,
-.Xr ftok 3
diff --git a/lib/libc/sys/semop.2 b/lib/libc/sys/semop.2
deleted file mode 100644
index a08f65e8e8bd..000000000000
--- a/lib/libc/sys/semop.2
+++ /dev/null
@@ -1,289 +0,0 @@
-.\"
-.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
-.\"
-.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 22, 1995
-.Dt SEMOP 2
-.Os
-.Sh NAME
-.Nm semop
-.Nd atomic array of operations on a semaphore set
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ipc.h
-.In sys/sem.h
-.Ft int
-.Fn semop "int semid" "struct sembuf *array" "size_t nops"
-.Sh DESCRIPTION
-The
-.Fn semop
-system call
-atomically performs the array of operations indicated by
-.Fa array
-on the semaphore set indicated by
-.Fa semid .
-The length of
-.Fa array
-is indicated by
-.Fa nops .
-Each operation is encoded in a
-.Vt "struct sembuf" ,
-which is defined as follows:
-.\"
-.\" From <sys/sem.h>
-.\"
-.Bd -literal
-struct sembuf {
- u_short sem_num; /* semaphore # */
- short sem_op; /* semaphore operation */
- short sem_flg; /* operation flags */
-};
-.Ed
-.Pp
-For each element in
-.Fa array ,
-.Va sem_op
-and
-.Va sem_flg
-determine an operation to be performed on semaphore number
-.Va sem_num
-in the set.
-The values
-.Dv SEM_UNDO
-and
-.Dv IPC_NOWAIT
-may be
-.Em OR Ns 'ed
-into the
-.Va sem_flg
-member in order to modify the behavior of the given operation.
-.Pp
-The operation performed depends as follows on the value of
-.Va sem_op :
-.\"
-.\" This section is based on the description of semop() in
-.\" Stevens, _Advanced Programming in the UNIX Environment_,
-.\" and the semop(2) description in The Open Group Unix2 specification.
-.\"
-.Bl -bullet
-.It
-When
-.Va sem_op
-is positive and the process has alter permission,
-the semaphore's value is incremented by
-.Va sem_op Ns 's
-value.
-If
-.Dv SEM_UNDO
-is specified, the semaphore's adjust on exit value is decremented by
-.Va sem_op Ns 's
-value.
-A positive value for
-.Va sem_op
-generally corresponds to a process releasing a resource
-associated with the semaphore.
-.It
-The behavior when
-.Va sem_op
-is negative and the process has alter permission,
-depends on the current value of the semaphore:
-.Bl -bullet
-.It
-If the current value of the semaphore is greater than or equal to
-the absolute value of
-.Va sem_op ,
-then the value is decremented by the absolute value of
-.Va sem_op .
-If
-.Dv SEM_UNDO
-is specified, the semaphore's adjust on exit
-value is incremented by the absolute value of
-.Va sem_op .
-.It
-If the current value of the semaphore is less than the absolute value of
-.Va sem_op ,
-one of the following happens:
-.\" XXX a *second* sublist?
-.Bl -bullet
-.It
-If
-.Dv IPC_NOWAIT
-was specified, then
-.Fn semop
-returns immediately with a return value of
-.Er EAGAIN .
-.It
-Otherwise, the calling process is put to sleep until one of the following
-conditions is satisfied:
-.\" XXX We already have two sublists, why not a third?
-.Bl -bullet
-.It
-Some other process removes the semaphore with the
-.Dv IPC_RMID
-option of
-.Xr semctl 2 .
-In this case,
-.Fn semop
-returns immediately with a return value of
-.Er EIDRM .
-.It
-The process receives a signal that is to be caught.
-In this case, the process will resume execution as defined by
-.Xr sigaction 2 .
-.It
-The semaphore's
-value is greater than or equal to the absolute value of
-.Va sem_op .
-When this condition becomes true, the semaphore's value is decremented
-by the absolute value of
-.Va sem_op ,
-the semaphore's adjust on exit value is incremented by the
-absolute value of
-.Va sem_op .
-.El
-.El
-.El
-.Pp
-A negative value for
-.Va sem_op
-generally means that a process is waiting for a resource to become
-available.
-.It
-When
-.Va sem_op
-is zero and the process has read permission,
-one of the following will occur:
-.Bl -bullet
-.It
-If the current value of the semaphore is equal to zero
-then
-.Fn semop
-can return immediately.
-.It
-If
-.Dv IPC_NOWAIT
-was specified, then
-.Fn semop
-returns immediately with a return value of
-.Er EAGAIN .
-.It
-Otherwise, the calling process is put to sleep until one of the following
-conditions is satisfied:
-.\" XXX Another nested sublists
-.Bl -bullet
-.It
-Some other process removes the semaphore with the
-.Dv IPC_RMID
-option of
-.Xr semctl 2 .
-In this case,
-.Fn semop
-returns immediately with a return value of
-.Er EIDRM .
-.It
-The process receives a signal that is to be caught.
-In this case, the process will resume execution as defined by
-.Xr sigaction 2 .
-.It
-The semaphore's value becomes zero.
-.El
-.El
-.El
-.Pp
-For each semaphore a process has in use, the kernel maintains an
-.Dq "adjust on exit"
-value, as alluded to earlier.
-When a process
-exits, either voluntarily or involuntarily, the adjust on exit value
-for each semaphore is added to the semaphore's value.
-This can
-be used to ensure that a resource is released if a process terminates
-unexpectedly.
-.Sh RETURN VALUES
-.Rv -std semop
-.Sh ERRORS
-The
-.Fn semop
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-No semaphore set corresponds to
-.Fa semid ,
-or the process would exceed the system-defined limit for the number of
-per-process
-.Dv SEM_UNDO
-structures.
-.It Bq Er EACCES
-Permission denied due to mismatch between operation and mode of
-semaphore set.
-.It Bq Er EAGAIN
-The semaphore's value would have resulted in the process being put to sleep
-and
-.Dv IPC_NOWAIT
-was specified.
-.It Bq Er E2BIG
-Too many operations were specified.
-.Bq Dv SEMOPM
-.It Bq Er EFBIG
-.\"
-.\" I'd have thought this would be EINVAL, but the source says
-.\" EFBIG.
-.\"
-.Va sem_num
-was not in the range of valid semaphores for the set.
-.It Bq Er EIDRM
-The semaphore set was removed from the system.
-.It Bq Er EINTR
-The
-.Fn semop
-system call was interrupted by a signal.
-.It Bq Er ENOSPC
-The system
-.Dv SEM_UNDO
-pool
-.Bq Dv SEMMNU
-is full.
-.It Bq Er ERANGE
-The requested operation would cause either
-the semaphore's current value
-.Bq Dv SEMVMX
-or its adjust on exit value
-.Bq Dv SEMAEM
-to exceed the system-imposed limits.
-.El
-.Sh SEE ALSO
-.Xr semctl 2 ,
-.Xr semget 2 ,
-.Xr sigaction 2
-.Sh BUGS
-The
-.Fn semop
-system call
-may block waiting for memory even if
-.Dv IPC_NOWAIT
-was specified.
diff --git a/lib/libc/sys/send.2 b/lib/libc/sys/send.2
deleted file mode 100644
index dd6406fc6832..000000000000
--- a/lib/libc/sys/send.2
+++ /dev/null
@@ -1,295 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" From: @(#)send.2 8.2 (Berkeley) 2/21/94
-.\" $FreeBSD$
-.\"
-.Dd April 27, 2020
-.Dt SEND 2
-.Os
-.Sh NAME
-.Nm send ,
-.Nm sendto ,
-.Nm sendmsg ,
-.Nm sendmmsg
-.Nd send message(s) from a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft ssize_t
-.Fn send "int s" "const void *msg" "size_t len" "int flags"
-.Ft ssize_t
-.Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen"
-.Ft ssize_t
-.Fn sendmsg "int s" "const struct msghdr *msg" "int flags"
-.Ft ssize_t
-.Fn sendmmsg "int s" "struct mmsghdr * restrict msgvec" "size_t vlen" "int flags"
-.Sh DESCRIPTION
-The
-.Fn send
-and
-.Fn sendmmsg
-functions,
-and
-.Fn sendto
-and
-.Fn sendmsg
-system calls
-are used to transmit one or more messages (with the
-.Fn sendmmsg
-call) to
-another socket.
-The
-.Fn send
-function
-may be used only when the socket is in a
-.Em connected
-state.
-The functions
-.Fn sendto ,
-.Fn sendmsg
-and
-.Fn sendmmsg
-may be used at any time if the socket is connectionless-mode.
-If the socket is connection-mode, the protocol
-must support implied connect (currently
-.Xr tcp 4
-is the only protocol with support) or the socket must be in a
-connected state before use.
-.Pp
-The address of the target is given by
-.Fa to
-with
-.Fa tolen
-specifying its size, or the equivalent
-.Fa msg_name
-and
-.Fa msg_namelen
-in
-.Fa struct msghdr .
-If the socket is in a connected state, the target address passed to
-.Fn sendto ,
-.Fn sendmsg
-or
-.Fn sendmmsg
-is ignored.
-The length of the message is given by
-.Fa len .
-If the message is too long to pass atomically through the
-underlying protocol, the error
-.Er EMSGSIZE
-is returned, and
-the message is not transmitted.
-.Pp
-The
-.Fn sendmmsg
-function sends multiple messages at a call.
-They are given by the
-.Fa msgvec
-vector along with
-.Fa vlen
-specifying the vector size.
-The number of octets sent per each message is placed in the
-.Fa msg_len
-field of each processed element of the vector after transmission.
-.Pp
-No indication of failure to deliver is implicit in a
-.Fn send .
-Locally detected errors are indicated by a return value of -1.
-.Pp
-If no messages space is available at the socket to hold
-the message to be transmitted, then
-.Fn send
-normally blocks, unless the socket has been placed in
-non-blocking I/O mode.
-The
-.Xr select 2
-system call may be used to determine when it is possible to
-send more data.
-.Pp
-The
-.Fa flags
-argument may include one or more of the following:
-.Bd -literal
-#define MSG_OOB 0x00001 /* process out-of-band data */
-#define MSG_DONTROUTE 0x00004 /* bypass routing, use direct interface */
-#define MSG_EOR 0x00008 /* data completes record */
-#define MSG_DONTWAIT 0x00080 /* do not block */
-#define MSG_EOF 0x00100 /* data completes transaction */
-#define MSG_NOSIGNAL 0x20000 /* do not generate SIGPIPE on EOF */
-.Ed
-.Pp
-The flag
-.Dv MSG_OOB
-is used to send
-.Dq out-of-band
-data on sockets that support this notion (e.g.\&
-.Dv SOCK_STREAM ) ;
-the underlying protocol must also support
-.Dq out-of-band
-data.
-.Dv MSG_EOR
-is used to indicate a record mark for protocols which support the
-concept.
-The
-.Dv MSG_DONTWAIT
-flag request the call to return when it would block otherwise.
-.Dv MSG_EOF
-requests that the sender side of a socket be shut down, and that an
-appropriate indication be sent at the end of the specified data;
-this flag is only implemented for
-.Dv SOCK_STREAM
-sockets in the
-.Dv PF_INET
-protocol family.
-.Dv MSG_DONTROUTE
-is usually used only by diagnostic or routing programs.
-.Dv MSG_NOSIGNAL
-is used to prevent
-.Dv SIGPIPE
-generation when writing a socket that
-may be closed.
-.Pp
-See
-.Xr recv 2
-for a description of the
-.Fa msghdr
-structure and the
-.Fa mmsghdr
-structure.
-.Sh RETURN VALUES
-The
-.Fn send ,
-.Fn sendto
-and
-.Fn sendmsg
-calls
-return the number of octets sent.
-The
-.Fn sendmmsg
-call returns the number of messages sent.
-If an error occurred a value of -1 is returned.
-.Sh ERRORS
-The
-.Fn send
-and
-.Fn sendmmsg
-functions and
-.Fn sendto
-and
-.Fn sendmsg
-system calls
-fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-An invalid descriptor was specified.
-.It Bq Er EACCES
-The destination address is a broadcast address, and
-.Dv SO_BROADCAST
-has not been set on the socket.
-.It Bq Er ENOTCONN
-The socket is connection-mode but is not connected.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is not a socket.
-.It Bq Er EFAULT
-An invalid user space address was specified for an argument.
-.It Bq Er EMSGSIZE
-The socket requires that message be sent atomically,
-and the size of the message to be sent made this impossible.
-.It Bq Er EAGAIN
-The socket is marked non-blocking, or
-.Dv MSG_DONTWAIT
-is specified, and the requested operation would block.
-.It Bq Er ENOBUFS
-The system was unable to allocate an internal buffer.
-The operation may succeed when buffers become available.
-.It Bq Er ENOBUFS
-The output queue for a network interface was full.
-This generally indicates that the interface has stopped sending,
-but may be caused by transient congestion.
-.It Bq Er EHOSTUNREACH
-The remote host was unreachable.
-.It Bq Er EISCONN
-A destination address was specified and the socket is already connected.
-.It Bq Er ECONNREFUSED
-The socket received an ICMP destination unreachable message
-from the last message sent.
-This typically means that the
-receiver is not listening on the remote port.
-.It Bq Er EHOSTDOWN
-The remote host was down.
-.It Bq Er ENETDOWN
-The remote network was down.
-.It Bq Er EADDRNOTAVAIL
-The process using a
-.Dv SOCK_RAW
-socket was jailed and the source
-address specified in the IP header did not match the IP
-address bound to the prison.
-.It Bq Er EPIPE
-The socket is unable to send anymore data
-.Dv ( SBS_CANTSENDMORE
-has been set on the socket).
-This typically means that the socket
-is not connected.
-.El
-.Sh SEE ALSO
-.Xr connect 2 ,
-.Xr fcntl 2 ,
-.Xr getsockopt 2 ,
-.Xr recv 2 ,
-.Xr select 2 ,
-.Xr socket 2 ,
-.Xr write 2 ,
-.Xr CMSG_DATA 3
-.Sh HISTORY
-The
-.Fn send
-function appeared in
-.Bx 4.2 .
-The
-.Fn sendmmsg
-function appeared in
-.Fx 11.0 .
-.Sh BUGS
-Because
-.Fn sendmsg
-does not necessarily block until the data has been transferred, it
-is possible to transfer an open file descriptor across an
-.Dv AF_UNIX
-domain socket
-(see
-.Xr recv 2 ) ,
-then
-.Fn close
-it before it has actually been sent, the result being that the receiver
-gets a closed file descriptor.
-It is left to the application to
-implement an acknowledgment mechanism to prevent this from happening.
diff --git a/lib/libc/sys/clock_gettime.c b/lib/libc/sys/send.c
index cf95986973e2..82715c1b880b 100644
--- a/lib/libc/sys/clock_gettime.c
+++ b/lib/libc/sys/send.c
@@ -1,7 +1,8 @@
/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-3-Clause
*
- * Copyright (c) 2012 Konstantin Belousov <kib@FreeBSD.org>
+ * Copyright (c) 1988, 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
@@ -11,11 +12,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.
+ * 3. 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)
@@ -25,30 +29,18 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/syscall.h>
-#include <sys/time.h>
-#include <sys/vdso.h>
-#include <errno.h>
-#include <time.h>
+#include <sys/types.h>
+#include <sys/socket.h>
#include "libc_private.h"
-int __clock_gettime(clockid_t, struct timespec *ts);
-
-__weak_reference(__clock_gettime, clock_gettime);
+#include <stddef.h>
-int
-__clock_gettime(clockid_t clock_id, struct timespec *ts)
+ssize_t
+send(int s, const void *msg, size_t len, int flags)
{
- int error;
-
- if (__vdso_clock_gettime != NULL && __vdso_gettc != NULL)
- error = __vdso_clock_gettime(clock_id, ts);
- else
- error = ENOSYS;
- if (error == ENOSYS)
- error = __sys_clock_gettime(clock_id, ts);
- return (error);
+ /*
+ * POSIX says send() shall be a cancellation point, so call the
+ * cancellation-enabled sendto() and not _sendto().
+ */
+ return (INTERPOS_SYS(sendto, s, msg, len, flags, NULL, 0));
}
diff --git a/lib/libc/sys/sendfile.2 b/lib/libc/sys/sendfile.2
deleted file mode 100644
index 63e9b707f53a..000000000000
--- a/lib/libc/sys/sendfile.2
+++ /dev/null
@@ -1,445 +0,0 @@
-.\" Copyright (c) 2003, David G. Lawrence
-.\" 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 unmodified, 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt SENDFILE 2
-.Os
-.Sh NAME
-.Nm sendfile
-.Nd send a file to a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.In sys/uio.h
-.Ft int
-.Fo sendfile
-.Fa "int fd" "int s" "off_t offset" "size_t nbytes"
-.Fa "struct sf_hdtr *hdtr" "off_t *sbytes" "int flags"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn sendfile
-system call
-sends a regular file or shared memory object specified by descriptor
-.Fa fd
-out a stream socket specified by descriptor
-.Fa s .
-.Pp
-The
-.Fa offset
-argument specifies where to begin in the file.
-Should
-.Fa offset
-fall beyond the end of file, the system will return
-success and report 0 bytes sent as described below.
-The
-.Fa nbytes
-argument specifies how many bytes of the file should be sent, with 0 having the special
-meaning of send until the end of file has been reached.
-.Pp
-An optional header and/or trailer can be sent before and after the file data by specifying
-a pointer to a
-.Vt "struct sf_hdtr" ,
-which has the following structure:
-.Pp
-.Bd -literal -offset indent -compact
-struct sf_hdtr {
- struct iovec *headers; /* pointer to header iovecs */
- int hdr_cnt; /* number of header iovecs */
- struct iovec *trailers; /* pointer to trailer iovecs */
- int trl_cnt; /* number of trailer iovecs */
-};
-.Ed
-.Pp
-The
-.Fa headers
-and
-.Fa trailers
-pointers, if
-.Pf non- Dv NULL ,
-point to arrays of
-.Vt "struct iovec"
-structures.
-See the
-.Fn writev
-system call for information on the iovec structure.
-The number of iovecs in these
-arrays is specified by
-.Fa hdr_cnt
-and
-.Fa trl_cnt .
-.Pp
-If
-.Pf non- Dv NULL ,
-the system will write the total number of bytes sent on the socket to the
-variable pointed to by
-.Fa sbytes .
-.Pp
-The least significant 16 bits of
-.Fa flags
-argument is a bitmap of these values:
-.Bl -tag -offset indent -width "SF_USER_READAHEAD"
-.It Dv SF_NODISKIO
-This flag causes
-.Nm
-to return
-.Er EBUSY
-instead of blocking when a busy page is encountered.
-This rare situation can happen if some other process is now working
-with the same region of the file.
-It is advised to retry the operation after a short period.
-.Pp
-Note that in older
-.Fx
-versions the
-.Dv SF_NODISKIO
-had slightly different notion.
-The flag prevented
-.Nm
-to run I/O operations in case if an invalid (not cached) page is encountered,
-thus avoiding blocking on I/O.
-Starting with
-.Fx 11
-.Nm
-sending files off the
-.Xr ffs 7
-filesystem does not block on I/O
-(see
-.Sx IMPLEMENTATION NOTES
-), so the condition no longer applies.
-However, it is safe if an application utilizes
-.Dv SF_NODISKIO
-and on
-.Er EBUSY
-performs the same action as it did in
-older
-.Fx
-versions, e.g.,
-.Xr aio_read 2 ,
-.Xr read 2
-or
-.Nm
-in a different context.
-.It Dv SF_NOCACHE
-The data sent to socket will not be cached by the virtual memory system,
-and will be freed directly to the pool of free pages.
-.It Dv SF_SYNC
-.Nm
-sleeps until the network stack no longer references the VM pages
-of the file, making subsequent modifications to it safe.
-Please note that this is not a guarantee that the data has actually
-been sent.
-.It Dv SF_USER_READAHEAD
-.Nm
-has some internal heuristics to do readahead when sending data.
-This flag forces
-.Nm
-to override any heuristically calculated readahead and use exactly the
-application specified readahead.
-See
-.Sx SETTING READAHEAD
-for more details on readahead.
-.El
-.Pp
-When using a socket marked for non-blocking I/O,
-.Fn sendfile
-may send fewer bytes than requested.
-In this case, the number of bytes successfully
-written is returned in
-.Fa *sbytes
-(if specified),
-and the error
-.Er EAGAIN
-is returned.
-.Sh SETTING READAHEAD
-.Nm
-uses internal heuristics based on request size and file system layout
-to do readahead.
-Additionally application may request extra readahead.
-The most significant 16 bits of
-.Fa flags
-specify amount of pages that
-.Nm
-may read ahead when reading the file.
-A macro
-.Fn SF_FLAGS
-is provided to combine readahead amount and flags.
-An example showing specifying readahead of 16 pages and
-.Dv SF_NOCACHE
-flag:
-.Pp
-.Bd -literal -offset indent -compact
- SF_FLAGS(16, SF_NOCACHE)
-.Ed
-.Pp
-.Nm
-will use either application specified readahead or internally calculated,
-whichever is bigger.
-Setting flag
-.Dv SF_USER_READAHEAD
-would turn off any heuristics and set maximum possible readahead length to
-the number of pages specified via flags.
-.Sh IMPLEMENTATION NOTES
-The
-.Fx
-implementation of
-.Fn sendfile
-does not block on disk I/O when it sends a file off the
-.Xr ffs 7
-filesystem.
-The syscall returns success before the actual I/O completes, and data
-is put into the socket later unattended.
-However, the order of data in the socket is preserved, so it is safe
-to do further writes to the socket.
-.Pp
-The
-.Fx
-implementation of
-.Fn sendfile
-is "zero-copy", meaning that it has been optimized so that copying of the file data is avoided.
-.Sh TUNING
-.Ss physical paging buffers
-.Fn sendfile
-uses vnode pager to read file pages into memory.
-The pager uses a pool of physical buffers to run its I/O operations.
-When system runs out of pbufs, sendfile will block and report state
-.Dq Li zonelimit .
-Size of the pool can be tuned with
-.Va vm.vnode_pbufs
-.Xr loader.conf 5
-tunable and can be checked with
-.Xr sysctl 8
-OID of the same name at runtime.
-.Ss sendfile(2) buffers
-On some architectures, this system call internally uses a special
-.Fn sendfile
-buffer
-.Pq Vt "struct sf_buf"
-to handle sending file data to the client.
-If the sending socket is
-blocking, and there are not enough
-.Fn sendfile
-buffers available,
-.Fn sendfile
-will block and report a state of
-.Dq Li sfbufa .
-If the sending socket is non-blocking and there are not enough
-.Fn sendfile
-buffers available, the call will block and wait for the
-necessary buffers to become available before finishing the call.
-.Pp
-The number of
-.Vt sf_buf Ns 's
-allocated should be proportional to the number of nmbclusters used to
-send data to a client via
-.Fn sendfile .
-Tune accordingly to avoid blocking!
-Busy installations that make extensive use of
-.Fn sendfile
-may want to increase these values to be inline with their
-.Va kern.ipc.nmbclusters
-(see
-.Xr tuning 7
-for details).
-.Pp
-The number of
-.Fn sendfile
-buffers available is determined at boot time by either the
-.Va kern.ipc.nsfbufs
-.Xr loader.conf 5
-variable or the
-.Dv NSFBUFS
-kernel configuration tunable.
-The number of
-.Fn sendfile
-buffers scales with
-.Va kern.maxusers .
-The
-.Va kern.ipc.nsfbufsused
-and
-.Va kern.ipc.nsfbufspeak
-read-only
-.Xr sysctl 8
-variables show current and peak
-.Fn sendfile
-buffers usage respectively.
-These values may also be viewed through
-.Nm netstat Fl m .
-.Pp
-If
-.Xr sysctl 8
-OID
-.Va kern.ipc.nsfbufs
-doesn't exist, your architecture does not need to use
-.Fn sendfile
-buffers because their task can be efficiently performed
-by the generic virtual memory structures.
-.Sh RETURN VALUES
-.Rv -std sendfile
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The socket is marked for non-blocking I/O and not all data was sent due to
-the socket buffer being filled.
-If specified, the number of bytes successfully sent will be returned in
-.Fa *sbytes .
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid file descriptor.
-.It Bq Er EBADF
-The
-.Fa s
-argument
-is not a valid socket descriptor.
-.It Bq Er EBUSY
-A busy page was encountered and
-.Dv SF_NODISKIO
-had been specified.
-Partial data may have been sent.
-.It Bq Er EFAULT
-An invalid address was specified for an argument.
-.It Bq Er EINTR
-A signal interrupted
-.Fn sendfile
-before it could be completed.
-If specified, the number
-of bytes successfully sent will be returned in
-.Fa *sbytes .
-.It Bq Er EINVAL
-The
-.Fa fd
-argument
-is not a regular file.
-.It Bq Er EINVAL
-The
-.Fa s
-argument
-is not a SOCK_STREAM type socket.
-.It Bq Er EINVAL
-The
-.Fa offset
-argument
-is negative.
-.It Bq Er EIO
-An error occurred while reading from
-.Fa fd .
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from
-.Fa fd .
-.It Bq Er ENOTCAPABLE
-The
-.Fa fd
-or the
-.Fa s
-argument has insufficient rights.
-.It Bq Er ENOBUFS
-The system was unable to allocate an internal buffer.
-.It Bq Er ENOTCONN
-The
-.Fa s
-argument
-points to an unconnected socket.
-.It Bq Er ENOTSOCK
-The
-.Fa s
-argument
-is not a socket.
-.It Bq Er EOPNOTSUPP
-The file system for descriptor
-.Fa fd
-does not support
-.Fn sendfile .
-.It Bq Er EPIPE
-The socket peer has closed the connection.
-.El
-.Sh SEE ALSO
-.Xr netstat 1 ,
-.Xr open 2 ,
-.Xr send 2 ,
-.Xr socket 2 ,
-.Xr writev 2 ,
-.Xr loader.conf 5 ,
-.Xr tuning 7 ,
-.Xr sysctl 8
-.Rs
-.%A K. Elmeleegy
-.%A A. Chanda
-.%A A. L. Cox
-.%A W. Zwaenepoel
-.%T A Portable Kernel Abstraction for Low-Overhead Ephemeral Mapping Management
-.%J The Proceedings of the 2005 USENIX Annual Technical Conference
-.%P pp 223-236
-.%D 2005
-.Re
-.Sh HISTORY
-The
-.Fn sendfile
-system call
-first appeared in
-.Fx 3.0 .
-This manual page first appeared in
-.Fx 3.1 .
-In
-.Fx 10
-support for sending shared memory descriptors had been introduced.
-In
-.Fx 11
-a non-blocking implementation had been introduced.
-.Sh AUTHORS
-The initial implementation of
-.Fn sendfile
-system call
-and this manual page were written by
-.An David G. Lawrence Aq Mt dg@dglawrence.com .
-The
-.Fx 11
-implementation was written by
-.An Gleb Smirnoff Aq Mt glebius@FreeBSD.org .
-.Sh BUGS
-The
-.Fn sendfile
-system call will not fail, i.e., return
-.Dv -1
-and set
-.Va errno
-to
-.Er EFAULT ,
-if provided an invalid address for
-.Fa sbytes .
-The
-.Fn sendfile
-system call does not support SCTP sockets,
-it will return
-.Dv -1
-and set
-.Va errno
-to
-.Er EINVAL .
diff --git a/lib/libc/sys/sendmsg.c b/lib/libc/sys/sendmsg.c
index 794464339043..fd4e41837c48 100644
--- a/lib/libc/sys/sendmsg.c
+++ b/lib/libc/sys/sendmsg.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -44,7 +40,5 @@ __weak_reference(__sys_sendmsg, __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));
+ return (INTERPOS_SYS(sendmsg, s, msg, flags));
}
diff --git a/lib/libc/sys/sendto.c b/lib/libc/sys/sendto.c
index ecf98ee05b19..708fc6ec9368 100644
--- a/lib/libc/sys/sendto.c
+++ b/lib/libc/sys/sendto.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -45,9 +41,5 @@ 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));
+ return (INTERPOS_SYS(sendto, s, msg, len, flags, to, tolen));
}
diff --git a/lib/libc/sys/setcontext.c b/lib/libc/sys/setcontext.c
index 31b888f2bcff..96b5dc115067 100644
--- a/lib/libc/sys/setcontext.c
+++ b/lib/libc/sys/setcontext.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -46,7 +42,5 @@ __sym_default(setcontext, setcontext, FBSD_1.2);
int
setcontext(const ucontext_t *uc)
{
-
- return (((int (*)(const ucontext_t *))
- __libc_interposing[INTERPOS_setcontext])(uc));
+ return (INTERPOS_SYS(setcontext, uc));
}
diff --git a/lib/libc/sys/setfib.2 b/lib/libc/sys/setfib.2
deleted file mode 100644
index 83cc7376de39..000000000000
--- a/lib/libc/sys/setfib.2
+++ /dev/null
@@ -1,107 +0,0 @@
-.\" Copyright (c) 2008 Cisco Systems. All rights reserved.
-.\" Author: Julian Elischer
-.\"
-.\" 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 Cisco Systems nor the names of its employees
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 19, 2012
-.Dt SETFIB 2
-.Os
-.Sh NAME
-.Nm setfib
-.Nd set the default FIB (routing table) for the calling process
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft int
-.Fn setfib "int fib"
-.Sh DESCRIPTION
-The
-.Fn setfib
-system call sets the associated fib for all sockets opened
-subsequent to the call, to be that of the argument
-.Fa fib .
-The
-.Fa fib
-argument
-must be greater than or equal to 0
-and less than the current system maximum which
-may be retrieved by the
-.Va net.fibs
-sysctl.
-The system maximum is set in the kernel configuration file with
-.Bd -ragged -offset indent
-.Cd "options ROUTETABLES=" Ns Em N
-.Ed
-.Pp
-or in
-.Pa /boot/loader.conf
-with
-.Pp
-.Dl net.fibs= Ns Qq Em N
-.Pp
-where
-.Em N
-is an integer.
-This maximum is capped at 65536 due to the implementation storing
-the fib number in a 16-bit field in the
-.Xr mbuf 9
-packet header, however it is not suggested that one use such a large number
-as memory is allocated for every FIB regardless of whether it is used, and
-there are places where all FIBs are iterated over.
-.Pp
-The default fib of the process will be applied to all protocol families
-that support multiple fibs, and ignored by those that do not.
-The default fib for a process may be overridden for a socket with the use
-of the
-.Dv SO_SETFIB
-socket option.
-.Sh RETURN VALUES
-.Rv -std setfib
-.Sh ERRORS
-The
-.Fn setfib
-system call
-will fail and no action will be taken and return
-.Er EINVAL
-if the
-.Fa fib
-argument is greater than the current system maximum.
-.Sh SEE ALSO
-.Xr setfib 1 ,
-.Xr setsockopt 2
-.Sh STANDARDS
-The
-.Fn setfib
-system call is a
-.Fx
-extension however similar extensions
-have been added to many other
-.Ux
-style kernels.
-.Sh HISTORY
-The
-.Fn setfib
-function appeared in
-.Fx 7.1 .
diff --git a/lib/libc/sys/setgroups.2 b/lib/libc/sys/setgroups.2
deleted file mode 100644
index b08a7b3ae747..000000000000
--- a/lib/libc/sys/setgroups.2
+++ /dev/null
@@ -1,104 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993, 1994
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)setgroups.2 8.2 (Berkeley) 4/16/94
-.\" $FreeBSD$
-.\"
-.Dd January 19, 2018
-.Dt SETGROUPS 2
-.Os
-.Sh NAME
-.Nm setgroups
-.Nd set group access list
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In unistd.h
-.Ft int
-.Fn setgroups "int ngroups" "const gid_t *gidset"
-.Sh DESCRIPTION
-The
-.Fn setgroups
-system call
-sets the group access list of the current user process
-according to the array
-.Fa gidset .
-The
-.Fa ngroups
-argument
-indicates the number of entries in the array and must be no
-more than
-.Dv {NGROUPS_MAX}+1 .
-.Pp
-Only the super-user may set a new group list.
-.Pp
-The first entry of the group array
-.Pq Va gidset[0]
-is used as the effective group-ID for the process.
-This entry is over-written when a setgid program is run.
-To avoid losing access to the privileges of the
-.Va gidset[0]
-entry, it should be duplicated later in the group array.
-By convention,
-this happens because the group value indicated
-in the password file also appears in
-.Pa /etc/group .
-The group value in the password file is placed in
-.Va gidset[0]
-and that value then gets added a second time when the
-.Pa /etc/group
-file is scanned to create the group set.
-.Sh RETURN VALUES
-.Rv -std setgroups
-.Sh ERRORS
-The
-.Fn setgroups
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The caller is not the super-user.
-.It Bq Er EINVAL
-The number specified in the
-.Fa ngroups
-argument is larger than the
-.Dv {NGROUPS_MAX}+1
-limit.
-.It Bq Er EFAULT
-The address specified for
-.Fa gidset
-is outside the process
-address space.
-.El
-.Sh SEE ALSO
-.Xr getgroups 2 ,
-.Xr initgroups 3
-.Sh HISTORY
-The
-.Fn setgroups
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/setpgid.2 b/lib/libc/sys/setpgid.2
deleted file mode 100644
index 18e5964763d2..000000000000
--- a/lib/libc/sys/setpgid.2
+++ /dev/null
@@ -1,110 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)setpgid.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd February 8, 2004
-.Dt SETPGID 2
-.Os
-.Sh NAME
-.Nm setpgid ,
-.Nm setpgrp
-.Nd set process group
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn setpgid "pid_t pid" "pid_t pgrp"
-.Ft int
-.Fn setpgrp "pid_t pid" "pid_t pgrp"
-.Sh DESCRIPTION
-The
-.Fn setpgid
-system call
-sets the process group of the specified process
-.Fa pid
-to the specified
-.Fa pgrp .
-If
-.Fa pid
-is zero, then the call applies to the current process.
-If
-.Fa pgrp
-is zero, then the process id of the process specified by
-.Fa pid
-is used instead.
-.Pp
-If the affected process is not the invoking process, then it must be a
-child of the invoking process, it must not have performed an
-.Xr exec 3
-operation, and both processes must be in the same session.
-The requested process group ID must already exist in the session of
-the caller, or it must be equal to the target process ID.
-.Sh RETURN VALUES
-.Rv -std setpgid
-.Sh COMPATIBILITY
-The
-.Fn setpgrp
-system call
-is identical to
-.Fn setpgid ,
-and is retained for calling convention compatibility with historical
-versions of
-.Bx .
-.Sh ERRORS
-The
-.Fn setpgid
-system call
-will fail and the process group will not be altered if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The requested process group ID is not legal.
-.It Bq Er ESRCH
-The requested process does not exist.
-.It Bq Er ESRCH
-The target process is not the calling process or
-a child of the calling process.
-.It Bq Er EACCES
-The requested process is a child of the calling process,
-but it has performed an
-.Xr exec 3
-operation.
-.It Bq Er EPERM
-The target process is a session leader.
-.It Bq Er EPERM
-The requested process group ID is not in the session of the caller,
-and it is not equal to the process ID of the target process.
-.El
-.Sh SEE ALSO
-.Xr getpgrp 2
-.Sh STANDARDS
-The
-.Fn setpgid
-system call is expected to conform to
-.St -p1003.1-90 .
diff --git a/lib/libc/sys/setregid.2 b/lib/libc/sys/setregid.2
deleted file mode 100644
index 03d34cadd42c..000000000000
--- a/lib/libc/sys/setregid.2
+++ /dev/null
@@ -1,90 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993, 1994
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)setregid.2 8.2 (Berkeley) 4/16/94
-.\" $FreeBSD$
-.\"
-.Dd April 16, 1994
-.Dt SETREGID 2
-.Os
-.Sh NAME
-.Nm setregid
-.Nd set real and effective group ID
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn setregid "gid_t rgid" "gid_t egid"
-.Sh DESCRIPTION
-The real and effective group ID's of the current process
-are set to the arguments.
-If the real group ID is changed, the saved group ID is changed to the
-new value of the effective group ID.
-.Pp
-Unprivileged users may change the real group
-ID to the effective group ID and vice-versa; only the super-user may
-make other changes.
-.Pp
-Supplying a value of -1 for either the real or effective
-group ID forces the system to substitute the current
-ID in place of the -1 argument.
-.Pp
-The
-.Fn setregid
-system call was intended to allow swapping
-the real and effective group IDs
-in set-group-ID programs to temporarily relinquish the set-group-ID value.
-This system call did not work correctly,
-and its purpose is now better served by the use of the
-.Xr setegid 2
-system call.
-.Pp
-When setting the real and effective group IDs to the same value,
-the standard
-.Fn setgid
-system call is preferred.
-.Sh RETURN VALUES
-.Rv -std setregid
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EPERM
-The current process is not the super-user and a change
-other than changing the effective group-id to the real group-id
-was specified.
-.El
-.Sh SEE ALSO
-.Xr getgid 2 ,
-.Xr issetugid 2 ,
-.Xr setegid 2 ,
-.Xr setgid 2 ,
-.Xr setuid 2
-.Sh HISTORY
-The
-.Fn setregid
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/setresuid.2 b/lib/libc/sys/setresuid.2
deleted file mode 100644
index 602166f80c38..000000000000
--- a/lib/libc/sys/setresuid.2
+++ /dev/null
@@ -1,94 +0,0 @@
-.\" Copyright (c) 2000
-.\" Sheldon Hearn. 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
-.\"
-.\" $FreeBSD$
-.\"
-.Dd February 7, 2015
-.Dt SETRESUID 2
-.Os
-.Sh NAME
-.Nm getresgid ,
-.Nm getresuid ,
-.Nm setresgid ,
-.Nm setresuid
-.Nd "get or set real, effective and saved user or group ID"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In unistd.h
-.Ft int
-.Fn getresgid "gid_t *rgid" "gid_t *egid" "gid_t *sgid"
-.Ft int
-.Fn getresuid "uid_t *ruid" "uid_t *euid" "uid_t *suid"
-.Ft int
-.Fn setresgid "gid_t rgid" "gid_t egid" "gid_t sgid"
-.Ft int
-.Fn setresuid "uid_t ruid" "uid_t euid" "uid_t suid"
-.Sh DESCRIPTION
-The
-.Fn setresuid
-system call sets the real,
-effective and saved user IDs of the current process.
-The analogous
-.Fn setresgid
-sets the real, effective and saved group IDs.
-.Pp
-Privileged processes may set these IDs
-to arbitrary values.
-Unprivileged processes are restricted
-in that each of the new IDs must match one of the current IDs.
-.Pp
-Passing -1 as an argument causes the corresponding value
-to remain unchanged.
-.Pp
-The
-.Fn getresgid
-and
-.Fn getresuid
-calls retrieve the real, effective, and saved group and user IDs of
-the current process, respectively.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EPERM
-The calling process was not privileged
-and tried to change one or more IDs to a value
-which was not the current real ID, the current effective ID
-nor the current saved ID.
-.It Bq Er EFAULT
-An address passed to
-.Fn getresgid
-or
-.Fn getresuid
-was invalid.
-.El
-.Sh SEE ALSO
-.Xr getegid 2 ,
-.Xr geteuid 2 ,
-.Xr getgid 2 ,
-.Xr getuid 2 ,
-.Xr issetugid 2 ,
-.Xr setgid 2 ,
-.Xr setregid 2 ,
-.Xr setreuid 2 ,
-.Xr setuid 2
-.Sh HISTORY
-These functions first appeared in HP-UX.
diff --git a/lib/libc/sys/setreuid.2 b/lib/libc/sys/setreuid.2
deleted file mode 100644
index 31597777605f..000000000000
--- a/lib/libc/sys/setreuid.2
+++ /dev/null
@@ -1,90 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993, 1994
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)setreuid.2 8.2 (Berkeley) 4/16/94
-.\" $FreeBSD$
-.\"
-.Dd February 8, 2001
-.Dt SETREUID 2
-.Os
-.Sh NAME
-.Nm setreuid
-.Nd set real and effective user ID's
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn setreuid "uid_t ruid" "uid_t euid"
-.Sh DESCRIPTION
-The real and effective user IDs of the
-current process are set according to the arguments.
-If
-.Fa ruid
-or
-.Fa euid
-is -1, the current uid is filled in by the system.
-Unprivileged users may change the real user
-ID to the effective user ID and vice-versa; only the super-user may
-make other changes.
-.Pp
-If the real user ID is changed (i.e.\&
-.Fa ruid
-is not -1) or the effective user ID is changed to something other than
-the real user ID, then the saved user ID will be set to the effective user ID.
-.Pp
-The
-.Fn setreuid
-system call has been used to swap the real and effective user IDs
-in set-user-ID programs to temporarily relinquish the set-user-ID value.
-This purpose is now better served by the use of the
-.Xr seteuid 2
-system call.
-.Pp
-When setting the real and effective user IDs to the same value,
-the standard
-.Fn setuid
-system call is preferred.
-.Sh RETURN VALUES
-.Rv -std setreuid
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EPERM
-The current process is not the super-user and a change
-other than changing the effective user-id to the real user-id
-was specified.
-.El
-.Sh SEE ALSO
-.Xr getuid 2 ,
-.Xr issetugid 2 ,
-.Xr seteuid 2 ,
-.Xr setuid 2
-.Sh HISTORY
-The
-.Fn setreuid
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/setsid.2 b/lib/libc/sys/setsid.2
deleted file mode 100644
index 7c147753743d..000000000000
--- a/lib/libc/sys/setsid.2
+++ /dev/null
@@ -1,81 +0,0 @@
-.\" Copyright (c) 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)setsid.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd June 4, 1993
-.Dt SETSID 2
-.Os
-.Sh NAME
-.Nm setsid
-.Nd create session and set process group ID
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft pid_t
-.Fn setsid void
-.Sh DESCRIPTION
-The
-.Fn setsid
-system call creates a new session.
-The calling process is the session leader of the new session, is the
-process group leader of a new process group and has no controlling
-terminal.
-The calling process is the only process in either the session or the
-process group.
-.Sh RETURN VALUES
-Upon successful completion, the
-.Fn setsid
-system call returns the value of the process group ID of the new process
-group, which is the same as the process ID of the calling process.
-If an error occurs,
-.Fn setsid
-returns -1 and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn setsid
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The calling process is already a process group leader, or the process
-group ID of a process other than the calling process matches the process
-ID of the calling process.
-.El
-.Sh SEE ALSO
-.Xr setpgid 2 ,
-.Xr tcgetpgrp 3 ,
-.Xr tcsetpgrp 3
-.Sh STANDARDS
-The
-.Fn setsid
-system call is expected to be compliant with the
-.St -p1003.1-90
-specification.
diff --git a/lib/libc/sys/setuid.2 b/lib/libc/sys/setuid.2
deleted file mode 100644
index 691bc24976b3..000000000000
--- a/lib/libc/sys/setuid.2
+++ /dev/null
@@ -1,189 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)setuid.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 15, 2015
-.Dt SETUID 2
-.Os
-.Sh NAME
-.Nm setuid ,
-.Nm seteuid ,
-.Nm setgid ,
-.Nm setegid
-.Nd set user and group ID
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn setuid "uid_t uid"
-.Ft int
-.Fn seteuid "uid_t euid"
-.Ft int
-.Fn setgid "gid_t gid"
-.Ft int
-.Fn setegid "gid_t egid"
-.Sh DESCRIPTION
-The
-.Fn setuid
-system call
-sets the real and effective
-user IDs and the saved set-user-ID of the current process
-to the specified value.
-.\" Comment out next block for !_POSIX_SAVED_IDS
-.\" The real user ID and the saved set-user-ID are changed only if the
-.\" effective user ID is that of the super user.
-.\" I.e.
-.\" .Fn setuid
-.\" system call is equal to
-.\" .Fn seteuid
-.\" system call if the effective user ID is not that of the super user.
-.\" End of block
-The
-.Fn setuid
-system call is permitted if the specified ID is equal to the real user ID
-.\" Comment out next line for !_POSIX_SAVED_IDS
-.\" or the saved set-user-ID
-.\" Next line is for Appendix B.4.2.2 case.
-or the effective user ID
-of the process, or if the effective user ID is that of the super user.
-.Pp
-The
-.Fn setgid
-system call
-sets the real and effective
-group IDs and the saved set-group-ID of the current process
-to the specified value.
-.\" Comment out next block for !_POSIX_SAVED_IDS
-.\" The real group ID and the saved set-group-ID are changed only if the
-.\" effective user ID is that of the super user.
-.\" I.e.
-.\" .Fn setgid
-.\" system call is equal to
-.\" .Fn setegid
-.\" system call if the effective user ID is not that of the super user.
-.\" End of block
-The
-.Fn setgid
-system call is permitted if the specified ID is equal to the real group ID
-.\" Comment out next line for !_POSIX_SAVED_IDS
-.\" or the saved set-group-ID
-.\" Next line is for Appendix B.4.2.2 case.
-or the effective group ID
-of the process, or if the effective user ID is that of the super user.
-.Pp
-The
-.Fn seteuid
-system call
-.Pq Fn setegid
-sets the effective user ID (group ID) of the
-current process.
-The effective user ID may be set to the value
-of the real user ID or the saved set-user-ID (see
-.Xr intro 2
-and
-.Xr execve 2 ) ;
-in this way, the effective user ID of a set-user-ID executable
-may be toggled by switching to the real user ID, then re-enabled
-by reverting to the set-user-ID value.
-Similarly, the effective group ID may be set to the value
-of the real group ID or the saved set-group-ID.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The system calls will fail if:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The user is not the super user and the ID
-specified is not the real, effective ID, or saved ID.
-.El
-.Sh SEE ALSO
-.Xr getgid 2 ,
-.Xr getuid 2 ,
-.Xr issetugid 2 ,
-.Xr setregid 2 ,
-.Xr setreuid 2
-.Sh STANDARDS
-The
-.Fn setuid
-and
-.Fn setgid
-system calls are compliant with the
-.St -p1003.1-90
-specification with
-.Li _POSIX_SAVED_IDS
-.\" Uncomment next line for !_POSIX_SAVED_IDS
-not
-defined with the permitted extensions from Appendix B.4.2.2.
-The
-.Fn seteuid
-and
-.Fn setegid
-system calls are extensions based on the
-.Tn POSIX
-concept of
-.Li _POSIX_SAVED_IDS ,
-and have been proposed for a future revision of the standard.
-.Sh HISTORY
-The
-.Fn setuid
-function appeared in
-.At v1 .
-The
-.Fn setgid
-function appeared in
-.At v4 .
-.Sh SECURITY CONSIDERATIONS
-Read and write permissions to files are determined upon a call to
-.Xr open 2 .
-Once a file descriptor is open, dropping privilege does not affect
-the process's read/write permissions, even if the user ID specified
-has no read or write permissions to the file.
-These files normally remain open in any new process executed,
-resulting in a user being able to read or modify
-potentially sensitive data.
-.Pp
-To prevent these files from remaining open after an
-.Xr exec 3
-call, be sure to set the close-on-exec flag:
-.Bd -literal
-void
-pseudocode(void)
-{
- int fd;
- /* ... */
-
- fd = open("/path/to/sensitive/data", O_RDWR | O_CLOEXEC);
- if (fd == -1)
- err(1, "open");
-
- /* ... */
- execve(path, argv, environ);
-}
-.Ed
diff --git a/lib/libc/sys/shm_open.2 b/lib/libc/sys/shm_open.2
deleted file mode 100644
index 4c03288b6bbe..000000000000
--- a/lib/libc/sys/shm_open.2
+++ /dev/null
@@ -1,473 +0,0 @@
-.\"
-.\" Copyright 2000 Massachusetts Institute of Technology
-.\"
-.\" Permission to use, copy, modify, and distribute this software and
-.\" its documentation for any purpose and without fee is hereby
-.\" granted, provided that both the above copyright notice and this
-.\" permission notice appear in all copies, that both the above
-.\" copyright notice and this permission notice appear in all
-.\" supporting documentation, and that the name of M.I.T. not be used
-.\" in advertising or publicity pertaining to distribution of the
-.\" software without specific, written prior permission. M.I.T. makes
-.\" no representations about the suitability of this software for any
-.\" purpose. It is provided "as is" without express or implied
-.\" warranty.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS
-.\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
-.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
-.\" SHALL M.I.T. 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd June 25, 2021
-.Dt SHM_OPEN 2
-.Os
-.Sh NAME
-.Nm memfd_create , shm_open , shm_rename, shm_unlink
-.Nd "shared memory object operations"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/mman.h
-.In fcntl.h
-.Ft int
-.Fn memfd_create "const char *name" "unsigned int flags"
-.Ft int
-.Fn shm_open "const char *path" "int flags" "mode_t mode"
-.Ft int
-.Fn shm_rename "const char *path_from" "const char *path_to" "int flags"
-.Ft int
-.Fn shm_unlink "const char *path"
-.Sh DESCRIPTION
-The
-.Fn shm_open
-system call opens (or optionally creates) a
-POSIX
-shared memory object named
-.Fa path .
-The
-.Fa flags
-argument contains a subset of the flags used by
-.Xr open 2 .
-An access mode of either
-.Dv O_RDONLY
-or
-.Dv O_RDWR
-must be included in
-.Fa flags .
-The optional flags
-.Dv O_CREAT ,
-.Dv O_EXCL ,
-and
-.Dv O_TRUNC
-may also be specified.
-.Pp
-If
-.Dv O_CREAT
-is specified,
-then a new shared memory object named
-.Fa path
-will be created if it does not exist.
-In this case,
-the shared memory object is created with mode
-.Fa mode
-subject to the process' umask value.
-If both the
-.Dv O_CREAT
-and
-.Dv O_EXCL
-flags are specified and a shared memory object named
-.Fa path
-already exists,
-then
-.Fn shm_open
-will fail with
-.Er EEXIST .
-.Pp
-Newly created objects start off with a size of zero.
-If an existing shared memory object is opened with
-.Dv O_RDWR
-and the
-.Dv O_TRUNC
-flag is specified,
-then the shared memory object will be truncated to a size of zero.
-The size of the object can be adjusted via
-.Xr ftruncate 2
-and queried via
-.Xr fstat 2 .
-.Pp
-The new descriptor is set to close during
-.Xr execve 2
-system calls;
-see
-.Xr close 2
-and
-.Xr fcntl 2 .
-.Pp
-As a
-.Fx
-extension, the constant
-.Dv SHM_ANON
-may be used for the
-.Fa path
-argument to
-.Fn shm_open .
-In this case, an anonymous, unnamed shared memory object is created.
-Since the object has no name,
-it cannot be removed via a subsequent call to
-.Fn shm_unlink ,
-or moved with a call to
-.Fn shm_rename .
-Instead,
-the shared memory object will be garbage collected when the last reference to
-the shared memory object is removed.
-The shared memory object may be shared with other processes by sharing the
-file descriptor via
-.Xr fork 2
-or
-.Xr sendmsg 2 .
-Attempting to open an anonymous shared memory object with
-.Dv O_RDONLY
-will fail with
-.Er EINVAL .
-All other flags are ignored.
-.Pp
-The
-.Fn shm_rename
-system call atomically removes a shared memory object named
-.Fa path_from
-and relinks it at
-.Fa path_to .
-If another object is already linked at
-.Fa path_to ,
-that object will be unlinked, unless one of the following flags are provided:
-.Bl -tag -offset indent -width Er
-.It Er SHM_RENAME_EXCHANGE
-Atomically exchange the shms at
-.Fa path_from
-and
-.Fa path_to .
-.It Er SHM_RENAME_NOREPLACE
-Return an error if an shm exists at
-.Fa path_to ,
-rather than unlinking it.
-.El
-.Fn shm_rename
-is also a
-.Fx
-extension.
-.Pp
-The
-.Fn shm_unlink
-system call removes a shared memory object named
-.Fa path .
-.Pp
-The
-.Fn memfd_create
-function creates an anonymous shared memory object, identical to that created
-by
-.Fn shm_open
-when
-.Dv SHM_ANON
-is specified.
-Newly created objects start off with a size of zero.
-The size of the new object must be adjusted via
-.Xr ftruncate 2 .
-.Pp
-The
-.Fa name
-argument must not be
-.Dv NULL ,
-but it may be an empty string.
-The length of the
-.Fa name
-argument may not exceed
-.Dv NAME_MAX
-minus six characters for the prefix
-.Dq memfd: ,
-which will be prepended.
-The
-.Fa name
-argument is intended solely for debugging purposes and will never be used by the
-kernel to identify a memfd.
-Names are therefore not required to be unique.
-.Pp
-The following
-.Fa flags
-may be specified to
-.Fn memfd_create :
-.Bl -tag -width MFD_ALLOW_SEALING
-.It Dv MFD_CLOEXEC
-Set
-.Dv FD_CLOEXEC
-on the resulting file descriptor.
-.It Dv MFD_ALLOW_SEALING
-Allow adding seals to the resulting file descriptor using the
-.Dv F_ADD_SEALS
-.Xr fcntl 2
-command.
-.It Dv MFD_HUGETLB
-This flag is currently unsupported.
-.El
-.Sh RETURN VALUES
-If successful,
-.Fn memfd_create
-and
-.Fn shm_open
-both return a non-negative integer,
-and
-.Fn shm_rename
-and
-.Fn shm_unlink
-return zero.
-All functions return -1 on failure, and set
-.Va errno
-to indicate the error.
-.Sh COMPATIBILITY
-The
-.Fa path ,
-.Fa path_from ,
-and
-.Fa path_to
-arguments do not necessarily represent a pathname (although they do in
-most other implementations).
-Two processes opening the same
-.Fa path
-are guaranteed to access the same shared memory object if and only if
-.Fa path
-begins with a slash
-.Pq Ql \&/
-character.
-.Pp
-Only the
-.Dv O_RDONLY ,
-.Dv O_RDWR ,
-.Dv O_CREAT ,
-.Dv O_EXCL ,
-and
-.Dv O_TRUNC
-flags may be used in portable programs.
-.Pp
-POSIX
-specifications state that the result of using
-.Xr open 2 ,
-.Xr read 2 ,
-or
-.Xr write 2
-on a shared memory object, or on the descriptor returned by
-.Fn shm_open ,
-is undefined.
-However, the
-.Fx
-kernel implementation explicitly includes support for
-.Xr read 2
-and
-.Xr write 2 .
-.Pp
-.Fx
-also supports zero-copy transmission of data from shared memory
-objects with
-.Xr sendfile 2 .
-.Pp
-Neither shared memory objects nor their contents persist across reboots.
-.Pp
-Writes do not extend shared memory objects, so
-.Xr ftruncate 2
-must be called before any data can be written.
-See
-.Sx EXAMPLES .
-.Sh EXAMPLES
-This example fails without the call to
-.Xr ftruncate 2 :
-.Bd -literal -compact
-
- uint8_t buffer[getpagesize()];
- ssize_t len;
- int fd;
-
- fd = shm_open(SHM_ANON, O_RDWR | O_CREAT, 0600);
- if (fd < 0)
- err(EX_OSERR, "%s: shm_open", __func__);
- if (ftruncate(fd, getpagesize()) < 0)
- err(EX_IOERR, "%s: ftruncate", __func__);
- len = pwrite(fd, buffer, getpagesize(), 0);
- if (len < 0)
- err(EX_IOERR, "%s: pwrite", __func__);
- if (len != getpagesize())
- errx(EX_IOERR, "%s: pwrite length mismatch", __func__);
-.Ed
-.Sh ERRORS
-.Fn memfd_create
-fails with these error codes for these conditions:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa name
-argument was NULL.
-.It Bq Er EINVAL
-The
-.Fa name
-argument was too long.
-.Pp
-An invalid or unsupported flag was included in
-.Fa flags .
-.It Bq Er EMFILE
-The process has already reached its limit for open file descriptors.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er ENOSYS
-In
-.Fa memfd_create ,
-.Dv MFD_HUGETLB
-was specified in
-.Fa flags ,
-and this system does not support forced hugetlb mappings.
-.El
-.Pp
-.Fn shm_open
-fails with these error codes for these conditions:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-A flag other than
-.Dv O_RDONLY ,
-.Dv O_RDWR ,
-.Dv O_CREAT ,
-.Dv O_EXCL ,
-or
-.Dv O_TRUNC
-was included in
-.Fa flags .
-.It Bq Er EMFILE
-The process has already reached its limit for open file descriptors.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er EINVAL
-.Dv O_RDONLY
-was specified while creating an anonymous shared memory object via
-.Dv SHM_ANON .
-.It Bq Er EFAULT
-The
-.Fa path
-argument points outside the process' allocated address space.
-.It Bq Er ENAMETOOLONG
-The entire pathname exceeds 1023 characters.
-.It Bq Er EINVAL
-The
-.Fa path
-does not begin with a slash
-.Pq Ql \&/
-character.
-.It Bq Er ENOENT
-.Dv O_CREAT
-is not specified and the named shared memory object does not exist.
-.It Bq Er EEXIST
-.Dv O_CREAT
-and
-.Dv O_EXCL
-are specified and the named shared memory object does exist.
-.It Bq Er EACCES
-The required permissions (for reading or reading and writing) are denied.
-.El
-.Pp
-The following errors are defined for
-.Fn shm_rename :
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa path_from
-or
-.Fa path_to
-argument points outside the process' allocated address space.
-.It Bq Er ENAMETOOLONG
-The entire pathname exceeds 1023 characters.
-.It Bq Er ENOENT
-The shared memory object at
-.Fa path_from
-does not exist.
-.It Bq Er EACCES
-The required permissions are denied.
-.It Bq Er EEXIST
-An shm exists at
-.Fa path_to ,
-and the
-.Dv SHM_RENAME_NOREPLACE
-flag was provided.
-.El
-.Pp
-.Fn shm_unlink
-fails with these error codes for these conditions:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa path
-argument points outside the process' allocated address space.
-.It Bq Er ENAMETOOLONG
-The entire pathname exceeds 1023 characters.
-.It Bq Er ENOENT
-The named shared memory object does not exist.
-.It Bq Er EACCES
-The required permissions are denied.
-.Fn shm_unlink
-requires write permission to the shared memory object.
-.El
-.Sh SEE ALSO
-.Xr posixshmcontrol 1 ,
-.Xr close 2 ,
-.Xr fstat 2 ,
-.Xr ftruncate 2 ,
-.Xr mmap 2 ,
-.Xr munmap 2 ,
-.Xr sendfile 2
-.Sh STANDARDS
-The
-.Fn memfd_create
-function is expected to be compatible with the Linux system call of the same
-name.
-.Pp
-The
-.Fn shm_open
-and
-.Fn shm_unlink
-functions are believed to conform to
-.St -p1003.1b-93 .
-.Sh HISTORY
-The
-.Fn memfd_create
-function appeared in
-.Fx 13.0 .
-.Pp
-The
-.Fn shm_open
-and
-.Fn shm_unlink
-functions first appeared in
-.Fx 4.3 .
-The functions were reimplemented as system calls using shared memory objects
-directly rather than files in
-.Fx 8.0 .
-.Pp
-.Fn shm_rename
-first appeared in
-.Fx 13.0
-as a
-.Fx
-extension.
-.Sh AUTHORS
-.An Garrett A. Wollman Aq Mt wollman@FreeBSD.org
-(C library support and this manual page)
-.Pp
-.An Matthew Dillon Aq Mt dillon@FreeBSD.org
-.Pq Dv MAP_NOSYNC
-.Pp
-.An Matthew Bryan Aq Mt matthew.bryan@isilon.com
-.Pq Dv shm_rename implementation
diff --git a/lib/libc/sys/shm_open.c b/lib/libc/sys/shm_open.c
index e5666a3558e9..eb3022c857b1 100644
--- a/lib/libc/sys/shm_open.c
+++ b/lib/libc/sys/shm_open.c
@@ -1,5 +1,5 @@
/*
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2019 Kyle Evans <kevans@FreeBSD.org>
*
@@ -28,18 +28,12 @@
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/param.h>
#include <sys/filio.h>
#include <sys/mman.h>
#include <errno.h>
#include <fcntl.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <stdio.h>
#include <string.h>
#include <unistd.h>
@@ -48,12 +42,9 @@ __FBSDID("$FreeBSD$");
__weak_reference(shm_open, _shm_open);
__weak_reference(shm_open, __sys_shm_open);
-#define MEMFD_NAME_PREFIX "memfd:"
-
int
shm_open(const char *path, int flags, mode_t mode)
{
-
return (__sys_shm_open2(path, flags | O_CLOEXEC, mode, 0, NULL));
}
@@ -80,90 +71,3 @@ shm_create_largepage(const char *path, int flags, int psind, int alloc_policy,
}
return (fd);
}
-
-/*
- * The path argument is passed to the kernel, but the kernel doesn't currently
- * do anything with it. Linux exposes it in linprocfs for debugging purposes
- * only, but our kernel currently will not do the same.
- */
-int
-memfd_create(const char *name, unsigned int flags)
-{
- char memfd_name[NAME_MAX + 1];
- size_t namelen, *pgs, pgsize;
- struct shm_largepage_conf slc;
- int error, fd, npgs, oflags, pgidx, saved_errno, shmflags;
-
- if (name == NULL) {
- errno = EBADF;
- return (-1);
- }
- namelen = strlen(name);
- if (namelen + sizeof(MEMFD_NAME_PREFIX) - 1 > NAME_MAX) {
- errno = EINVAL;
- return (-1);
- }
- if ((flags & ~(MFD_CLOEXEC | MFD_ALLOW_SEALING | MFD_HUGETLB |
- MFD_HUGE_MASK)) != 0) {
- errno = EINVAL;
- return (-1);
- }
- /* Size specified but no HUGETLB. */
- if ((flags & MFD_HUGE_MASK) != 0 && (flags & MFD_HUGETLB) == 0) {
- errno = EINVAL;
- return (-1);
- }
-
- /* We've already validated that we're sufficiently sized. */
- snprintf(memfd_name, NAME_MAX + 1, "%s%s", MEMFD_NAME_PREFIX, name);
- oflags = O_RDWR;
- shmflags = 0;
- if ((flags & MFD_CLOEXEC) != 0)
- oflags |= O_CLOEXEC;
- if ((flags & MFD_ALLOW_SEALING) != 0)
- shmflags |= SHM_ALLOW_SEALING;
- if ((flags & MFD_HUGETLB) != 0)
- shmflags |= SHM_LARGEPAGE;
- else
- shmflags |= SHM_GROW_ON_WRITE;
- fd = __sys_shm_open2(SHM_ANON, oflags, 0, shmflags, memfd_name);
- if (fd == -1 || (flags & MFD_HUGETLB) == 0)
- return (fd);
-
- pgs = NULL;
- npgs = getpagesizes(NULL, 0);
- if (npgs == -1)
- goto clean;
- pgs = calloc(npgs, sizeof(size_t));
- if (pgs == NULL)
- goto clean;
- error = getpagesizes(pgs, npgs);
- if (error == -1)
- goto clean;
- pgsize = (size_t)1 << ((flags & MFD_HUGE_MASK) >> MFD_HUGE_SHIFT);
- for (pgidx = 0; pgidx < npgs; pgidx++) {
- if (pgsize == pgs[pgidx])
- break;
- }
- if (pgidx == npgs) {
- errno = EOPNOTSUPP;
- goto clean;
- }
- free(pgs);
- pgs = NULL;
-
- memset(&slc, 0, sizeof(slc));
- slc.psind = pgidx;
- slc.alloc_policy = SHM_LARGEPAGE_ALLOC_DEFAULT;
- error = ioctl(fd, FIOSSHMLPGCNF, &slc);
- if (error == -1)
- goto clean;
- return (fd);
-
-clean:
- saved_errno = errno;
- close(fd);
- free(pgs);
- errno = saved_errno;
- return (-1);
-}
diff --git a/lib/libc/sys/shmat.2 b/lib/libc/sys/shmat.2
deleted file mode 100644
index 4aea27c0d872..000000000000
--- a/lib/libc/sys/shmat.2
+++ /dev/null
@@ -1,156 +0,0 @@
-.\"
-.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
-.\"
-.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd January 14, 2019
-.Dt SHMAT 2
-.Os
-.Sh NAME
-.Nm shmat ,
-.Nm shmdt
-.Nd attach or detach shared memory
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ipc.h
-.In sys/shm.h
-.Ft void *
-.Fn shmat "int shmid" "const void *addr" "int flag"
-.Ft int
-.Fn shmdt "const void *addr"
-.Sh DESCRIPTION
-The
-.Fn shmat
-system call
-attaches the shared memory segment identified by
-.Fa shmid
-to the calling process's address space.
-The address where the segment
-is attached is determined as follows:
-.\"
-.\" These are cribbed almost exactly from Stevens, _Advanced Programming in
-.\" the UNIX Environment_.
-.\"
-.Bl -bullet
-.It
-If
-.Fa addr
-is 0, the segment is attached at an address selected by the
-kernel.
-.It
-If
-.Fa addr
-is nonzero and
-.Va SHM_RND
-is not specified in
-.Fa flag ,
-the segment is attached the specified address.
-.It
-If
-.Fa addr
-is specified and
-.Va SHM_RND
-is specified,
-.Fa addr
-is rounded down to the nearest multiple of SHMLBA.
-.El
-.Pp
-If the
-.Va SHM_REMAP
-flag is specified and the passed
-.Fa addr
-is not
-.Dv NULL ,
-any existing mappings in the virtual addresses range are
-cleared before the segment is attached.
-If the flag is not specified,
-.Fa addr
-is not
-.Dv NULL ,
-and the virtual address range contains
-some pre-existing mappings, the
-.Fn shmat
-call fails.
-.Pp
-The
-.Fn shmdt
-system call
-detaches the shared memory segment at the address specified by
-.Fa addr
-from the calling process's address space.
-.Sh RETURN VALUES
-Upon success,
-.Fn shmat
-returns the address where the segment is attached; otherwise, -1
-is returned and
-.Va errno
-is set to indicate the error.
-.Pp
-.Rv -std shmdt
-.Sh ERRORS
-The
-.Fn shmat
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-No shared memory segment was found corresponding to
-.Fa shmid .
-.It Bq Er EINVAL
-The
-.Fa addr
-argument
-was not an acceptable address.
-.It Bq Er ENOMEM
-The specified
-.Fa addr
-cannot be used for mapping, for instance due to the amount of available
-space being smaller than the segment size,
-or because pre-existing mappings are in the range and no
-.Va SHM_REMAP
-flag was provided.
-.It Bq Er EMFILE
-Failed to attach the shared memory segment because the per-process
-.Va kern.ipc.shmseg
-.Xr sysctl 3
-limit was reached.
-.El
-.Pp
-The
-.Fn shmdt
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa addr
-argument
-does not point to a shared memory segment.
-.El
-.Sh "SEE ALSO"
-.Xr shmctl 2 ,
-.Xr shmget 2
diff --git a/lib/libc/sys/shmctl.2 b/lib/libc/sys/shmctl.2
deleted file mode 100644
index 788e79f1900d..000000000000
--- a/lib/libc/sys/shmctl.2
+++ /dev/null
@@ -1,141 +0,0 @@
-.\"
-.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
-.\"
-.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd October 10, 2015
-.Dt SHMCTL 2
-.Os
-.Sh NAME
-.Nm shmctl
-.Nd shared memory control
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/ipc.h
-.In sys/shm.h
-.Ft int
-.Fn shmctl "int shmid" "int cmd" "struct shmid_ds *buf"
-.Sh DESCRIPTION
-Performs the action specified by
-.Fa cmd
-on the shared memory segment identified by
-.Fa shmid :
-.Bl -tag -width SHM_UNLOCKX
-.It Dv IPC_STAT
-Fetch the segment's
-.Fa "struct shmid_ds" ,
-storing it in the memory pointed to by
-.Fa buf .
-.\"
-.\" XXX need to make sure that this is correct for FreeBSD
-.\"
-.It Dv IPC_SET
-Changes the
-.Fa shm_perm.uid ,
-.Fa shm_perm.gid ,
-and
-.Fa shm_perm.mode
-members of the segment's
-.Fa "struct shmid_ds"
-to match those of the struct pointed to by
-.Fa buf .
-The calling process's effective uid must
-match either
-.Fa shm_perm.uid
-or
-.Fa shm_perm.cuid ,
-or it must have superuser privileges.
-.It Dv IPC_RMID
-Removes the segment from the system.
-The removal will not take
-effect until all processes having attached the segment have exited.
-For the operation
-to succeed, the calling process's effective uid must match
-.Fa shm_perm.uid
-or
-.Fa shm_perm.cuid ,
-or the process must have superuser privileges.
-If the
-.Va kern.ipc.shm_allow_removed
-.Xr sysctl 3
-variable is set to 0, once the IPC_RMID operation has taken place,
-no further processes will be allowed to attach the segment.
-.\" .It Dv SHM_LOCK
-.\" Locks the segment in memory. The calling process must have
-.\" superuser privileges. Not implemented in FreeBSD.
-.\" .It Dv SHM_UNLOCK
-.\" Unlocks the segment from memory. The calling process must
-.\" have superuser privileges. Not implemented in FreeBSD.
-.El
-.Pp
-The
-.Vt shmid_ds
-structure is defined as follows:
-.\"
-.\" I fiddled with the spaces a bit to make it fit well when viewed
-.\" with nroff, but otherwise it is straight from sys/shm.h
-.\"
-.Bd -literal
-struct shmid_ds {
- struct ipc_perm shm_perm; /* operation permission structure */
- size_t shm_segsz; /* size of segment in bytes */
- pid_t shm_lpid; /* process ID of last shared memory op */
- pid_t shm_cpid; /* process ID of creator */
- int shm_nattch; /* number of current attaches */
- time_t shm_atime; /* time of last shmat() */
- time_t shm_dtime; /* time of last shmdt() */
- time_t shm_ctime; /* time of last change by shmctl() */
-};
-.Ed
-.Sh RETURN VALUES
-.Rv -std shmctl
-.Sh ERRORS
-The
-.Fn shmctl
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-Invalid operation, or
-no shared memory segment was found corresponding to
-.Fa shmid .
-.\"
-.\" XXX I think the following is right: ipcperm() only returns EPERM
-.\" when an attempt is made to modify (IPC_M) by a non-creator
-.\" non-owner
-.It Bq Er EPERM
-The calling process's effective uid does not match the uid of
-the shared memory segment's owner or creator.
-.It Bq Er EACCES
-Permission denied due to mismatch between operation and mode of
-shared memory segment.
-.El
-.Sh "SEE ALSO"
-.Xr shmat 2 ,
-.Xr shmdt 2 ,
-.Xr shmget 2 ,
-.Xr ftok 3
diff --git a/lib/libc/sys/shmget.2 b/lib/libc/sys/shmget.2
deleted file mode 100644
index 2613619420ed..000000000000
--- a/lib/libc/sys/shmget.2
+++ /dev/null
@@ -1,142 +0,0 @@
-.\"
-.\" Copyright (c) 1995 David Hovemeyer <daveho@infocom.com>
-.\"
-.\" 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 DEVELOPERS ``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 DEVELOPERS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd March 4, 2018
-.Dt SHMGET 2
-.Os
-.Sh NAME
-.Nm shmget
-.Nd obtain a shared memory identifier
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/shm.h
-.Ft int
-.Fn shmget "key_t key" "size_t size" "int flag"
-.Sh DESCRIPTION
-Based on the values of
-.Fa key
-and
-.Fa flag ,
-.Fn shmget
-returns the identifier of a newly created or previously existing shared
-memory segment.
-.\"
-.\" The following bit about keys and modes also applies to semaphores
-.\" and message queues.
-.\"
-The key
-is analogous to a filename: it provides a handle that names an
-IPC object.
-There are three ways to specify a key:
-.Bl -bullet
-.It
-IPC_PRIVATE may be specified, in which case a new IPC object
-will be created.
-.It
-An integer constant may be specified.
-If no IPC object corresponding
-to
-.Fa key
-is specified and the IPC_CREAT bit is set in
-.Fa flag ,
-a new one will be created.
-.It
-The
-.Xr ftok 3
-may be used to generate a key from a pathname.
-.El
-.Pp
-The mode of a newly created IPC object is determined by
-which are set by ORing these constants into the
-.Fa flag
-argument:
-.Bl -tag -width 0000
-.It Dv 0400
-Read access for owner.
-.It Dv 0200
-Write access for owner.
-.It Dv 0040
-Read access for group.
-.It Dv 0020
-Write access for group.
-.It Dv 0004
-Read access for other.
-.It Dv 0002
-Write access for other.
-.El
-.\"
-.\" XXX - we should also mention how uid, euid, and gid affect ownership
-.\" and use
-.\"
-.\" end section about keys and modes
-.\"
-.Pp
-When creating a new shared memory segment,
-.Fa size
-indicates the desired size of the new segment in bytes.
-The size
-of the segment may be rounded up to a multiple convenient to the
-kernel (i.e., the page size).
-.Sh RETURN VALUES
-Upon successful completion,
-.Fn shmget
-returns the positive integer identifier of a shared memory segment.
-Otherwise, -1 is returned and
-.Va errno
-set to indicate the error.
-.Sh ERRORS
-The
-.Fn shmget
-system call
-will fail if:
-.Bl -tag -width Er
-.\"
-.\" XXX What about ipcperm failing?
-.\"
-.It Bq Er EINVAL
-Size specified is greater than the size of the previously existing segment.
-Size specified is less than the system imposed minimum, or greater than
-the system imposed maximum.
-.It Bq Er ENOENT
-No shared memory segment was found matching
-.Fa key ,
-and IPC_CREAT was not specified.
-.It Bq Er ENOSPC
-The kernel was unable to allocate enough memory to
-satisfy the request.
-.It Bq Er EEXIST
-IPC_CREAT and IPC_EXCL were specified, and a shared memory segment
-corresponding to
-.Fa key
-already exists.
-.El
-.Sh "SEE ALSO"
-.Xr shmat 2 ,
-.Xr shmctl 2 ,
-.Xr shmdt 2 ,
-.Xr ftok 3
diff --git a/lib/libc/sys/shutdown.2 b/lib/libc/sys/shutdown.2
deleted file mode 100644
index 4752fb0ffc84..000000000000
--- a/lib/libc/sys/shutdown.2
+++ /dev/null
@@ -1,171 +0,0 @@
-.\" Copyright (c) 2007 Bruce M. Simpson.
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)shutdown.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd July 27, 2015
-.Dt SHUTDOWN 2
-.Os
-.Sh NAME
-.Nm shutdown
-.Nd disable sends and/or receives on a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Ft int
-.Fn shutdown "int s" "int how"
-.Sh DESCRIPTION
-The
-.Fn shutdown
-system call disables sends or receives on a socket.
-The
-.Fa how
-argument specifies the type of shutdown.
-Possible values are:
-.Bl -tag -width ".Dv SHUT_RDWR"
-.It Dv SHUT_RD
-Further receives will be disallowed.
-.It Dv SHUT_WR
-Further sends will be disallowed.
-This may cause actions specific to the protocol family of the socket
-.Fa s
-to happen; see
-.Sx IMPLEMENTATION NOTES .
-.It Dv SHUT_RDWR
-Further sends and receives will be disallowed.
-Implies
-.Dv SHUT_WR .
-.El
-.Pp
-If the file descriptor
-.Fa s
-is associated with a
-.Dv SOCK_STREAM
-socket, all or part of the full-duplex connection will be shut down.
-.\"
-.Sh IMPLEMENTATION NOTES
-The following protocol specific actions apply to the use of
-.Dv SHUT_WR
-(and potentially also
-.Dv SHUT_RDWR ) ,
-based on the properties of the socket associated with the file descriptor
-.Fa s .
-.Bl -column ".Dv PF_INET6" ".Dv SOCK_STREAM" ".Dv IPPROTO_SCTP"
-.It Sy Domain Ta Sy Type Ta Sy Protocol Ta Sy Action
-.It Dv PF_INET Ta Dv SOCK_DGRAM Ta Dv IPPROTO_SCTP Ta
-Failure,
-as socket is not connected.
-.It Dv PF_INET Ta Dv SOCK_DGRAM Ta Dv IPPROTO_UDP Ta
-Failure,
-as socket is not connected.
-.It Dv PF_INET Ta Dv SOCK_STREAM Ta Dv IPPROTO_SCTP Ta
-Send queued data and tear down association.
-.It Dv PF_INET Ta Dv SOCK_STREAM Ta Dv IPPROTO_TCP Ta
-Send queued data, wait for ACK, then send FIN.
-.It Dv PF_INET6 Ta Dv SOCK_DGRAM Ta Dv IPPROTO_SCTP Ta
-Failure,
-as socket is not connected.
-.It Dv PF_INET6 Ta Dv SOCK_DGRAM Ta Dv IPPROTO_UDP Ta
-Failure,
-as socket is not connected.
-.It Dv PF_INET6 Ta Dv SOCK_STREAM Ta Dv IPPROTO_SCTP Ta
-Send queued data and tear down association.
-.It Dv PF_INET6 Ta Dv SOCK_STREAM Ta Dv IPPROTO_TCP Ta
-Send queued data, wait for ACK, then send FIN.
-.El
-.\"
-.Sh RETURN VALUES
-.Rv -std shutdown
-.Sh ERRORS
-The
-.Fn shutdown
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa s
-argument is not a valid file descriptor.
-.It Bq Er EINVAL
-The
-.Fa how
-argument is invalid.
-.It Bq Er ENOTCONN
-The
-.Fa s
-argument specifies a socket which is not connected.
-.It Bq Er ENOTSOCK
-The
-.Fa s
-argument does not refer to a socket.
-.El
-.Sh SEE ALSO
-.Xr connect 2 ,
-.Xr socket 2 ,
-.Xr inet 4 ,
-.Xr inet6 4
-.Sh STANDARDS
-The
-.Fn shutdown
-system call is expected to comply with
-.St -p1003.1g-2000 ,
-when finalized.
-.Sh HISTORY
-The
-.Fn shutdown
-system call appeared in
-.Bx 4.2 .
-The
-.Dv SHUT_RD , SHUT_WR ,
-and
-.Dv SHUT_RDWR
-constants appeared in
-.St -p1003.1g-2000 .
-.Sh AUTHORS
-.An -nosplit
-This manual page was updated by
-.An Bruce M. Simpson Aq Mt bms@FreeBSD.org
-to reflect how
-.Fn shutdown
-behaves with
-.Dv PF_INET
-and
-.Dv PF_INET6
-sockets.
-.Sh BUGS
-The ICMP
-.Dq Li "port unreachable"
-message should be generated in response to
-datagrams received on a local port to which
-.Fa s
-is bound
-after
-.Fn shutdown
-is called.
diff --git a/lib/libc/sys/sigaction.2 b/lib/libc/sys/sigaction.2
deleted file mode 100644
index e36ef385c848..000000000000
--- a/lib/libc/sys/sigaction.2
+++ /dev/null
@@ -1,795 +0,0 @@
-.\" Copyright (c) 1980, 1990, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" From: @(#)sigaction.2 8.2 (Berkeley) 4/3/94
-.\" $FreeBSD$
-.\"
-.Dd June 29, 2020
-.Dt SIGACTION 2
-.Os
-.Sh NAME
-.Nm sigaction
-.Nd software signal facilities
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Bd -literal
-struct sigaction {
- void (*sa_handler)(int);
- void (*sa_sigaction)(int, siginfo_t *, void *);
- int sa_flags; /* see signal options below */
- sigset_t sa_mask; /* signal mask to apply */
-};
-.Ed
-.Pp
-.Ft int
-.Fo sigaction
-.Fa "int sig"
-.Fa "const struct sigaction * restrict act"
-.Fa "struct sigaction * restrict oact"
-.Fc
-.Sh DESCRIPTION
-The system defines a set of signals that may be delivered to a process.
-Signal delivery resembles the occurrence of a hardware interrupt:
-the signal is normally blocked from further occurrence, the current thread
-context is saved, and a new one is built.
-A process may specify a
-.Em handler
-to which a signal is delivered, or specify that a signal is to be
-.Em ignored .
-A process may also specify that a default action is to be taken
-by the system when a signal occurs.
-A signal may also be
-.Em blocked
-for a thread,
-in which case it will not be delivered to that thread until it is
-.Em unblocked .
-The action to be taken on delivery is determined at the time
-of delivery.
-Normally, signal handlers execute on the current stack
-of the thread.
-This may be changed, on a per-handler basis,
-so that signals are taken on a special
-.Em "signal stack" .
-.Pp
-Signal routines normally execute with the signal that caused their
-invocation
-.Em blocked ,
-but other signals may yet occur.
-A global
-.Em "signal mask"
-defines the set of signals currently blocked from delivery
-to a thread.
-The signal mask for a thread is initialized
-from that of its parent (normally empty).
-It may be changed with a
-.Xr sigprocmask 2
-or
-.Xr pthread_sigmask 3
-call, or when a signal is delivered to the thread.
-.Pp
-When a signal
-condition arises for a process or thread, the signal is added to a set of
-signals pending for the process or thread.
-Whether the signal is directed at the process in general or at a specific
-thread depends on how it is generated.
-For signals directed at a specific thread,
-if the signal is not currently
-.Em blocked
-by the thread then it is delivered to the thread.
-For signals directed at the process,
-if the signal is not currently
-.Em blocked
-by all threads then it is delivered to one thread that does not have it blocked
-(the selection of which is unspecified).
-Signals may be delivered any time a thread enters the operating system
-(e.g., during a system call, page fault or trap, or clock interrupt).
-If multiple signals are ready to be delivered at the same time,
-any signals that could be caused by traps are delivered first.
-Additional signals may be processed at the same time, with each
-appearing to interrupt the handlers for the previous signals
-before their first instructions.
-The set of pending signals is returned by the
-.Xr sigpending 2
-system call.
-When a caught signal
-is delivered, the current state of the thread is saved,
-a new signal mask is calculated (as described below),
-and the signal handler is invoked.
-The call to the handler
-is arranged so that if the signal handling routine returns
-normally the thread will resume execution in the context
-from before the signal's delivery.
-If the thread wishes to resume in a different context, then it
-must arrange to restore the previous context itself.
-.Pp
-When a signal is delivered to a thread a new signal mask is
-installed for the duration of the process' signal handler
-(or until a
-.Xr sigprocmask 2
-system call is made).
-This mask is formed by taking the union of the current signal mask set,
-the signal to be delivered, and
-the signal mask associated with the handler to be invoked.
-.Pp
-The
-.Fn sigaction
-system call
-assigns an action for a signal specified by
-.Fa sig .
-If
-.Fa act
-is non-NULL, it specifies an action
-.Dv ( SIG_DFL ,
-.Dv SIG_IGN ,
-or a handler routine) and mask to be used when delivering the specified signal.
-If
-.Fa oact
-is non-NULL, the previous handling information for the signal
-is returned to the user.
-.Pp
-The above declaration of
-.Vt "struct sigaction"
-is not literal.
-It is provided only to list the accessible members.
-See
-.In sys/signal.h
-for the actual definition.
-In particular, the storage occupied by
-.Va sa_handler
-and
-.Va sa_sigaction
-overlaps, and it is nonsensical for an application to attempt to use both
-simultaneously.
-.Pp
-Once a signal handler is installed, it normally remains installed
-until another
-.Fn sigaction
-system call is made, or an
-.Xr execve 2
-is performed.
-A signal-specific default action may be reset by
-setting
-.Va sa_handler
-to
-.Dv SIG_DFL .
-The defaults are process termination, possibly with core dump;
-no action; stopping the process; or continuing the process.
-See the signal list below for each signal's default action.
-If
-.Va sa_handler
-is
-.Dv SIG_DFL ,
-the default action for the signal is to discard the signal,
-and if a signal is pending,
-the pending signal is discarded even if the signal is masked.
-If
-.Va sa_handler
-is set to
-.Dv SIG_IGN
-current and pending instances
-of the signal are ignored and discarded.
-.Pp
-Options may be specified by setting
-.Va sa_flags .
-The meaning of the various bits is as follows:
-.Bl -tag -offset indent -width SA_RESETHANDXX
-.It Dv SA_NOCLDSTOP
-If this bit is set when installing a catching function
-for the
-.Dv SIGCHLD
-signal,
-the
-.Dv SIGCHLD
-signal will be generated only when a child process exits,
-not when a child process stops.
-.It Dv SA_NOCLDWAIT
-If this bit is set when calling
-.Fn sigaction
-for the
-.Dv SIGCHLD
-signal, the system will not create zombie processes when children of
-the calling process exit.
-If the calling process subsequently issues a
-.Xr wait 2
-(or equivalent), it blocks until all of the calling process's child
-processes terminate, and then returns a value of \-1 with
-.Va errno
-set to
-.Er ECHILD .
-The same effect of avoiding zombie creation can also be achieved by setting
-.Va sa_handler
-for
-.Dv SIGCHLD
-to
-.Dv SIG_IGN .
-.It Dv SA_ONSTACK
-If this bit is set, the system will deliver the signal to the process
-on a
-.Em "signal stack" ,
-specified by each thread with
-.Xr sigaltstack 2 .
-.It Dv SA_NODEFER
-If this bit is set, further occurrences of the delivered signal are
-not masked during the execution of the handler.
-.It Dv SA_RESETHAND
-If this bit is set, the handler is reset back to
-.Dv SIG_DFL
-at the moment the signal is delivered.
-.It Dv SA_RESTART
-See paragraph below.
-.It Dv SA_SIGINFO
-If this bit is set, the handler function is assumed to be pointed to by the
-.Va sa_sigaction
-member of
-.Vt "struct sigaction"
-and should match the prototype shown above or as below in
-.Sx EXAMPLES .
-This bit should not be set when assigning
-.Dv SIG_DFL
-or
-.Dv SIG_IGN .
-.El
-.Pp
-If a signal is caught during the system calls listed below,
-the call may be forced to terminate
-with the error
-.Er EINTR ,
-the call may return with a data transfer shorter than requested,
-or the call may be restarted.
-Restart of pending calls is requested
-by setting the
-.Dv SA_RESTART
-bit in
-.Va sa_flags .
-The affected system calls include
-.Xr open 2 ,
-.Xr read 2 ,
-.Xr write 2 ,
-.Xr sendto 2 ,
-.Xr recvfrom 2 ,
-.Xr sendmsg 2
-and
-.Xr recvmsg 2
-on a communications channel or a slow device (such as a terminal,
-but not a regular file)
-and during a
-.Xr wait 2
-or
-.Xr ioctl 2 .
-However, calls that have already committed are not restarted,
-but instead return a partial success (for example, a short read count).
-.Pp
-After a
-.Xr pthread_create 3
-the signal mask is inherited by the new thread and
-the set of pending signals and the signal stack for the new thread are empty.
-.Pp
-After a
-.Xr fork 2
-or
-.Xr vfork 2
-all signals, the signal mask, the signal stack,
-and the restart/interrupt flags are inherited by the child.
-.Pp
-The
-.Xr execve 2
-system call reinstates the default
-action for all signals which were caught and
-resets all signals to be caught on the user stack.
-Ignored signals remain ignored;
-the signal mask remains the same;
-signals that restart pending system calls continue to do so.
-.Pp
-The following is a list of all signals
-with names as in the include file
-.In signal.h :
-.Bl -column SIGVTALARMXX "create core imagexxx"
-.It Sy NAME Ta Sy Default Action Ta Sy Description
-.It Dv SIGHUP Ta terminate process Ta terminal line hangup
-.It Dv SIGINT Ta terminate process Ta interrupt program
-.It Dv SIGQUIT Ta create core image Ta quit program
-.It Dv SIGILL Ta create core image Ta illegal instruction
-.It Dv SIGTRAP Ta create core image Ta trace trap
-.It Dv SIGABRT Ta create core image Ta Xr abort 3 call (formerly Dv SIGIOT )
-.It Dv SIGEMT Ta create core image Ta emulate instruction executed
-.It Dv SIGFPE Ta create core image Ta floating-point exception
-.It Dv SIGKILL Ta terminate process Ta kill program
-.It Dv SIGBUS Ta create core image Ta bus error
-.It Dv SIGSEGV Ta create core image Ta segmentation violation
-.It Dv SIGSYS Ta create core image Ta non-existent system call invoked
-.It Dv SIGPIPE Ta terminate process Ta write on a pipe with no reader
-.It Dv SIGALRM Ta terminate process Ta real-time timer expired
-.It Dv SIGTERM Ta terminate process Ta software termination signal
-.It Dv SIGURG Ta discard signal Ta urgent condition present on socket
-.It Dv SIGSTOP Ta stop process Ta stop (cannot be caught or ignored)
-.It Dv SIGTSTP Ta stop process Ta stop signal generated from keyboard
-.It Dv SIGCONT Ta discard signal Ta continue after stop
-.It Dv SIGCHLD Ta discard signal Ta child status has changed
-.It Dv SIGTTIN Ta stop process Ta background read attempted from control terminal
-.It Dv SIGTTOU Ta stop process Ta background write attempted to control terminal
-.It Dv SIGIO Ta discard signal Ta I/O is possible on a descriptor (see Xr fcntl 2 )
-.It Dv SIGXCPU Ta terminate process Ta cpu time limit exceeded (see Xr setrlimit 2 )
-.It Dv SIGXFSZ Ta terminate process Ta file size limit exceeded (see Xr setrlimit 2 )
-.It Dv SIGVTALRM Ta terminate process Ta virtual time alarm (see Xr setitimer 2 )
-.It Dv SIGPROF Ta terminate process Ta profiling timer alarm (see Xr setitimer 2 )
-.It Dv SIGWINCH Ta discard signal Ta window size change
-.It Dv SIGINFO Ta discard signal Ta status request from keyboard
-.It Dv SIGUSR1 Ta terminate process Ta user defined signal 1
-.It Dv SIGUSR2 Ta terminate process Ta user defined signal 2
-.El
-.Sh NOTE
-The
-.Va sa_mask
-field specified in
-.Fa act
-is not allowed to block
-.Dv SIGKILL
-or
-.Dv SIGSTOP .
-Any attempt to do so will be silently ignored.
-.Pp
-The following functions are either reentrant or not interruptible
-by signals and are async-signal safe.
-Therefore applications may
-invoke them, without restriction, from signal-catching functions
-or from a child process after calling
-.Xr fork 2
-in a multi-threaded process:
-.Pp
-Base Interfaces:
-.Pp
-.Fn _Exit ,
-.Fn _exit ,
-.Fn accept ,
-.Fn access ,
-.Fn alarm ,
-.Fn bind ,
-.Fn cfgetispeed ,
-.Fn cfgetospeed ,
-.Fn cfsetispeed ,
-.Fn cfsetospeed ,
-.Fn chdir ,
-.Fn chmod ,
-.Fn chown ,
-.Fn close ,
-.Fn connect ,
-.Fn creat ,
-.Fn dup ,
-.Fn dup2 ,
-.Fn execl ,
-.Fn execle ,
-.Fn execv ,
-.Fn execve ,
-.Fn faccessat ,
-.Fn fchdir ,
-.Fn fchmod ,
-.Fn fchmodat ,
-.Fn fchown ,
-.Fn fchownat ,
-.Fn fcntl ,
-.Fn fork ,
-.Fn fstat ,
-.Fn fstatat ,
-.Fn fsync ,
-.Fn ftruncate ,
-.Fn getegid ,
-.Fn geteuid ,
-.Fn getgid ,
-.Fn getgroups ,
-.Fn getpeername ,
-.Fn getpgrp ,
-.Fn getpid ,
-.Fn getppid ,
-.Fn getsockname ,
-.Fn getsockopt ,
-.Fn getuid ,
-.Fn kill ,
-.Fn link ,
-.Fn linkat ,
-.Fn listen ,
-.Fn lseek ,
-.Fn lstat ,
-.Fn mkdir ,
-.Fn mkdirat ,
-.Fn mkfifo ,
-.Fn mkfifoat ,
-.Fn mknod ,
-.Fn mknodat ,
-.Fn open ,
-.Fn openat ,
-.Fn pause ,
-.Fn pipe ,
-.Fn poll ,
-.Fn pselect ,
-.Fn pthread_sigmask ,
-.Fn raise ,
-.Fn read ,
-.Fn readlink ,
-.Fn readlinkat ,
-.Fn recv ,
-.Fn recvfrom ,
-.Fn recvmsg ,
-.Fn rename ,
-.Fn renameat ,
-.Fn rmdir ,
-.Fn select ,
-.Fn send ,
-.Fn sendmsg ,
-.Fn sendto ,
-.Fn setgid ,
-.Fn setpgid ,
-.Fn setsid ,
-.Fn setsockopt ,
-.Fn setuid ,
-.Fn shutdown ,
-.Fn sigaction ,
-.Fn sigaddset ,
-.Fn sigdelset ,
-.Fn sigemptyset ,
-.Fn sigfillset ,
-.Fn sigismember ,
-.Fn signal ,
-.Fn sigpending ,
-.Fn sigprocmask ,
-.Fn sigsuspend ,
-.Fn sleep ,
-.Fn sockatmark ,
-.Fn socket ,
-.Fn socketpair ,
-.Fn stat ,
-.Fn symlink ,
-.Fn symlinkat ,
-.Fn tcdrain ,
-.Fn tcflow ,
-.Fn tcflush ,
-.Fn tcgetattr ,
-.Fn tcgetpgrp ,
-.Fn tcsendbreak ,
-.Fn tcsetattr ,
-.Fn tcsetpgrp ,
-.Fn time ,
-.Fn times ,
-.Fn umask ,
-.Fn uname ,
-.Fn unlink ,
-.Fn unlinkat ,
-.Fn utime ,
-.Fn wait ,
-.Fn waitpid ,
-.Fn write .
-.Pp
-X/Open Systems Interfaces:
-.Pp
-.Fn sigpause ,
-.Fn sigset ,
-.Fn utimes .
-.Pp
-Realtime Interfaces:
-.Pp
-.Fn aio_error ,
-.Fn clock_gettime ,
-.Fn timer_getoverrun ,
-.Fn aio_return ,
-.Fn fdatasync ,
-.Fn sigqueue ,
-.Fn timer_gettime ,
-.Fn aio_suspend ,
-.Fn sem_post ,
-.Fn timer_settime .
-.Pp
-Base Interfaces not specified as async-signal safe by
-.Tn POSIX :
-.Pp
-.Fn fpathconf ,
-.Fn pathconf ,
-.Fn sysconf .
-.Pp
-Base Interfaces not specified as async-signal safe by
-.Tn POSIX ,
-but planned to be:
-.Pp
-.Fn ffs ,
-.Fn htonl ,
-.Fn htons ,
-.Fn memccpy ,
-.Fn memchr ,
-.Fn memcmp ,
-.Fn memcpy ,
-.Fn memmove ,
-.Fn memset ,
-.Fn ntohl ,
-.Fn ntohs ,
-.Fn stpcpy ,
-.Fn stpncpy ,
-.Fn strcat ,
-.Fn strchr ,
-.Fn strcmp ,
-.Fn strcpy ,
-.Fn strcspn ,
-.Fn strlen ,
-.Fn strncat ,
-.Fn strncmp ,
-.Fn strncpy ,
-.Fn strnlen ,
-.Fn strpbrk ,
-.Fn strrchr ,
-.Fn strspn ,
-.Fn strstr ,
-.Fn strtok_r ,
-.Fn wcpcpy ,
-.Fn wcpncpy ,
-.Fn wcscat ,
-.Fn wcschr ,
-.Fn wcscmp ,
-.Fn wcscpy ,
-.Fn wcscspn ,
-.Fn wcslen ,
-.Fn wcsncat ,
-.Fn wcsncmp ,
-.Fn wcsncpy ,
-.Fn wcsnlen ,
-.Fn wcspbrk ,
-.Fn wcsrchr ,
-.Fn wcsspn ,
-.Fn wcsstr ,
-.Fn wcstok ,
-.Fn wmemchr ,
-.Fn wmemcmp ,
-.Fn wmemcpy ,
-.Fn wmemmove ,
-.Fn wmemset .
-.Pp
-Extension Interfaces:
-.Pp
-.Fn accept4 ,
-.Fn bindat ,
-.Fn close_range ,
-.Fn closefrom ,
-.Fn connectat ,
-.Fn eaccess ,
-.Fn ffsl ,
-.Fn ffsll ,
-.Fn flock ,
-.Fn fls ,
-.Fn flsl ,
-.Fn flsll ,
-.Fn futimesat ,
-.Fn pipe2 ,
-.Fn strlcat .
-.Fn strlcpy ,
-.Fn strsep .
-.Pp
-In addition, reading or writing
-.Va errno
-is async-signal safe.
-.Pp
-All functions not in the above lists are considered to be unsafe
-with respect to signals.
-That is to say, the behaviour of such
-functions is undefined when they are called from a signal handler
-that interrupted an unsafe function.
-In general though, signal handlers should do little more than set a
-flag; most other actions are not safe.
-.Pp
-Also, it is good practice to make a copy of the global variable
-.Va errno
-and restore it before returning from the signal handler.
-This protects against the side effect of
-.Va errno
-being set by functions called from inside the signal handler.
-.Sh RETURN VALUES
-.Rv -std sigaction
-.Sh EXAMPLES
-There are three possible prototypes the handler may match:
-.Bl -tag -offset indent -width short
-.It Tn ANSI C :
-.Ft void
-.Fn handler int ;
-.It Traditional BSD style:
-.Ft void
-.Fn handler int "int code" "struct sigcontext *scp" ;
-.It Tn POSIX Dv SA_SIGINFO :
-.Ft void
-.Fn handler int "siginfo_t *info" "ucontext_t *uap" ;
-.El
-.Pp
-The handler function should match the
-.Dv SA_SIGINFO
-prototype if the
-.Dv SA_SIGINFO
-bit is set in
-.Va sa_flags .
-It then should be pointed to by the
-.Va sa_sigaction
-member of
-.Vt "struct sigaction" .
-Note that you should not assign
-.Dv SIG_DFL
-or
-.Dv SIG_IGN
-this way.
-.Pp
-If the
-.Dv SA_SIGINFO
-flag is not set, the handler function should match
-either the
-.Tn ANSI C
-or traditional
-.Bx
-prototype and be pointed to by
-the
-.Va sa_handler
-member of
-.Vt "struct sigaction" .
-In practice,
-.Fx
-always sends the three arguments of the latter and since the
-.Tn ANSI C
-prototype is a subset, both will work.
-The
-.Va sa_handler
-member declaration in
-.Fx
-include files is that of
-.Tn ANSI C
-(as required by
-.Tn POSIX ) ,
-so a function pointer of a
-.Bx Ns -style
-function needs to be casted to
-compile without warning.
-The traditional
-.Bx
-style is not portable and since its capabilities
-are a full subset of a
-.Dv SA_SIGINFO
-handler,
-its use is deprecated.
-.Pp
-The
-.Fa sig
-argument is the signal number, one of the
-.Dv SIG...
-values from
-.In signal.h .
-.Pp
-The
-.Fa code
-argument of the
-.Bx Ns -style
-handler and the
-.Va si_code
-member of the
-.Fa info
-argument to a
-.Dv SA_SIGINFO
-handler contain a numeric code explaining the
-cause of the signal, usually one of the
-.Dv SI_...
-values from
-.In sys/signal.h
-or codes specific to a signal, i.e., one of the
-.Dv FPE_...
-values for
-.Dv SIGFPE .
-.Pp
-The
-.Fa scp
-argument to a
-.Bx Ns -style
-handler points to an instance of
-.Vt "struct sigcontext" .
-.Pp
-The
-.Fa uap
-argument to a
-.Tn POSIX
-.Dv SA_SIGINFO
-handler points to an instance of
-ucontext_t.
-.Sh ERRORS
-The
-.Fn sigaction
-system call
-will fail and no new signal handler will be installed if one
-of the following occurs:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa sig
-argument
-is not a valid signal number.
-.It Bq Er EINVAL
-An attempt is made to ignore or supply a handler for
-.Dv SIGKILL
-or
-.Dv SIGSTOP .
-.El
-.Sh SEE ALSO
-.Xr kill 1 ,
-.Xr kill 2 ,
-.Xr ptrace 2 ,
-.Xr setitimer 2 ,
-.Xr setrlimit 2 ,
-.Xr sigaltstack 2 ,
-.Xr sigpending 2 ,
-.Xr sigprocmask 2 ,
-.Xr sigsuspend 2 ,
-.Xr wait 2 ,
-.Xr fpsetmask 3 ,
-.Xr setjmp 3 ,
-.Xr siginfo 3 ,
-.Xr siginterrupt 3 ,
-.Xr sigsetops 3 ,
-.Xr ucontext 3 ,
-.Xr tty 4
-.Sh STANDARDS
-The
-.Fn sigaction
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Dv SA_ONSTACK
-and
-.Dv SA_RESTART
-flags are Berkeley extensions,
-as are the signals,
-.Dv SIGTRAP ,
-.Dv SIGEMT ,
-.Dv SIGBUS ,
-.Dv SIGSYS ,
-.Dv SIGURG ,
-.Dv SIGIO ,
-.Dv SIGXCPU ,
-.Dv SIGXFSZ ,
-.Dv SIGVTALRM ,
-.Dv SIGPROF ,
-.Dv SIGWINCH ,
-and
-.Dv SIGINFO .
-Those signals are available on most
-.Bx Ns \-derived
-systems.
-The
-.Dv SA_NODEFER
-and
-.Dv SA_RESETHAND
-flags are intended for backwards compatibility with other operating
-systems.
-The
-.Dv SA_NOCLDSTOP ,
-and
-.Dv SA_NOCLDWAIT
-.\" and
-.\" SA_SIGINFO
-flags are featuring options commonly found in other operating systems.
-The flags are approved by
-.St -susv2 ,
-along with the option to avoid zombie creation by ignoring
-.Dv SIGCHLD .
diff --git a/lib/libc/sys/sigaction.c b/lib/libc/sys/sigaction.c
index b4d65639b816..809881ca4d3f 100644
--- a/lib/libc/sys/sigaction.c
+++ b/lib/libc/sys/sigaction.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -44,7 +40,5 @@ __weak_reference(sigaction, __libc_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));
+ return (INTERPOS_SYS(sigaction, sig, act, oact));
}
diff --git a/lib/libc/sys/sigaltstack.2 b/lib/libc/sys/sigaltstack.2
deleted file mode 100644
index df35ff0c3bf4..000000000000
--- a/lib/libc/sys/sigaltstack.2
+++ /dev/null
@@ -1,162 +0,0 @@
-.\" Copyright (c) 1983, 1991, 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.
-.\" 3. 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.
-.\"
-.\" @(#)sigaltstack.2 8.2 (Berkeley) 5/1/95
-.\" $FreeBSD$
-.\"
-.Dd May 6, 2010
-.Dt SIGALTSTACK 2
-.Os
-.Sh NAME
-.Nm sigaltstack
-.Nd set and/or get signal stack context
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Bd -literal
-typedef struct {
- char *ss_sp;
- size_t ss_size;
- int ss_flags;
-} stack_t;
-.Ed
-.Ft int
-.Fn sigaltstack "const stack_t * restrict ss" "stack_t * restrict oss"
-.Sh DESCRIPTION
-The
-.Fn sigaltstack
-system call
-allows defining an alternate stack on which signals
-are to be processed for the current thread.
-If
-.Fa ss
-is non-zero,
-it specifies a pointer to and the size of a
-.Em "signal stack"
-on which to deliver signals.
-When a signal's action indicates its handler
-should execute on the signal stack (specified with a
-.Xr sigaction 2
-system call), the system checks to see
-if the thread is currently executing on that stack.
-If the thread is not currently executing on the signal stack,
-the system arranges a switch to the signal stack for the
-duration of the signal handler's execution.
-.Pp
-An active stack cannot be modified.
-.Pp
-If
-.Dv SS_DISABLE
-is set in
-.Fa ss_flags ,
-.Fa ss_sp
-and
-.Fa ss_size
-are ignored and the signal stack will be disabled.
-A disabled stack will cause all signals to be
-taken on the regular user stack.
-If the stack is later re-enabled then all signals that were specified
-to be processed on an alternate stack will resume doing so.
-.Pp
-If
-.Fa oss
-is non-zero, the current signal stack state is returned.
-The
-.Fa ss_flags
-field will contain the value
-.Dv SS_ONSTACK
-if the thread is currently on a signal stack and
-.Dv SS_DISABLE
-if the signal stack is currently disabled.
-.Sh NOTES
-The value
-.Dv SIGSTKSZ
-is defined to be the number of bytes/chars that would be used to cover
-the usual case when allocating an alternate stack area.
-The following code fragment is typically used to allocate an alternate stack.
-.Bd -literal -offset indent
-if ((sigstk.ss_sp = malloc(SIGSTKSZ)) == NULL)
- /* error return */
-sigstk.ss_size = SIGSTKSZ;
-sigstk.ss_flags = 0;
-if (sigaltstack(&sigstk, NULL) < 0)
- perror("sigaltstack");
-.Ed
-An alternative approach is provided for programs with signal handlers
-that require a specific amount of stack space other than the default size.
-The value
-.Dv MINSIGSTKSZ
-is defined to be the number of bytes/chars that is required by
-the operating system to implement the alternate stack feature.
-In computing an alternate stack size,
-programs should add
-.Dv MINSIGSTKSZ
-to their stack requirements to allow for the operating system overhead.
-.Pp
-Signal stacks are automatically adjusted for the direction of stack
-growth and alignment requirements.
-Signal stacks may or may not be protected by the hardware and
-are not ``grown'' automatically as is done for the normal stack.
-If the stack overflows and this space is not protected
-unpredictable results may occur.
-.Sh RETURN VALUES
-.Rv -std sigaltstack
-.Sh ERRORS
-The
-.Fn sigaltstack
-system call
-will fail and the signal stack context will remain unchanged
-if one of the following occurs.
-.Bl -tag -width Er
-.It Bq Er EFAULT
-Either
-.Fa ss
-or
-.Fa oss
-points to memory that is not a valid part of the process
-address space.
-.It Bq Er EPERM
-An attempt was made to modify an active stack.
-.It Bq Er EINVAL
-The
-.Fa ss_flags
-field was invalid.
-.It Bq Er ENOMEM
-Size of alternate stack area is less than or equal to
-.Dv MINSIGSTKSZ .
-.El
-.Sh SEE ALSO
-.Xr sigaction 2 ,
-.Xr setjmp 3
-.Sh HISTORY
-The predecessor to
-.Fn sigaltstack ,
-the
-.Fn sigstack
-system call, appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/sigfastblock.2 b/lib/libc/sys/sigfastblock.2
deleted file mode 100644
index da835abdf9aa..000000000000
--- a/lib/libc/sys/sigfastblock.2
+++ /dev/null
@@ -1,166 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd December 13, 2019
-.Dt SIGFASTBLOCK 2
-.Os
-.Sh NAME
-.Nm sigfastblock
-.Nd controls signals blocking with a simple memory write
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/signalvar.h
-.Ft int
-.Fn sigfastblock "int cmd" "void *ptr"
-.Sh DESCRIPTION
-.Bf -symbolic
-This function is not intended for a direct usage by applications.
-The functionality is provided for implementing some optimizations in
-.Xr ld-elf.so.1 8
-and
-.Lb libthr .
-.Ef
-.Pp
-The function configures the kernel facility that allows a thread to
-block asynchronous signals delivery with a single write to userspace
-memory, avoiding overhead of system calls like
-.Xr sigprocmask 2
-for establishing critical sections.
-The C runtime uses it to optimize implementation of async-signal-safe
-functionality.
-.Pp
-A thread might register a
-.Dv sigblock
-variable of type
-.Vt int
-as a location which is consulted by kernel when calculating the
-blocked signal mask for delivery of asynchronous signals.
-If the variable indicates that blocking is requested, then the kernel
-effectively operates as if the mask containing all blockable signals was
-supplied to
-.Xr sigprocmask 2 .
-.Pp
-The variable is supposed to be modified only from the owning thread,
-there is no way to guarantee visibility of update from other thread
-to kernel when signals are delivered.
-.Pp
-Lower bits of the sigblock variable are reserved as flags,
-which might be set or cleared by kernel at arbitrary moments.
-Userspace code should use
-.Xr atomic 9
-operations of incrementing and decrementing by
-.Dv SIGFASTBLOCK_INC
-quantity to recursively block or unblock signals delivery.
-.Pp
-If a signal would be delivered when unmasked, kernel might set the
-.Dv SIGFASTBLOCK_PEND
-.Dq pending signal
-flag in the sigblock variable.
-Userspace should perform
-.Dv SIGFASTBLOCK_UNBLOCK
-operation when clearing the variable if it notes the pending signal
-bit is set, which would deliver the pending signals immediately.
-Otherwise, signals delivery might be postponed.
-.Pp
-The
-.Fa cmd
-argument specifies one of the following operations:
-.Bl -tag -width SIGFASTBLOCK_UNSETPTR
-.It Dv SIGFASTBLOCK_SETPTR
-Register the variable of type
-.Vt int
-at location pointed to by the
-.Fa ptr
-argument as sigblock variable for the calling thread.
-.It Dv SIGFASTBLOCK_UNSETPTR
-Unregister the currently registered sigblock location.
-Kernel stops inferring the blocked mask from non-zero value of its
-blocked count.
-New location can be registered after previous one is deregistered.
-.It Dv SIGFASTBLOCK_UNBLOCK
-If there are pending signals which should be delivered to the calling
-thread, they are delivered before returning from the call.
-The sigblock variable should have zero blocking count, and indicate
-that the pending signal exists.
-Effectively this means that the variable should have the value
-.Dv SIGFASTBLOCK_PEND .
-.El
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The operation may fail with the following errors:
-.Bl -tag -width Er
-.It Bq Er EBUSY
-The
-.Dv SIGFASTBLOCK_SETPTR
-attempted while the sigblock address was already registered.
-The
-.Dv SIGFASTBLOCK_UNBLOCK
-was called while sigblock variable value is not equal to
-.Dv SIGFASTBLOCK_PEND .
-.It Bq Er EINVAL
-The variable address passed to
-.Dv SIGFASTBLOCK_SETPTR
-is not aligned naturally.
-The
-.Dv SIGFASTBLOCK_UNSETPTR
-operation was attempted without prior successfull call to
-.Dv SIGFASTBLOCK_SETPTR .
-.It Bq Er EFAULT
-Attempt to read or write to the sigblock variable failed.
-Note that kernel generates the
-.Dv SIGSEGV
-signal if an attempt to read from the sigblock variable faulted
-during implicit accesses from syscall entry.
-.El
-.Sh SEE ALSO
-.Xr kill 2 ,
-.Xr signal 2 ,
-.Xr sigprocmask 2 ,
-.Xr libthr 3 ,
-.Xr ld-elf.so.1 8
-.Sh STANDARDS
-The
-.Nm
-function is non-standard, although a similar functionality is a common
-optimization provided by several other systems.
-.Sh HISTORY
-The
-.Nm
-function was introduced in
-.Fx 13.0 .
-.Sh BUGS
-The
-.Nm
-symbol is currently not exported by libc, on purpose.
-Consumers should either use the
-.Dv __sys_fast_sigblock
-symbol from the private libc namespace, or utilize
-.Xr syscall 2 .
diff --git a/lib/libc/sys/sigpending.2 b/lib/libc/sys/sigpending.2
deleted file mode 100644
index d7d227cc455f..000000000000
--- a/lib/libc/sys/sigpending.2
+++ /dev/null
@@ -1,77 +0,0 @@
-.\" Copyright (c) 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" This code is derived from software contributed to Berkeley by
-.\" Berkeley Software Design, Inc.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)sigpending.2 8.3 (Berkeley) 1/12/94
-.\" $FreeBSD$
-.\"
-.Dd September 6, 2013
-.Dt SIGPENDING 2
-.Os
-.Sh NAME
-.Nm sigpending
-.Nd get pending signals
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Ft int
-.Fn sigpending "sigset_t *set"
-.Sh DESCRIPTION
-The
-.Fn sigpending
-system call returns a mask of the signals pending for delivery
-to the calling thread or the calling process in the location indicated by
-.Fa set .
-Signals may be pending because they are currently masked,
-or transiently before delivery (although the latter case is not
-normally detectable).
-.Sh RETURN VALUES
-.Rv -std sigpending
-.Sh ERRORS
-The
-.Fn sigpending
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa set
-argument specified an invalid address.
-.El
-.Sh SEE ALSO
-.Xr sigaction 2 ,
-.Xr sigprocmask 2 ,
-.Xr sigsuspend 2 ,
-.Xr sigsetops 3
-.Sh STANDARDS
-The
-.Fn sigpending
-system call is expected to conform to
-.St -p1003.1-90 .
diff --git a/lib/libc/sys/sigprocmask.2 b/lib/libc/sys/sigprocmask.2
deleted file mode 100644
index 1d28187a21dd..000000000000
--- a/lib/libc/sys/sigprocmask.2
+++ /dev/null
@@ -1,131 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)sigprocmask.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd May 7, 2010
-.Dt SIGPROCMASK 2
-.Os
-.Sh NAME
-.Nm sigprocmask
-.Nd manipulate current signal mask
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Ft int
-.Fo sigprocmask
-.Fa "int how"
-.Fa "const sigset_t * restrict set"
-.Fa "sigset_t * restrict oset"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn sigprocmask
-system call examines and/or changes the current signal mask (those signals
-that are blocked from delivery).
-Signals are blocked if they are members of the current signal mask set.
-.Pp
-If
-.Fa set
-is not null, the action of
-.Fn sigprocmask
-depends on the value of the
-.Fa how
-argument.
-The signal mask is changed as a function of the specified
-.Fa set
-and the current mask.
-The function is specified by
-.Fa how
-using one of the following values from
-.In signal.h :
-.Bl -tag -width SIG_UNBLOCK
-.It Dv SIG_BLOCK
-The new mask is the union of the current mask and the specified
-.Fa set .
-.It Dv SIG_UNBLOCK
-The new mask is the intersection of the current mask
-and the complement of the specified
-.Fa set .
-.It Dv SIG_SETMASK
-The current mask is replaced by the specified
-.Fa set .
-.El
-.Pp
-If
-.Fa oset
-is not null, it is set to
-the previous value of the signal mask.
-When
-.Fa set
-is null,
-the value of
-.Fa how
-is insignificant and the mask remains unset
-providing a way to examine the signal mask without modification.
-.Pp
-The system
-quietly disallows
-.Dv SIGKILL
-or
-.Dv SIGSTOP
-to be blocked.
-.Pp
-In threaded applications,
-.Xr pthread_sigmask 3
-must be used instead of
-.Fn sigprocmask .
-.Sh RETURN VALUES
-.Rv -std sigprocmask
-.Sh ERRORS
-The
-.Fn sigprocmask
-system call will fail and the signal mask will be unchanged if one
-of the following occurs:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa how
-argument
-has a value other than those listed here.
-.El
-.Sh SEE ALSO
-.Xr kill 2 ,
-.Xr sigaction 2 ,
-.Xr sigpending 2 ,
-.Xr sigsuspend 2 ,
-.Xr fpsetmask 3 ,
-.Xr pthread_sigmask 3 ,
-.Xr sigsetops 3
-.Sh STANDARDS
-The
-.Fn sigprocmask
-system call is expected to
-conform to
-.St -p1003.1-90 .
diff --git a/lib/libc/sys/sigprocmask.c b/lib/libc/sys/sigprocmask.c
index d24bb89c1f79..96cb9586509b 100644
--- a/lib/libc/sys/sigprocmask.c
+++ b/lib/libc/sys/sigprocmask.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -44,7 +40,5 @@ __weak_reference(sigprocmask, __libc_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));
+ return (INTERPOS_SYS(sigprocmask, how, set, oset));
}
diff --git a/lib/libc/sys/sigqueue.2 b/lib/libc/sys/sigqueue.2
deleted file mode 100644
index 8377c67295b0..000000000000
--- a/lib/libc/sys/sigqueue.2
+++ /dev/null
@@ -1,163 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2017
-.Dt SIGQUEUE 2
-.Os
-.Sh NAME
-.Nm sigqueue
-.Nd "queue a signal to a process (REALTIME)"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Ft int
-.Fn sigqueue "pid_t pid" "int signo" "const union sigval value"
-.Sh DESCRIPTION
-The
-.Fn sigqueue
-system call causes the signal specified by
-.Fa signo
-to be sent with the value specified by
-.Fa value
-to the process specified by
-.Fa pid .
-If
-.Fa signo
-is zero (the null signal), error checking is performed but
-no signal is actually sent.
-The null signal can be used to check the
-validity of PID.
-.Pp
-The conditions required for a process to have permission to queue a
-signal to another process are the same as for the
-.Xr kill 2
-system call.
-The
-.Fn sigqueue
-system call queues a signal to a single process specified by the
-.Fa pid
-argument.
-.Pp
-The
-.Fn sigqueue
-system call returns immediately.
-If the resources were
-available to queue the signal, the signal will be queued and sent to
-the receiving process.
-.Pp
-If the value of
-.Fa pid
-causes
-.Fa signo
-to be generated for the sending process, and if
-.Fa signo
-is not blocked for the calling thread and if no other thread has
-.Fa signo
-unblocked or is waiting in a
-.Fn sigwait
-system call for
-.Fa signo ,
-either
-.Fa signo
-or at least the pending, unblocked signal will be delivered to the
-calling thread before
-.Fn sigqueue
-returns.
-Should any multiple pending signals in the range
-.Dv SIGRTMIN
-to
-.Dv SIGRTMAX
-be selected for delivery, it is the lowest numbered
-one.
-The selection order between realtime and non-realtime signals, or
-between multiple pending non-realtime signals, is unspecified.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn sigqueue
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-No resources are available to queue the signal.
-The process has already
-queued
-.Brq Dv SIGQUEUE_MAX
-signals that are still pending at the receiver(s),
-or a system-wide resource limit has been exceeded.
-.It Bq Er EINVAL
-The value of the
-.Fa signo
-argument is an invalid or unsupported signal number.
-.It Bq Er EPERM
-The process does not have the appropriate privilege to send the signal
-to the receiving process.
-.It Bq Er ESRCH
-The process
-.Fa pid
-does not exist.
-.El
-.Sh SEE ALSO
-.Xr kill 2 ,
-.Xr sigaction 2 ,
-.Xr sigpending 2 ,
-.Xr sigsuspend 2 ,
-.Xr sigtimedwait 2 ,
-.Xr sigwait 2 ,
-.Xr sigwaitinfo 2 ,
-.Xr pause 3 ,
-.Xr pthread_sigmask 3 ,
-.Xr siginfo 3
-.Sh STANDARDS
-The
-.Fn sigqueue
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-realtime signal queue first appeared in
-.Fx 7.0 .
-.Sh CAVEATS
-When using
-.Nm
-to send signals to a process which might have a different ABI
-(for instance, one is 32-bit and the other 64-bit),
-the
-.Va sival_int
-member of
-.Fa value
-can be delivered reliably, but the
-.Va sival_ptr
-may be truncated in endian dependent ways and must not be relied on.
-Further, many pointer integrity schemes disallow sending pointers to other
-processes, and this technique should not be used in programs intended to
-be portable.
diff --git a/lib/libc/sys/sigreturn.2 b/lib/libc/sys/sigreturn.2
deleted file mode 100644
index 9b9320c50c59..000000000000
--- a/lib/libc/sys/sigreturn.2
+++ /dev/null
@@ -1,89 +0,0 @@
-.\" Copyright (c) 1985, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)sigreturn.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd September 6, 2013
-.Dt SIGRETURN 2
-.Os
-.Sh NAME
-.Nm sigreturn
-.Nd return from signal
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Ft int
-.Fn sigreturn "const ucontext_t *scp"
-.Sh DESCRIPTION
-The
-.Fn sigreturn
-system call
-allows users to atomically unmask, switch stacks,
-and return from a signal context.
-The thread's signal mask and stack status are
-restored from the context structure pointed to by
-.Fa scp .
-The system call does not return;
-the users stack pointer, frame pointer, argument pointer,
-and processor status longword are restored from the context.
-Execution resumes at the specified pc.
-This system call is used by the trampoline code and
-.Xr longjmp 3
-when returning from a signal to the previously executing program.
-.Sh RETURN VALUES
-If successful, the system call does not return.
-Otherwise, a value of -1 is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn sigreturn
-system call
-will fail and the thread context will remain unchanged
-if one of the following occurs.
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The
-.Fa scp
-argument
-points to memory that is not a valid part of the process
-address space.
-.It Bq Er EINVAL
-The process status longword is invalid or would improperly
-raise the privilege level of the process.
-.El
-.Sh SEE ALSO
-.Xr sigaction 2 ,
-.Xr setjmp 3 ,
-.Xr ucontext 3
-.Sh HISTORY
-The
-.Fn sigreturn
-system call appeared in
-.Bx 4.3 .
diff --git a/lib/libc/sys/sigstack.2 b/lib/libc/sys/sigstack.2
deleted file mode 100644
index 823f25fa4ee1..000000000000
--- a/lib/libc/sys/sigstack.2
+++ /dev/null
@@ -1,50 +0,0 @@
-.\" Copyright (c) 1983, 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.
-.\" 3. 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.
-.\"
-.\" @(#)sigstack.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd June 4, 1993
-.Dt SIGSTACK 2
-.Os
-.Sh NAME
-.Nm sigstack
-.Nd set and/or get signal stack context
-.Sh LIBRARY
-.Lb libc
-.Sh DESCRIPTION
-The
-.Fn sigstack
-function has been deprecated in favor of the interface described in
-.Xr sigaltstack 2 .
-.Sh SEE ALSO
-.Xr sigaltstack 2
-.Sh HISTORY
-The
-.Fn sigstack
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/sigsuspend.2 b/lib/libc/sys/sigsuspend.2
deleted file mode 100644
index 3f5d9d2a1a61..000000000000
--- a/lib/libc/sys/sigsuspend.2
+++ /dev/null
@@ -1,85 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)sigsuspend.2 8.2 (Berkeley) 5/16/95
-.\" $FreeBSD$
-.\"
-.Dd August 16, 2013
-.Dt SIGSUSPEND 2
-.Os
-.Sh NAME
-.Nm sigsuspend
-.Nd atomically release blocked signals and wait for interrupt
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Ft int
-.Fn sigsuspend "const sigset_t *sigmask"
-.Sh DESCRIPTION
-The
-.Fn sigsuspend
-system call
-temporarily changes the blocked signal mask to the set to which
-.Fa sigmask
-points,
-and then waits for a signal to arrive;
-on return the previous set of masked signals is restored.
-The signal mask set
-is usually empty to indicate that all
-signals are to be unblocked for the duration of the call.
-.Pp
-In normal usage, a signal is blocked using
-.Xr sigprocmask 2
-to begin a critical section, variables modified on the occurrence
-of the signal are examined to determine that there is no work
-to be done, and the process pauses awaiting work by using
-.Fn sigsuspend
-with the previous mask returned by
-.Xr sigprocmask 2 .
-.Sh RETURN VALUES
-The
-.Fn sigsuspend
-system call
-always terminates by being interrupted, returning -1 with
-.Va errno
-set to
-.Er EINTR .
-.Sh SEE ALSO
-.Xr pselect 2 ,
-.Xr sigaction 2 ,
-.Xr sigpending 2 ,
-.Xr sigprocmask 2 ,
-.Xr sigtimedwait 2 ,
-.Xr sigwait 2 ,
-.Xr sigwaitinfo 2 ,
-.Xr sigsetops 3
-.Sh STANDARDS
-The
-.Fn sigsuspend
-system call is expected to conform to
-.St -p1003.1-90 .
diff --git a/lib/libc/sys/sigsuspend.c b/lib/libc/sys/sigsuspend.c
index 1f980a117a1b..e5a9495f9f39 100644
--- a/lib/libc/sys/sigsuspend.c
+++ b/lib/libc/sys/sigsuspend.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -44,7 +40,5 @@ __weak_reference(sigsuspend, __libc_sigsuspend);
int
sigsuspend(const sigset_t *set)
{
-
- return (((int (*)(const sigset_t *))
- __libc_interposing[INTERPOS_sigsuspend])(set));
+ return (INTERPOS_SYS(sigsuspend, set));
}
diff --git a/lib/libc/sys/sigtimedwait.c b/lib/libc/sys/sigtimedwait.c
index 4e067192ca4b..839e5fe4d992 100644
--- a/lib/libc/sys/sigtimedwait.c
+++ b/lib/libc/sys/sigtimedwait.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -44,8 +40,5 @@ 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));
+ return (INTERPOS_SYS(sigtimedwait, set, info, t));
}
diff --git a/lib/libc/sys/sigwait.2 b/lib/libc/sys/sigwait.2
deleted file mode 100644
index 4da64a99dddd..000000000000
--- a/lib/libc/sys/sigwait.2
+++ /dev/null
@@ -1,124 +0,0 @@
-.\" Copyright (C) 2000 Jason Evans <jasone@FreeBSD.org>.
-.\" 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(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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 6, 2013
-.Dt SIGWAIT 2
-.Os
-.Sh NAME
-.Nm sigwait
-.Nd select a set of signals
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Ft int
-.Fn sigwait "const sigset_t * restrict set" "int * restrict sig"
-.Sh DESCRIPTION
-The
-.Fn sigwait
-system call selects a set of signals, specified by
-.Fa set .
-If none of the selected signals are pending,
-.Fn sigwait
-waits until one or more of the selected signals has been generated.
-Then
-.Fn sigwait
-atomically clears one of the selected signals from the set of pending signals
-(for the process or for the current thread) and sets the location pointed to by
-.Fa sig
-to the signal number that was cleared.
-.Pp
-The signals specified by
-.Fa set
-should be blocked at the time of the call to
-.Fn sigwait .
-.Pp
-If more than one thread is using
-.Fn sigwait
-to wait for the same signal, no more than one of these threads will return from
-.Fn sigwait
-with the signal number.
-If more than a single thread is blocked in
-.Fn sigwait
-for a signal when that signal is generated for the process, it is unspecified
-which of the waiting threads returns from
-.Fn sigwait .
-If the signal is generated for a specific thread, as by
-.Fn pthread_kill ,
-only that thread will return.
-.Pp
-Should any of the multiple pending signals in the range
-.Dv SIGRTMIN
-to
-.Dv SIGRTMAX
-be
-selected, it will be the lowest numbered one.
-The selection order between realtime
-and non-realtime signals, or between multiple pending non-realtime signals,
-is unspecified.
-.Sh IMPLEMENTATION NOTES
-The
-.Fn sigwait
-function is implemented as a wrapper around the
-.Fn __sys_sigwait
-system call, which retries the call on
-.Er EINTR
-error.
-.Sh RETURN VALUES
-If successful,
-.Fn sigwait
-returns 0 and sets the location pointed to by
-.Fa sig
-to the cleared signal number.
-Otherwise, an error number is returned.
-.Sh ERRORS
-The
-.Fn sigwait
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa set
-argument
-specifies one or more invalid signal numbers.
-.El
-.Sh SEE ALSO
-.Xr sigaction 2 ,
-.Xr sigpending 2 ,
-.Xr sigqueue 2 ,
-.Xr sigsuspend 2 ,
-.Xr sigtimedwait 2 ,
-.Xr sigwaitinfo 2 ,
-.Xr pause 3 ,
-.Xr pthread_sigmask 3
-.Sh STANDARDS
-The
-.Fn sigwait
-function conforms to
-.St -p1003.1-96 .
diff --git a/lib/libc/sys/sigwait.c b/lib/libc/sys/sigwait.c
index ad485d0c5241..5a7d71bf3ed9 100644
--- a/lib/libc/sys/sigwait.c
+++ b/lib/libc/sys/sigwait.c
@@ -1,5 +1,5 @@
/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-2-Clause
*
* Copyright (c) 2010 davidxu@freebsd.org
*
@@ -25,32 +25,12 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <errno.h>
#include <signal.h>
#include "libc_private.h"
-__weak_reference(__libc_sigwait, __sigwait);
-
#pragma weak sigwait
int
sigwait(const sigset_t *set, int *sig)
{
-
- return (((int (*)(const sigset_t *, int *))
- __libc_interposing[INTERPOS_sigwait])(set, sig));
-}
-
-int
-__libc_sigwait(const sigset_t *set, int *sig)
-{
- int ret;
-
- /* POSIX does not allow EINTR to be returned */
- do {
- ret = __sys_sigwait(set, sig);
- } while (ret == EINTR);
- return (ret);
+ return (INTERPOS_SYS(sigwait, set, sig));
}
diff --git a/lib/libc/sys/sigwaitinfo.2 b/lib/libc/sys/sigwaitinfo.2
deleted file mode 100644
index bb060811f5d7..000000000000
--- a/lib/libc/sys/sigwaitinfo.2
+++ /dev/null
@@ -1,215 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd April 21, 2022
-.Dt SIGTIMEDWAIT 2
-.Os
-.Sh NAME
-.Nm sigtimedwait , sigwaitinfo
-.Nd "wait for queued signals (REALTIME)"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In signal.h
-.Ft int
-.Fo sigtimedwait
-.Fa "const sigset_t *restrict set" "siginfo_t *restrict info"
-.Fa "const struct timespec *restrict timeout"
-.Fc
-.Ft int
-.Fn sigwaitinfo "const sigset_t * restrict set" "siginfo_t * restrict info"
-.Sh DESCRIPTION
-The
-.Fn sigtimedwait
-system call is equivalent to
-.Fn sigwaitinfo
-except that if none of the signals specified by
-.Fa set
-are pending,
-.Fn sigtimedwait
-waits for the time interval specified in the
-.Vt timespec
-structure referenced by
-.Fa timeout .
-If the
-.Vt timespec
-structure pointed to by
-.Fa timeout
-is zero-valued and if none of the signals specified by
-.Fa set
-are pending, then
-.Fn sigtimedwait
-returns immediately with an error.
-If
-.Fa timeout
-is the
-.Dv NULL
-pointer,
-.Fn sigtimedwait
-blocks indefinitely.
-.Dv CLOCK_MONOTONIC
-clock is used to measure the time interval specified by the
-.Fa timeout
-argument.
-.Pp
-The
-.Fn sigwaitinfo
-system call selects the pending signal from the set specified by
-.Fa set .
-Should any of multiple pending signals in the range
-.Dv SIGRTMIN
-to
-.Dv SIGRTMAX
-be selected, it shall be the lowest numbered one.
-The
-selection order between realtime and non-realtime signals, or
-between multiple pending non-realtime signals, is unspecified.
-If no signal in
-.Fa set
-is pending at the time of the call, the calling thread
-is suspended until one or more signals in
-.Fa set
-become pending or until it is interrupted by an unblocked, caught signal.
-.Pp
-The
-.Fn sigwaitinfo
-system call is equivalent to the
-.Fn sigwait
-system call if the
-.Fa info
-argument is
-.Dv NULL .
-If the
-.Fa info
-argument is
-.Pf non- Dv NULL ,
-the
-.Fn sigwaitinfo
-function is equivalent to
-.Fn sigwait ,
-except that the selected signal number shall be stored in the
-.Va si_signo
-member, and the cause of the signal shall be stored in the
-.Va si_code
-member.
-Besides this, the
-.Fn sigwaitinfo
-and
-.Fn sigtimedwait
-system calls may return
-.Er EINTR
-if interrupted by signal, which is not allowed for the
-.Fn sigwait
-function.
-.Pp
-If any value is queued to the selected signal, the first such queued
-value is dequeued and, if the info argument is
-.Pf non- Dv NULL ,
-the value is stored in the
-.Va si_value
-member of
-.Fa info .
-The system resource used to queue the signal
-is released and returned to the system for other use.
-If no value is queued,
-the content of the
-.Va si_value
-member is zero-valued.
-If no further signals are
-queued for the selected signal, the pending indication for that signal
-is reset.
-.Sh RETURN VALUES
-Upon successful completion (that is, one of the signals specified by
-.Fa set
-is pending or is generated)
-.Fn sigwaitinfo
-and
-.Fn sigtimedwait
-return the selected signal number.
-Otherwise, the functions return a value of \-1
-and set the global variable
-.Va errno
-to indicate the error.
-.Sh ERRORS
-The
-.Fn sigtimedwait
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-No signal specified by set was generated within the specified timeout period.
-.El
-.Pp
-The
-.Fn sigtimedwait
-and
-.Fn sigwaitinfo
-system calls fail if:
-.Bl -tag -width Er
-.It Bq Er EINTR
-The wait was interrupted by an unblocked, caught signal.
-.El
-.Pp
-The
-.Fn sigtimedwait
-system call may also fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa timeout
-argument specified a
-.Va tv_nsec
-value less than zero or greater than or equal
-to 1000 million.
-Kernel only checks for this error if no signal is pending in set and it
-is necessary to wait.
-.El
-.Sh SEE ALSO
-.Xr sigaction 2 ,
-.Xr sigpending 2 ,
-.Xr sigqueue 2 ,
-.Xr sigsuspend 2 ,
-.Xr sigwait 2 ,
-.Xr pause 3 ,
-.Xr pthread_sigmask 3 ,
-.Xr siginfo 3
-.Sh STANDARDS
-The
-.Fn sigtimedwait
-and
-.Fn sigwaitinfo
-system calls conform to
-.St -p1003.1-96 .
-POSIX
-leaves the behavior of
-.Fn sigtimedwait
-with a
-.Dv NULL
-.Fa timeout
-pointer unspecified.
diff --git a/lib/libc/sys/sigwaitinfo.c b/lib/libc/sys/sigwaitinfo.c
index b9cdc79bc224..611d09c3c221 100644
--- a/lib/libc/sys/sigwaitinfo.c
+++ b/lib/libc/sys/sigwaitinfo.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -43,7 +39,5 @@ __weak_reference(__sys_sigwaitinfo, __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));
+ return (INTERPOS_SYS(sigwaitinfo, set, info));
}
diff --git a/lib/libc/sys/socket.2 b/lib/libc/sys/socket.2
deleted file mode 100644
index b23d207c9730..000000000000
--- a/lib/libc/sys/socket.2
+++ /dev/null
@@ -1,351 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" From: @(#)socket.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd August 19, 2018
-.Dt SOCKET 2
-.Os
-.Sh NAME
-.Nm socket
-.Nd create an endpoint for communication
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft int
-.Fn socket "int domain" "int type" "int protocol"
-.Sh DESCRIPTION
-The
-.Fn socket
-system call
-creates an endpoint for communication and returns a descriptor.
-.Pp
-The
-.Fa domain
-argument specifies a communications domain within which
-communication will take place; this selects the protocol family
-which should be used.
-These families are defined in the include file
-.In sys/socket.h .
-The currently understood formats are:
-.Pp
-.Bd -literal -offset indent -compact
-PF_LOCAL Host-internal protocols (alias for PF_UNIX),
-PF_UNIX Host-internal protocols,
-PF_INET Internet version 4 protocols,
-PF_INET6 Internet version 6 protocols,
-PF_ROUTE Internal routing protocol,
-PF_LINK Link layer interface,
-PF_KEY Internal key-management function,
-PF_NATM Asynchronous transfer mode protocols,
-PF_NETGRAPH Netgraph sockets,
-PF_IEEE80211 IEEE 802.11 wireless link-layer protocols (WiFi),
-PF_BLUETOOTH Bluetooth protocols,
-PF_INET_SDP OFED socket direct protocol (IPv4),
-PF_INET6_SDP OFED socket direct protocol (IPv6)
-.Ed
-.Pp
-Each protocol family is connected to an address family, which has the
-same name except that the prefix is
-.Dq Dv AF_
-in place of
-.Dq Dv PF_ .
-Other protocol families may be also defined, beginning with
-.Dq Dv PF_ ,
-with corresponding address families.
-.Pp
-The socket has the indicated
-.Fa type ,
-which specifies the semantics of communication.
-Currently
-defined types are:
-.Pp
-.Bd -literal -offset indent -compact
-SOCK_STREAM Stream socket,
-SOCK_DGRAM Datagram socket,
-SOCK_RAW Raw-protocol interface,
-SOCK_RDM Reliably-delivered packet,
-SOCK_SEQPACKET Sequenced packet stream
-.Ed
-.Pp
-A
-.Dv SOCK_STREAM
-type provides sequenced, reliable,
-two-way connection based byte streams.
-An out-of-band data transmission mechanism may be supported.
-A
-.Dv SOCK_DGRAM
-socket supports
-datagrams (connectionless, unreliable messages of
-a fixed (typically small) maximum length).
-A
-.Dv SOCK_SEQPACKET
-socket may provide a sequenced, reliable,
-two-way connection-based data transmission path for datagrams
-of fixed maximum length; a consumer may be required to read
-an entire packet with each read system call.
-This facility may have protocol-specific properties.
-.Dv SOCK_RAW
-sockets provide access to internal network protocols and interfaces.
-The types
-.Dv SOCK_RAW ,
-which is available only to the super-user, and
-.Dv SOCK_RDM ,
-which is planned,
-but not yet implemented, are not described here.
-.Pp
-Additionally, the following flags are allowed in the
-.Fa type
-argument:
-.Pp
-.Bd -literal -offset indent -compact
-SOCK_CLOEXEC Set close-on-exec on the new descriptor,
-SOCK_NONBLOCK Set non-blocking mode on the new socket
-.Ed
-.Pp
-The
-.Fa protocol
-argument
-specifies a particular protocol to be used with the socket.
-Normally only a single protocol exists to support a particular
-socket type within a given protocol family.
-However, it is possible
-that many protocols may exist, in which case a particular protocol
-must be specified in this manner.
-The protocol number to use is
-particular to the
-.Dq "communication domain"
-in which communication
-is to take place; see
-.Xr protocols 5 .
-.Pp
-The
-.Fa protocol
-argument may be set to zero (0) to request the default
-implementation of a socket type for the protocol, if any.
-.Pp
-Sockets of type
-.Dv SOCK_STREAM
-are full-duplex byte streams, similar
-to pipes.
-A stream socket must be in a
-.Em connected
-state before any data may be sent or received
-on it.
-A connection to another socket is created with a
-.Xr connect 2
-system call.
-Once connected, data may be transferred using
-.Xr read 2
-and
-.Xr write 2
-calls or some variant of the
-.Xr send 2
-and
-.Xr recv 2
-functions.
-(Some protocol families, such as the Internet family,
-support the notion of an
-.Dq implied connect ,
-which permits data to be sent piggybacked onto a connect operation by
-using the
-.Xr sendto 2
-system call.)
-When a session has been completed a
-.Xr close 2
-may be performed.
-Out-of-band data may also be transmitted as described in
-.Xr send 2
-and received as described in
-.Xr recv 2 .
-.Pp
-The communications protocols used to implement a
-.Dv SOCK_STREAM
-ensure that data
-is not lost or duplicated.
-If a piece of data for which the
-peer protocol has buffer space cannot be successfully transmitted
-within a reasonable length of time, then
-the connection is considered broken and calls
-will indicate an error with
--1 returns and with
-.Er ETIMEDOUT
-as the specific code
-in the global variable
-.Va errno .
-The protocols optionally keep sockets
-.Dq warm
-by forcing transmissions
-roughly every minute in the absence of other activity.
-An error is then indicated if no response can be
-elicited on an otherwise
-idle connection for an extended period (e.g.\& 5 minutes).
-By default, a
-.Dv SIGPIPE
-signal is raised if a process sends
-on a broken stream, but this behavior may be inhibited via
-.Xr setsockopt 2 .
-.Pp
-.Dv SOCK_SEQPACKET
-sockets employ the same system calls
-as
-.Dv SOCK_STREAM
-sockets.
-The only difference
-is that
-.Xr read 2
-calls will return only the amount of data requested,
-and any remaining in the arriving packet will be discarded.
-.Pp
-.Dv SOCK_DGRAM
-and
-.Dv SOCK_RAW
-sockets allow sending of datagrams to correspondents
-named in
-.Xr send 2
-calls.
-Datagrams are generally received with
-.Xr recvfrom 2 ,
-which returns the next datagram with its return address.
-.Pp
-An
-.Xr fcntl 2
-system call can be used to specify a process group to receive
-a
-.Dv SIGURG
-signal when the out-of-band data arrives.
-It may also enable non-blocking I/O
-and asynchronous notification of I/O events
-via
-.Dv SIGIO .
-.Pp
-The operation of sockets is controlled by socket level
-.Em options .
-These options are defined in the file
-.In sys/socket.h .
-The
-.Xr setsockopt 2
-and
-.Xr getsockopt 2
-system calls are used to set and get options, respectively.
-.Sh RETURN VALUES
-A -1 is returned if an error occurs, otherwise the return
-value is a descriptor referencing the socket.
-.Sh ERRORS
-The
-.Fn socket
-system call fails if:
-.Bl -tag -width Er
-.It Bq Er EACCES
-Permission to create a socket of the specified type and/or protocol
-is denied.
-.It Bq Er EAFNOSUPPORT
-The address family (domain) is not supported or the
-specified domain is not supported by this protocol family.
-.It Bq Er EMFILE
-The per-process descriptor table is full.
-.It Bq Er ENFILE
-The system file table is full.
-.It Bq Er ENOBUFS
-Insufficient buffer space is available.
-The socket cannot be created until sufficient resources are freed.
-.It Bq Er EPERM
-User has insufficient privileges to carry out the requested operation.
-.It Bq Er EPROTONOSUPPORT
-The protocol type or the specified protocol is not supported
-within this domain.
-.It Bq Er EPROTOTYPE
-The socket type is not supported by the protocol.
-.El
-.Sh SEE ALSO
-.Xr accept 2 ,
-.Xr bind 2 ,
-.Xr connect 2 ,
-.Xr getpeername 2 ,
-.Xr getsockname 2 ,
-.Xr getsockopt 2 ,
-.Xr ioctl 2 ,
-.Xr listen 2 ,
-.Xr read 2 ,
-.Xr recv 2 ,
-.Xr select 2 ,
-.Xr send 2 ,
-.Xr shutdown 2 ,
-.Xr socketpair 2 ,
-.Xr write 2 ,
-.Xr CMSG_DATA 3 ,
-.Xr getprotoent 3 ,
-.Xr netgraph 4 ,
-.Xr protocols 5
-.Rs
-.%T "An Introductory 4.3 BSD Interprocess Communication Tutorial"
-.%B PS1
-.%N 7
-.Re
-.Rs
-.%T "BSD Interprocess Communication Tutorial"
-.%B PS1
-.%N 8
-.Re
-.Sh STANDARDS
-The
-.Fn socket
-function conforms to
-.St -p1003.1-2008 .
-The
-.Tn POSIX
-standard specifies only the
-.Dv AF_INET ,
-.Dv AF_INET6 ,
-and
-.Dv AF_UNIX
-constants for address families, and requires the use of
-.Dv AF_*
-constants for the
-.Fa domain
-argument of
-.Fn socket .
-The
-.Dv SOCK_CLOEXEC
-flag is expected to conform to the next revision of the
-.Tn POSIX
-standard.
-The
-.Dv SOCK_RDM
-.Fa type ,
-the
-.Dv PF_*
-constants, and other address families are
-.Fx
-extensions.
-.Sh HISTORY
-The
-.Fn socket
-system call appeared in
-.Bx 4.2 .
diff --git a/lib/libc/sys/socketpair.2 b/lib/libc/sys/socketpair.2
deleted file mode 100644
index 80148c0dfbf6..000000000000
--- a/lib/libc/sys/socketpair.2
+++ /dev/null
@@ -1,107 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)socketpair.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd February 10, 2018
-.Dt SOCKETPAIR 2
-.Os
-.Sh NAME
-.Nm socketpair
-.Nd create a pair of connected sockets
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/socket.h
-.Ft int
-.Fn socketpair "int domain" "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 ,
-of the specified
-.Fa type ,
-and using the optionally specified
-.Fa protocol .
-The descriptors used in referencing the new sockets
-are returned in
-.Fa sv Ns [0]
-and
-.Fa sv Ns [1] .
-The two sockets are indistinguishable.
-.Pp
-The
-.Dv SOCK_CLOEXEC
-and
-.Dv SOCK_NONBLOCK
-flags in the
-.Fa type
-argument apply to both descriptors.
-.Sh RETURN VALUES
-.Rv -std socketpair
-.Sh ERRORS
-The call succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EMFILE
-Too many descriptors are in use by this process.
-.It Bq Er EAFNOSUPPORT
-The specified address family is not supported on this machine.
-.It Bq Er EPROTONOSUPPORT
-The specified protocol is not supported on this machine.
-.It Bq Er EOPNOTSUPP
-The specified protocol does not support creation of socket pairs.
-.It Bq Er EFAULT
-The address
-.Fa sv
-does not specify a valid part of the
-process address space.
-.El
-.Sh SEE ALSO
-.Xr pipe 2 ,
-.Xr read 2 ,
-.Xr socket 2 ,
-.Xr write 2
-.Sh STANDARDS
-The
-.Fn socketpair
-system call conforms to
-.St -p1003.1-2001
-and
-.St -p1003.1-2008 .
-.Sh HISTORY
-The
-.Fn socketpair
-system call appeared in
-.Bx 4.2 .
-.Sh BUGS
-This call is currently implemented only for the
-.Ux
-domain.
diff --git a/lib/libc/sys/stat.2 b/lib/libc/sys/stat.2
deleted file mode 100644
index 55221d05a60e..000000000000
--- a/lib/libc/sys/stat.2
+++ /dev/null
@@ -1,492 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993, 1994
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)stat.2 8.4 (Berkeley) 5/1/95
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2021
-.Dt STAT 2
-.Os
-.Sh NAME
-.Nm stat ,
-.Nm lstat ,
-.Nm fstat ,
-.Nm fstatat
-.Nd get file status
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/stat.h
-.Ft int
-.Fn stat "const char * restrict path" "struct stat * restrict sb"
-.Ft int
-.Fn lstat "const char * restrict path" "struct stat * restrict sb"
-.Ft int
-.Fn fstat "int fd" "struct stat *sb"
-.Ft int
-.Fn fstatat "int fd" "const char *path" "struct stat *sb" "int flag"
-.Sh DESCRIPTION
-The
-.Fn stat
-system call obtains information about the file pointed to by
-.Fa path .
-Read, write or execute
-permission of the named file is not required, but all directories
-listed in the path name leading to the file must be searchable.
-.Pp
-The
-.Fn lstat
-system call is like
-.Fn stat
-except when the named file is a symbolic link,
-in which case
-.Fn lstat
-returns information about the link,
-while
-.Fn stat
-returns information about the file the link references.
-.Pp
-The
-.Fn fstat
-system call obtains the same information about an open file
-known by the file descriptor
-.Fa fd .
-.Pp
-The
-.Fn fstatat
-system call is equivalent to
-.Fn stat
-and
-.Fn lstat
-except when the
-.Fa path
-specifies a relative path.
-For
-.Fn fstatat
-and relative
-.Fa path ,
-the status is retrieved from a file relative to
-the directory associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-.Pp
-The values for the
-.Fa flag
-are constructed by a bitwise-inclusive OR of flags from this list,
-defined in
-.In fcntl.h :
-.Bl -tag -width indent
-.It Dv AT_SYMLINK_NOFOLLOW
-If
-.Fa path
-names a symbolic link, the status of the symbolic link is returned.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the starting directory.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.It Dv AT_EMPTY_PATH
-If the
-.Fa path
-argument is an empty string, operate on the file or directory
-referenced by the descriptor
-.Fa fd .
-If
-.Fa fd
-is equal to
-.Dv AT_FDCWD ,
-operate on the current working directory.
-.El
-.Pp
-If
-.Fn fstatat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn stat
-or
-.Fn lstat
-respectively, depending on whether or not the
-.Dv AT_SYMLINK_NOFOLLOW
-bit is set in
-.Fa flag .
-.Pp
-When
-.Fn fstatat
-is called with an absolute
-.Fa path ,
-it ignores the
-.Fa fd
-argument.
-.Pp
-The
-.Fa sb
-argument is a pointer to a
-.Vt stat
-structure
-as defined by
-.In sys/stat.h
-and into which information is placed concerning the file.
-.Pp
-The fields of
-.Vt "struct stat"
-related to the file system are:
-.Bl -tag -width ".Va st_nlink"
-.It Va st_dev
-Numeric ID of the device containing the file.
-.It Va st_ino
-The file's inode number.
-.It Va st_nlink
-Number of hard links to the file.
-.It Va st_flags
-Flags enabled for the file.
-See
-.Xr chflags 2
-for the list of flags and their description.
-.El
-.Pp
-The
-.Va st_dev
-and
-.Va st_ino
-fields together identify the file uniquely within the system.
-.Pp
-The time-related fields of
-.Vt "struct stat"
-are:
-.Bl -tag -width ".Va st_birthtim"
-.It Va st_atim
-Time when file data was last accessed.
-Changed implicitly by syscalls such as
-.Xr read 2
-and
-.Xr readv 2 ,
-and explicitly by
-.Xr utimes 2 .
-.It Va st_mtim
-Time when file data was last modified.
-Changed implicitly by syscalls such as
-.Xr truncate 2 ,
-.Xr write 2 ,
-and
-.Xr writev 2 ,
-and explicitly by
-.Xr utimes 2 .
-Also, any syscall which modifies directory content changes the
-.Va st_mtim
-for the affected directory.
-For instance,
-.Xr creat 2 ,
-.Xr mkdir 2 ,
-.Xr rename 2 ,
-.Xr link 2 ,
-and
-.Xr unlink 2 .
-.It Va st_ctim
-Time when file status was last changed (inode data modification).
-Changed implicitly by any syscall that affects file metadata, including
-.Va st_mtim ,
-such as
-.Xr chflags 2 ,
-.Xr chmod 2 ,
-.Xr chown 2 ,
-.Xr truncate 2 ,
-.Xr utimes 2 ,
-and
-.Xr write 2 .
-Also, any syscall which modifies directory content changes the
-.Va st_ctim
-for the affected directory.
-For instance,
-.Xr creat 2 ,
-.Xr mkdir 2 ,
-.Xr rename 2 ,
-.Xr link 2 ,
-and
-.Xr unlink 2 .
-.It Va st_birthtim
-Time when the inode was created.
-.El
-.Pp
-These time-related macros are defined for compatibility:
-.Bd -literal
-#define st_atime st_atim.tv_sec
-#define st_mtime st_mtim.tv_sec
-#define st_ctime st_ctim.tv_sec
-#ifndef _POSIX_SOURCE
-#define st_birthtime st_birthtim.tv_sec
-#endif
-
-#ifndef _POSIX_SOURCE
-#define st_atimespec st_atim
-#define st_mtimespec st_mtim
-#define st_ctimespec st_ctim
-#define st_birthtimespec st_birthtim
-#endif
-.Ed
-.Pp
-Size-related fields of the
-.Vt "struct stat"
-are:
-.Bl -tag -width ".Va st_blksize"
-.It Va st_size
-File size in bytes.
-.It Va st_blksize
-Optimal I/O block size for the file.
-.It Va st_blocks
-Actual number of blocks allocated for the file in 512-byte units.
-As short symbolic links are stored in the inode, this number may
-be zero.
-.El
-.Pp
-The access-related fields of
-.Vt "struct stat"
-are:
-.Bl -tag -width ".Va st_mode"
-.It Va st_uid
-User ID of the file's owner.
-.It Va st_gid
-Group ID of the file.
-.It Va st_mode
-Status of the file (see below).
-.El
-.Pp
-The status information word
-.Fa st_mode
-has these bits:
-.Bd -literal
-#define S_IFMT 0170000 /* type of file mask */
-#define S_IFIFO 0010000 /* named pipe (fifo) */
-#define S_IFCHR 0020000 /* character special */
-#define S_IFDIR 0040000 /* directory */
-#define S_IFBLK 0060000 /* block special */
-#define S_IFREG 0100000 /* regular */
-#define S_IFLNK 0120000 /* symbolic link */
-#define S_IFSOCK 0140000 /* socket */
-#define S_IFWHT 0160000 /* whiteout */
-#define S_ISUID 0004000 /* set user id on execution */
-#define S_ISGID 0002000 /* set group id on execution */
-#define S_ISVTX 0001000 /* save swapped text even after use */
-#define S_IRWXU 0000700 /* RWX mask for owner */
-#define S_IRUSR 0000400 /* read permission, owner */
-#define S_IWUSR 0000200 /* write permission, owner */
-#define S_IXUSR 0000100 /* execute/search permission, owner */
-#define S_IRWXG 0000070 /* RWX mask for group */
-#define S_IRGRP 0000040 /* read permission, group */
-#define S_IWGRP 0000020 /* write permission, group */
-#define S_IXGRP 0000010 /* execute/search permission, group */
-#define S_IRWXO 0000007 /* RWX mask for other */
-#define S_IROTH 0000004 /* read permission, other */
-#define S_IWOTH 0000002 /* write permission, other */
-#define S_IXOTH 0000001 /* execute/search permission, other */
-.Ed
-.Pp
-For a list of access modes, see
-.In sys/stat.h ,
-.Xr access 2
-and
-.Xr chmod 2 .
-These macros are available to test whether a
-.Va st_mode
-value passed in the
-.Fa m
-argument corresponds to a file of the specified type:
-.Bl -tag -width ".Fn S_ISFIFO m"
-.It Fn S_ISBLK m
-Test for a block special file.
-.It Fn S_ISCHR m
-Test for a character special file.
-.It Fn S_ISDIR m
-Test for a directory.
-.It Fn S_ISFIFO m
-Test for a pipe or FIFO special file.
-.It Fn S_ISLNK m
-Test for a symbolic link.
-.It Fn S_ISREG m
-Test for a regular file.
-.It Fn S_ISSOCK m
-Test for a socket.
-.It Fn S_ISWHT m
-Test for a whiteout.
-.El
-.Pp
-The macros evaluate to a non-zero value if the test is true
-or to the value 0 if the test is false.
-.Sh RETURN VALUES
-.Rv -std
-.Sh COMPATIBILITY
-Previous versions of the system used different types for the
-.Va st_dev ,
-.Va st_uid ,
-.Va st_gid ,
-.Va st_rdev ,
-.Va st_size ,
-.Va st_blksize
-and
-.Va st_blocks
-fields.
-.Sh ERRORS
-The
-.Fn stat
-and
-.Fn lstat
-system calls 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 EFAULT
-The
-.Fa sb
-or
-.Fa path
-argument
-points to an invalid address.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 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 EOVERFLOW
-The file size in bytes cannot be
-represented correctly in the structure pointed to by
-.Fa sb .
-.El
-.Pp
-The
-.Fn fstat
-system call will fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid open file descriptor.
-.It Bq Er EFAULT
-The
-.Fa sb
-argument
-points to an invalid address.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EOVERFLOW
-The file size in bytes cannot be
-represented correctly in the structure pointed to by
-.Fa sb .
-.El
-.Pp
-In addition to the errors returned by the
-.Fn lstat ,
-the
-.Fn fstatat
-may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.It Bq Er EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.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 ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode or the
-.Dv AT_RESOLVE_BENEATH
-flag was specified.
-.El
-.Sh SEE ALSO
-.Xr access 2 ,
-.Xr chmod 2 ,
-.Xr chown 2 ,
-.Xr fhstat 2 ,
-.Xr statfs 2 ,
-.Xr utimes 2 ,
-.Xr sticky 7 ,
-.Xr symlink 7
-.Sh STANDARDS
-The
-.Fn stat
-and
-.Fn fstat
-system calls are expected to conform to
-.St -p1003.1-90 .
-The
-.Fn fstatat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn stat
-and
-.Fn fstat
-system calls appeared in
-.At v1 .
-The
-.Fn lstat
-system call appeared in
-.Bx 4.2 .
-The
-.Fn fstatat
-system call appeared in
-.Fx 8.0 .
-.Sh BUGS
-Applying
-.Fn fstat
-to a socket
-returns a zeroed buffer,
-except for the blocksize field,
-and a unique device and inode number.
diff --git a/lib/libc/sys/stat.c b/lib/libc/sys/stat.c
index f4f0289b2bd6..262c265d09c9 100644
--- a/lib/libc/sys/stat.c
+++ b/lib/libc/sys/stat.c
@@ -24,27 +24,17 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include "namespace.h"
#include <sys/param.h>
+#include <sys/fcntl.h>
#include <sys/syscall.h>
-#include "compat-ino64.h"
+#include <sys/stat.h>
#include <unistd.h>
-
#include "libc_private.h"
int
stat(const char *path, struct stat *sb)
{
- struct freebsd11_stat stat11;
- int rv;
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_fstatat(AT_FDCWD, path, sb, 0));
- rv = syscall(SYS_freebsd11_stat, path, &stat11);
- if (rv == 0)
- __stat11_to_stat(&stat11, sb);
- return (rv);
+ return (__sys_fstatat(AT_FDCWD, path, sb, 0));
}
diff --git a/lib/libc/sys/statfs.2 b/lib/libc/sys/statfs.2
deleted file mode 100644
index a865652022bd..000000000000
--- a/lib/libc/sys/statfs.2
+++ /dev/null
@@ -1,240 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)statfs.2 8.5 (Berkeley) 5/24/95
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt STATFS 2
-.Os
-.Sh NAME
-.Nm statfs
-.Nd get file system statistics
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/mount.h
-.Ft int
-.Fn statfs "const char *path" "struct statfs *buf"
-.Ft int
-.Fn fstatfs "int fd" "struct statfs *buf"
-.Sh DESCRIPTION
-The
-.Fn statfs
-system call
-returns information about a mounted file system.
-The
-.Fa path
-argument
-is the path name of any file within the mounted file system.
-The
-.Fa buf
-argument
-is a pointer to a
-.Vt statfs
-structure defined as follows:
-.Bd -literal
-typedef struct fsid { int32_t val[2]; } fsid_t; /* file system id type */
-
-/*
- * filesystem statistics
- */
-
-#define MFSNAMELEN 16 /* length of type name including null */
-#define MNAMELEN 1024 /* size of on/from name bufs */
-#define STATFS_VERSION 0x20140518 /* current version number */
-
-struct statfs {
-uint32_t f_version; /* structure version number */
-uint32_t f_type; /* type of filesystem */
-uint64_t f_flags; /* copy of mount exported flags */
-uint64_t f_bsize; /* filesystem fragment size */
-uint64_t f_iosize; /* optimal transfer block size */
-uint64_t f_blocks; /* total data blocks in filesystem */
-uint64_t f_bfree; /* free blocks in filesystem */
-int64_t f_bavail; /* free blocks avail to non-superuser */
-uint64_t f_files; /* total file nodes in filesystem */
-int64_t f_ffree; /* free nodes avail to non-superuser */
-uint64_t f_syncwrites; /* count of sync writes since mount */
-uint64_t f_asyncwrites; /* count of async writes since mount */
-uint64_t f_syncreads; /* count of sync reads since mount */
-uint64_t f_asyncreads; /* count of async reads since mount */
-uint64_t f_spare[10]; /* unused spare */
-uint32_t f_namemax; /* maximum filename length */
-uid_t f_owner; /* user that mounted the filesystem */
-fsid_t f_fsid; /* filesystem id */
-char f_charspare[80]; /* spare string space */
-char f_fstypename[MFSNAMELEN]; /* filesystem type name */
-char f_mntfromname[MNAMELEN]; /* mounted filesystem */
-char f_mntonname[MNAMELEN]; /* directory on which mounted */
-};
-.Ed
-.Pp
-The flags that may be returned include:
-.Bl -tag -width MNT_SYNCHRONOUS
-.It Dv MNT_RDONLY
-The file system is mounted read-only;
-Even the super-user may not write on it.
-.It Dv MNT_NOEXEC
-Files may not be executed from the file system.
-.It Dv MNT_NOSUID
-Setuid and setgid bits on files are not honored when they are executed.
-.It Dv MNT_SYNCHRONOUS
-All I/O to the file system is done synchronously.
-.It Dv MNT_ASYNC
-No file system I/O is done synchronously.
-.It Dv MNT_SOFTDEP
-Soft updates being done (see
-.Xr ffs 7 ) .
-.It Dv MNT_GJOURNAL
-Journaling with gjournal is enabled (see
-.Xr gjournal 8 ) .
-.It Dv MNT_SUIDDIR
-Special handling of SUID bit on directories.
-.It Dv MNT_UNION
-Union with underlying file system.
-.It Dv MNT_NOSYMFOLLOW
-Symbolic links are not followed.
-.It Dv MNT_NOCLUSTERR
-Read clustering is disabled.
-.It Dv MNT_NOCLUSTERW
-Write clustering is disabled.
-.\".It Dv MNT_JAILDEVFS
-.\"XXX
-.It Dv MNT_MULTILABEL
-Mandatory Access Control (MAC) support for individual objects
-(see
-.Xr mac 4 ) .
-.It Dv MNT_ACLS
-Access Control List (ACL) support enabled.
-.It Dv MNT_LOCAL
-The file system resides locally.
-.It Dv MNT_QUOTA
-The file system has quotas enabled on it.
-.It Dv MNT_ROOTFS
-Identifies the root file system.
-.It Dv MNT_EXRDONLY
-The file system is exported read-only.
-.It Dv MNT_NOATIME
-Updating of file access times is disabled.
-.It Dv MNT_USER
-The file system has been mounted by a user.
-.\".It Dv MNT_IGNORE
-.\"XXX
-.It Dv MNT_EXPORTED
-The file system is exported for both reading and writing.
-.It Dv MNT_DEFEXPORTED
-The file system is exported for both reading and writing to any Internet host.
-.It Dv MNT_EXPORTANON
-The file system maps all remote accesses to the anonymous user.
-.It Dv MNT_EXKERB
-The file system is exported with Kerberos uid mapping.
-.It Dv MNT_EXPUBLIC
-The file system is exported publicly (WebNFS).
-.El
-.Pp
-Fields that are undefined for a particular file system are set to -1.
-The
-.Fn fstatfs
-system call
-returns the same information about an open file referenced by descriptor
-.Fa fd .
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn statfs
-system call
-fails if one or more of the following are true:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix of
-.Fa path
-is not a directory.
-.It Bq Er ENAMETOOLONG
-The length of a component of
-.Fa path
-exceeds 255 characters,
-or the length of
-.Fa path
-exceeds 1023 characters.
-.It Bq Er ENOENT
-The file referred to by
-.Fa path
-does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix of
-.Fa path .
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating
-.Fa path .
-.It Bq Er EFAULT
-The
-.Fa buf
-or
-.Fa path
-argument
-points to an invalid address.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Pp
-The
-.Fn fstatfs
-system call
-fails if one or more of the following are true:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid open file descriptor.
-.It Bq Er EFAULT
-The
-.Fa buf
-argument
-points to an invalid address.
-.It Bq Er EIO
-An
-.Tn I/O
-error occurred while reading from or writing to the file system.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.El
-.Sh SEE ALSO
-.Xr fhstatfs 2 ,
-.Xr getfsstat 2
-.Sh HISTORY
-The
-.Fn statfs
-system call first appeared in
-.Bx 4.4 .
diff --git a/lib/libc/sys/statfs.c b/lib/libc/sys/statfs.c
deleted file mode 100644
index f7d4d7752c4a..000000000000
--- a/lib/libc/sys/statfs.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*-
- * Copyright (c) 2017 M. Warner Losh <imp@FreeBSD.org>
- *
- * 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/param.h>
-#include <sys/syscall.h>
-#include "compat-ino64.h"
-#include <unistd.h>
-
-#include "libc_private.h"
-
-int
-statfs(const char *path, struct statfs *buf)
-{
- struct freebsd11_statfs statfs11;
- int rv;
-
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_statfs(path, buf));
- rv = syscall(SYS_freebsd11_statfs, path, &statfs11);
- if (rv == 0)
- __statfs11_to_statfs(&statfs11, buf);
- return (rv);
-}
diff --git a/lib/libc/sys/swapcontext.c b/lib/libc/sys/swapcontext.c
index 0a8125eeabb5..b69a5b19e698 100644
--- a/lib/libc/sys/swapcontext.c
+++ b/lib/libc/sys/swapcontext.c
@@ -28,9 +28,6 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include <sys/param.h>
#include <sys/signal.h>
#include <sys/ucontext.h>
@@ -47,7 +44,5 @@ __sym_default(swapcontext, swapcontext, FBSD_1.2);
int
swapcontext(ucontext_t *oucp, const ucontext_t *ucp)
{
-
- return (((int (*)(ucontext_t *, const ucontext_t *))
- __libc_interposing[INTERPOS_swapcontext])(oucp, ucp));
+ return (INTERPOS_SYS(swapcontext, oucp, ucp));
}
diff --git a/lib/libc/sys/swapon.2 b/lib/libc/sys/swapon.2
deleted file mode 100644
index c369e8b7ba51..000000000000
--- a/lib/libc/sys/swapon.2
+++ /dev/null
@@ -1,162 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)swapon.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 8, 2021
-.Dt SWAPON 2
-.Os
-.Sh NAME
-.Nm swapon , swapoff
-.Nd control devices for interleaved paging/swapping
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.It vm/vm_param.h
-.It vm/swap_pager.h
-.In unistd.h
-.Ft int
-.Fn swapon "const char *special"
-.Ft int
-.Fn swapoff "const char *special" "u_int flags"
-.Sh DESCRIPTION
-The
-.Fn swapon
-system call
-makes the block device
-.Fa special
-available to the system for
-allocation for paging and swapping.
-The names of potentially
-available devices are known to the system and defined at system
-configuration time.
-The size of the swap area on
-.Fa special
-is calculated at the time the device is first made available
-for swapping.
-.Pp
-The
-.Fn swapoff
-system call disables paging and swapping on the given device.
-All associated swap metadata are deallocated, and the device
-is made available for other purposes.
-.Pp
-The
-.Fa special
-argument points to the name of the device or file used for swapping.
-.The
-.Va flags
-argument takes the following flags:
-.Bl -tag -width SWAPOFF_FORCE
-.It Dv SWAPOFF_FORCE
-Overrides a very conservative check that prevents swapoff
-if the total amount of free memory and remaining swap
-devices space might be unsufficient for the system to continue
-operating.
-.El
-.Sh RETURN VALUES
-If an error has occurred, a value of -1 is returned and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-Both
-.Fn swapon
-and
-.Fn swapoff
-can fail if:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named device does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The caller is not the super-user.
-.It Bq Er EFAULT
-The
-.Fa special
-argument
-points outside the process's allocated address space.
-.El
-.Pp
-Additionally,
-.Fn swapon
-can fail for the following reasons:
-.Bl -tag -width Er
-.It Bq Er ENOTBLK
-The
-.Fa special
-argument
-is not a block device.
-.It Bq Er EBUSY
-The device specified by
-.Fa special
-has already
-been made available for swapping
-.It Bq Er ENXIO
-The major device number of
-.Fa special
-is out of range (this indicates no device driver exists
-for the associated hardware).
-.It Bq Er EIO
-An I/O error occurred while opening the swap device.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system to open the
-swap device.
-.El
-.Pp
-Lastly,
-.Fn swapoff
-can fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The system is not currently swapping to
-.Fa special .
-.It Bq Er ENOMEM
-Not enough virtual memory is available to safely disable
-paging and swapping to the given device.
-.El
-.Sh SEE ALSO
-.Xr config 8 ,
-.Xr swapon 8 ,
-.Xr sysctl 8
-.Sh HISTORY
-The
-.Fn swapon
-system call appeared in
-.Bx 4.0 .
-The
-.Fn swapoff
-system call appeared in
-.Fx 5.0 .
diff --git a/lib/libc/sys/symlink.2 b/lib/libc/sys/symlink.2
deleted file mode 100644
index 3fd0a4653ad6..000000000000
--- a/lib/libc/sys/symlink.2
+++ /dev/null
@@ -1,206 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)symlink.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt SYMLINK 2
-.Os
-.Sh NAME
-.Nm symlink ,
-.Nm symlinkat
-.Nd make symbolic link to a file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn symlink "const char *name1" "const char *name2"
-.Ft int
-.Fn symlinkat "const char *name1" "int fd" "const char *name2"
-.Sh DESCRIPTION
-A symbolic link
-.Fa name2
-is created to
-.Fa name1
-.Fa ( name2
-is the name of the
-file created,
-.Fa name1
-is the string
-used in creating the symbolic link).
-Either name may be an arbitrary path name; the files need not
-be on the same file system.
-.Pp
-The
-.Fn symlinkat
-system call is equivalent to
-.Fn symlink
-except in the case where
-.Fa name2
-specifies a relative path.
-In this case the symbolic link is created relative to the directory
-associated with the file descriptor
-.Fa fd
-instead of the current working directory.
-If
-.Fn symlinkat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fn symlink .
-.Sh RETURN VALUES
-.Rv -std symlink
-.Sh ERRORS
-The symbolic link succeeds unless:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the
-.Fa name2
-path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of the
-.Fa name2
-pathname exceeded 255 characters,
-or the entire length of either path name exceeded 1023 characters.
-.It Bq Er ENOENT
-A component of the
-.Fa name2
-path prefix does not exist.
-.It Bq Er EACCES
-A component of the
-.Fa name2
-path prefix denies search permission, or write permission is denied on the
-parent directory of the file to be created.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the
-.Fa name2
-path name.
-.It Bq Er EEXIST
-The path name pointed at by the
-.Fa name2
-argument
-already exists.
-.It Bq Er EPERM
-The parent directory of the file named by
-.Fa name2
-has its immutable flag set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EIO
-An I/O error occurred while making the directory entry for
-.Fa name2 ,
-allocating the inode for
-.Fa name2 ,
-or writing out the link contents of
-.Fa name2 .
-.It Bq Er EROFS
-The file
-.Fa name2
-would reside on a read-only file system.
-.It Bq Er ENOSPC
-The directory in which the entry for the new symbolic link is being placed
-cannot be extended because there is no space left on the file
-system containing the directory.
-.It Bq Er ENOSPC
-The new symbolic link cannot be created because
-there is no space left on the file
-system that will contain the symbolic link.
-.It Bq Er ENOSPC
-There are no free inodes on the file system on which the
-symbolic link is being created.
-.It Bq Er EDQUOT
-The directory in which the entry for the new symbolic link
-is being placed cannot be extended because the
-user's quota of disk blocks on the file system
-containing the directory has been exhausted.
-.It Bq Er EDQUOT
-The new symbolic link cannot be created because the user's
-quota of disk blocks on the file system that will
-contain the symbolic link has been exhausted.
-.It Bq Er EDQUOT
-The user's quota of inodes on the file system on
-which the symbolic link is being created has been exhausted.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFAULT
-The
-.Fa name1
-or
-.Fa name2
-argument
-points outside the process's allocated address space.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn symlink ,
-the
-.Fn symlinkat
-may fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa name2
-argument does not specify an absolute path and the
-.Fa fd
-argument is neither
-.Dv AT_FDCWD
-nor a valid file descriptor open for searching.
-.It Bq Er ENOTDIR
-The
-.Fa name2
-argument is not an absolute path and
-.Fa fd
-is neither
-.Dv AT_FDCWD
-nor a file descriptor associated with a directory.
-.El
-.Sh SEE ALSO
-.Xr ln 1 ,
-.Xr chflags 2 ,
-.Xr link 2 ,
-.Xr lstat 2 ,
-.Xr readlink 2 ,
-.Xr unlink 2 ,
-.Xr symlink 7
-.Sh STANDARDS
-The
-.Fn symlinkat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn symlink
-system call appeared in
-.Bx 4.2 .
-The
-.Fn symlinkat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/sync.2 b/lib/libc/sys/sync.2
deleted file mode 100644
index 9e806c3ef9e9..000000000000
--- a/lib/libc/sys/sync.2
+++ /dev/null
@@ -1,77 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)sync.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd December 1, 2017
-.Dt SYNC 2
-.Os
-.Sh NAME
-.Nm sync
-.Nd "schedule file system updates"
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft void
-.Fn sync void
-.Sh DESCRIPTION
-The
-.Fn sync
-system call forces a write of dirty (modified) buffers
-in the block buffer cache out
-to disk.
-The kernel keeps this information in core to reduce
-the number of disk I/O transfers required by the system.
-As information in the cache is lost after a system crash, a
-.Fn sync
-system call is issued
-frequently
-by the kernel process
-.Xr syncer 4
-(about every 30 seconds).
-.Pp
-The
-.Xr fsync 2
-system call
-may be used to synchronize individual file descriptor
-attributes.
-.Sh SEE ALSO
-.Xr fsync 2 ,
-.Xr syncer 4 ,
-.Xr sync 8
-.Sh HISTORY
-The
-.Fn sync
-function appeared in
-.At v3 .
-.Sh BUGS
-The
-.Fn sync
-system call
-may return before the buffers are completely flushed.
diff --git a/lib/libc/sys/sysarch.2 b/lib/libc/sys/sysarch.2
deleted file mode 100644
index 73d2e468267a..000000000000
--- a/lib/libc/sys/sysarch.2
+++ /dev/null
@@ -1,81 +0,0 @@
-.\" $NetBSD: sysarch.2,v 1.6 1998/02/25 21:24:57 perry Exp $
-.\" $FreeBSD$
-.\"
-.\" Copyright (c) 1980, 1991 Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" from: @(#)syscall.2 6.3 (Berkeley) 3/10/91
-.\"
-.Dd October 11, 1993
-.Dt SYSARCH 2
-.Os
-.Sh NAME
-.Nm sysarch
-.Nd architecture-dependent system call
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In machine/sysarch.h
-.Ft int
-.Fn sysarch "int number" "void *args"
-.Sh DESCRIPTION
-The
-.Fn sysarch
-system call
-performs the architecture-dependent function
-specified by
-.Fa number
-with the arguments specified by the
-.Fa args
-pointer.
-The
-.Fa args
-argument
-is a pointer to a structure defining the actual
-arguments of the function.
-Symbolic constants and argument structures
-for the architecture-dependent
-functions can be found in the header file
-.In machine/sysarch.h .
-.Pp
-The
-.Fn sysarch
-system call should never be called directly by
-user programs.
-Instead, they should access
-its functions using the architecture-dependent
-library.
-.Sh RETURN VALUES
-See the manual pages for specific architecture-dependent system calls
-for information about their return values.
-.Sh SEE ALSO
-.Xr i386_get_ioperm 2 ,
-.Xr i386_get_ldt 2 ,
-.Xr i386_vm86 2
-.Sh HISTORY
-This manual page was taken from
-.Nx .
diff --git a/lib/libc/sys/syscall.2 b/lib/libc/sys/syscall.2
deleted file mode 100644
index fed410db55ce..000000000000
--- a/lib/libc/sys/syscall.2
+++ /dev/null
@@ -1,77 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)syscall.2 8.1 (Berkeley) 6/16/93
-.\" $FreeBSD$
-.\"
-.Dd June 16, 1993
-.Dt SYSCALL 2
-.Os
-.Sh NAME
-.Nm syscall ,
-.Nm __syscall
-.Nd indirect system call
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/syscall.h
-.In unistd.h
-.Ft int
-.Fn syscall "int number" ...
-.Ft off_t
-.Fn __syscall "quad_t number" ...
-.Sh DESCRIPTION
-The
-.Fn syscall
-function
-performs the system call whose assembly language
-interface has the specified
-.Fa number
-with the specified arguments.
-Symbolic constants for system calls can be found in the header file
-.In sys/syscall.h .
-The
-.Fn __syscall
-form should be used when one or more of the arguments is a
-64-bit argument to ensure that argument alignment is correct.
-This system call is useful for testing new system calls that
-do not have entries in the C library.
-.Sh RETURN VALUES
-The return values are defined by the system call being invoked.
-In general, a 0 return value indicates success.
-A -1 return value indicates an error,
-and an error code is stored in
-.Va errno .
-.Sh HISTORY
-The
-.Fn syscall
-function appeared in
-.Bx 4.0 .
-.Sh BUGS
-There is no way to simulate system calls that have multiple return values
-such as
-.Xr pipe 2 .
diff --git a/lib/libc/sys/thr_exit.2 b/lib/libc/sys/thr_exit.2
deleted file mode 100644
index 8040e0ccbf63..000000000000
--- a/lib/libc/sys/thr_exit.2
+++ /dev/null
@@ -1,95 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt THR_EXIT 2
-.Os
-.Sh NAME
-.Nm thr_exit
-.Nd terminate current thread
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/thr.h
-.Ft void
-.Fn thr_exit "long *state"
-.Sh DESCRIPTION
-.Bf -symbolic
-This function is intended for implementing threading.
-Normal applications should call
-.Xr pthread_exit 3
-instead.
-.Ef
-.Pp
-The
-.Fn thr_exit
-system call terminates the current kernel-scheduled thread.
-.Pp
-If the
-.Fa state
-argument is not
-.Dv NULL ,
-the location pointed to by the argument is
-updated with an arbitrary non-zero value, and an
-.Xr _umtx_op 2
-.Dv UMTX_OP_WAKE
-operation is consequently performed on the location.
-.Pp
-Attempts to terminate the last thread in the process are silently ignored.
-Use
-.Xr _exit 2
-syscall to terminate the process.
-.Sh RETURN VALUES
-The function does not return a value.
-A return from the function indicates that the calling thread was the
-last one in the process.
-.Sh SEE ALSO
-.Xr _exit 2 ,
-.Xr _umtx_op 2 ,
-.Xr thr_kill 2 ,
-.Xr thr_kill2 2 ,
-.Xr thr_new 2 ,
-.Xr thr_self 2 ,
-.Xr thr_set_name 2 ,
-.Xr pthread_exit 3
-.Sh STANDARDS
-The
-.Fn thr_exit
-system call is non-standard and is used by
-.Lb libthr
-to implement
-.St -p1003.1-2001
-.Xr pthread 3
-functionality.
-.Sh HISTORY
-The
-.Fn thr_exit
-system call first appeared in
-.Fx 5.2 .
diff --git a/lib/libc/sys/thr_kill.2 b/lib/libc/sys/thr_kill.2
deleted file mode 100644
index 2378cb60fc88..000000000000
--- a/lib/libc/sys/thr_kill.2
+++ /dev/null
@@ -1,140 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt THR_kill 2
-.Os
-.Sh NAME
-.Nm thr_kill
-.Nd send signal to thread
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/thr.h
-.Ft int
-.Fn thr_kill "long id" "int sig"
-.Ft int
-.Fn thr_kill2 "pid_t pid" "long id" "int sig"
-.Sh DESCRIPTION
-The
-.Fn thr_kill
-and
-.Fn thr_kill2
-system calls allow sending a signal, specified by the
-.Fa sig
-argument, to some threads in a process.
-For the
-.Fn thr_kill
-function, signalled threads are always limited to the current process.
-For the
-.Fn thr_kill2
-function, the
-.Fa pid
-argument specifies the process with threads to be signalled.
-.Pp
-The
-.Fa id
-argument specifies which threads get the signal.
-If
-.Fa id
-is equal to \-1, all threads in the specified process are signalled.
-Otherwise, only the thread with the thread identifier equal to the
-argument is signalled.
-.Pp
-The
-.Fa sig
-argument defines the delivered signal.
-It must be a valid signal number or zero.
-In the latter case no signal is actually sent, and the call is used to
-verify the liveness of the thread.
-.Pp
-The signal is delivered with
-.Dv siginfo
-.Dv si_code
-set to
-.Dv SI_LWP .
-.Sh RETURN VALUES
-If successful,
-.Fn thr_kill
-and
-.Fn thr_kill2
-will return zero, otherwise \-1 is returned, and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn thr_kill
-and
-.Fn thr_kill2
-operations return the following errors:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa sig
-argument is not zero and does not specify valid signal.
-.It Bq Er ESRCH
-The specified process or thread was not found.
-.El
-.Pp
-Additionally, the
-.Fn thr_kill2
-may return the following errors:
-.Bl -tag -width Er
-.It Bq Er EPERM
-The current process does not have sufficient privilege to check existence or
-send a signal to the specified process.
-.El
-.Sh SEE ALSO
-.Xr kill 2 ,
-.Xr thr_exit 2 ,
-.Xr thr_new 2 ,
-.Xr thr_self 2 ,
-.Xr thr_set_name 2 ,
-.Xr _umtx_op 2 ,
-.Xr pthread_kill 3 ,
-.Xr signal 3
-.Sh STANDARDS
-The
-.Fn thr_kill
-and
-.Fn thr_kill2
-system calls are non-standard and are used by the
-.Lb libthr
-to implement
-.St -p1003.1-2001
-.Xr pthread 3
-functionality.
-.Sh HISTORY
-The
-.Fn thr_kill
-and
-.Fn thr_kill2
-system calls first appeared in
-.Fx 5.2 .
diff --git a/lib/libc/sys/thr_new.2 b/lib/libc/sys/thr_new.2
deleted file mode 100644
index 408ec2a27747..000000000000
--- a/lib/libc/sys/thr_new.2
+++ /dev/null
@@ -1,250 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt THR_NEW 2
-.Os
-.Sh NAME
-.Nm thr_new
-.Nd create new thread of execution
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/thr.h
-.Ft int
-.Fn thr_new "struct thr_param *param" "int param_size"
-.Sh DESCRIPTION
-.Bf -symbolic
-This function is intended for implementing threading.
-Normal applications should call
-.Xr pthread_create 3
-instead.
-.Ef
-.Pp
-The
-.Fn thr_new
-system call creates a new kernel-scheduled thread of execution in the context
-of the current process.
-The newly created thread shares all attributes of the process with the
-existing kernel-scheduled threads in the process, but has private processor
-execution state.
-The machine context for the new thread is copied from the creating thread's
-context, including coprocessor state.
-FPU state and specific machine registers are excluded from the copy.
-These are set according to ABI requirements and syscall parameters.
-The FPU state for the new thread is reinitialized to clean.
-.Pp
-The
-.Fa param
-structure supplies parameters affecting the thread creation.
-The structure is defined in the
-.In sys/thr.h
-header as follows
-.Bd -literal
-struct thr_param {
- void (*start_func)(void *);
- void *arg;
- char *stack_base;
- size_t stack_size;
- char *tls_base;
- size_t tls_size;
- long *child_tid;
- long *parent_tid;
- int flags;
- struct rtprio *rtp;
-};
-.Ed
-and contains the following fields:
-.Bl -tag -width ".Va parent_tid"
-.It Va start_func
-Pointer to the thread entry function.
-The kernel arranges for the new thread to start executing the function
-upon the first return to userspace.
-.It Va arg
-Opaque argument supplied to the entry function.
-.It Va stack_base
-Stack base address.
-The stack must be allocated by the caller.
-On some architectures, the ABI might require that the system put information
-on the stack to ensure the execution environment for
-.Va start_func .
-.It Va stack_size
-Stack size.
-.It Va tls_base
-TLS base address.
-The value of TLS base is loaded into the ABI-defined machine register
-in the new thread context.
-.It Va tls_size
-TLS size.
-.It Va child_tid
-Address to store the new thread identifier, for the child's use.
-.It Va parent_tid
-Address to store the new thread identifier, for the parent's use.
-.Pp
-Both
-.Va child_tid
-and
-.Va parent_tid
-are provided, with the intent that
-.Va child_tid
-is used by the new thread to get its thread identifier without
-issuing the
-.Xr thr_self 2
-syscall, while
-.Va parent_tid
-is used by the thread creator.
-The latter is separate from
-.Va child_tid
-because the new thread might exit and free its thread data before the parent
-has a chance to execute far enough to access it.
-.It Va flags
-Thread creation flags.
-The
-.Va flags
-member may specify the following flags:
-.Bl -tag -width ".Dv THR_SYSTEM_SCOPE"
-.It Dv THR_SUSPENDED
-Create the new thread in the suspended state.
-The flag is not currently implemented.
-.It Dv THR_SYSTEM_SCOPE
-Create the system scope thread.
-The flag is not currently implemented.
-.El
-.It Va rtp
-Real-time scheduling priority for the new thread.
-May be
-.Dv NULL
-to inherit the priority from the
-creating thread.
-.El
-.Pp
-The
-.Fa param_size
-argument should be set to the size of the
-.Fa param
-structure.
-.Pp
-After the first successful creation of an additional thread,
-the process is marked by the kernel as multi-threaded.
-In particular, the
-.Dv P_HADTHREADS
-flag is set in the process'
-.Dv p_flag
-(visible in the
-.Xr ps 1
-output), and several operations are executed in multi-threaded mode.
-For instance, the
-.Xr execve 2
-system call terminates all threads but the calling one on successful
-execution.
-.Sh RETURN VALUES
-If successful,
-.Fn thr_new
-will return zero, otherwise \-1 is returned, and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn thr_new
-operation returns the following errors:
-.Bl -tag -width Er
-.\" When changing this list, consider updating share/man/man3/pthread_create.3,
-.\" since that function can return any of these errors.
-.It Bq Er EFAULT
-The memory pointed to by the
-.Fa param
-argument is not valid.
-.It Bq Er EFAULT
-The memory pointed to by the
-.Fa param
-structure
-.Fa child_tid , parent_tid
-or
-.Fa rtp
-arguments is not valid.
-.It Bq Er EFAULT
-The specified stack base is invalid, or the kernel was unable to put required
-initial data on the stack.
-.It Bq Er EINVAL
-The
-.Fa param_size
-argument specifies a negative value, or the value is greater than the
-largest
-.Fa struct param
-size the kernel can interpret.
-.It Bq Er EINVAL
-The
-.Fa rtp
-member is not
-.Dv NULL
-and specifies invalid scheduling parameters.
-.It Bq Er EINVAL
-The specified TLS base is invalid.
-.It Bq Er EPERM
-The caller does not have permission to set the scheduling parameters or
-scheduling policy.
-.It Bq Er EPROCLIM
-Creation of the new thread would exceed the
-.Dv RACCT_NTHR
-limit, see
-.Xr racct 2 .
-.It Bq Er EPROCLIM
-Creation of the new thread would exceed the
-.Dv kern.threads.max_threads_per_proc
-.Xr sysctl 2
-limit.
-.It Bq Er ENOMEM
-There was not enough kernel memory to allocate the new thread structures.
-.El
-.Sh SEE ALSO
-.Xr ps 1 ,
-.Xr _umtx_op 2 ,
-.Xr execve 2 ,
-.Xr racct 2 ,
-.Xr thr_exit 2 ,
-.Xr thr_kill 2 ,
-.Xr thr_kill2 2 ,
-.Xr thr_self 2 ,
-.Xr thr_set_name 2 ,
-.Xr pthread_create 3
-.Sh STANDARDS
-The
-.Fn thr_new
-system call is non-standard and is used by the
-.Lb libthr
-to implement
-.St -p1003.1-2001
-.Xr pthread 3
-functionality.
-.Sh HISTORY
-The
-.Fn thr_new
-system call first appeared in
-.Fx 5.2 .
diff --git a/lib/libc/sys/thr_self.2 b/lib/libc/sys/thr_self.2
deleted file mode 100644
index 423efa4beca1..000000000000
--- a/lib/libc/sys/thr_self.2
+++ /dev/null
@@ -1,95 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt THR_SELF 2
-.Os
-.Sh NAME
-.Nm thr_self
-.Nd return thread identifier for the calling thread
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/thr.h
-.Ft int
-.Fn thr_self "long *id"
-.Sh DESCRIPTION
-The
-.Fn thr_self
-system call stores the system-wide thread identifier for the current
-kernel-scheduled thread in the variable pointed by the argument
-.Va id .
-.Pp
-The thread identifier is an integer in the range from
-.Dv PID_MAX + 2
-(100001) to
-.Dv INT_MAX .
-The thread identifier is guaranteed to be unique at any given time,
-for each running thread in the system.
-After the thread exits, the identifier may be reused.
-.Sh RETURN VALUES
-If successful,
-.Fn thr_self
-will return zero, otherwise \-1 is returned, and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn thr_self
-operation may return the following errors:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The memory pointed to by the
-.Fa id
-argument is not valid.
-.El
-.Sh SEE ALSO
-.Xr _umtx_op 2 ,
-.Xr thr_exit 2 ,
-.Xr thr_kill 2 ,
-.Xr thr_kill2 2 ,
-.Xr thr_new 2 ,
-.Xr thr_set_name 2 ,
-.Xr pthread_getthreadid_np 3 ,
-.Xr pthread_self 3
-.Sh STANDARDS
-The
-.Fn thr_self
-system call is non-standard and is used by
-.Lb libthr
-to implement
-.St -p1003.1-2001
-.Xr pthread 3
-functionality.
-.Sh HISTORY
-The
-.Fn thr_self
-system call first appeared in
-.Fx 5.2 .
diff --git a/lib/libc/sys/thr_set_name.2 b/lib/libc/sys/thr_set_name.2
deleted file mode 100644
index f63cc4d467ed..000000000000
--- a/lib/libc/sys/thr_set_name.2
+++ /dev/null
@@ -1,99 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt THR_SET_NAME 2
-.Os
-.Sh NAME
-.Nm thr_set_name
-.Nd set user-visible thread name
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/thr.h
-.Ft int
-.Fn thr_set_name "long id" "const char *name"
-.Sh DESCRIPTION
-The
-.Fn thr_set_name
-system call sets the user-visible name for the thread with the identifier
-.Va id
-in the current process to the NUL-terminated string
-.Va name .
-The name will be silently truncated to fit into a buffer of
-.Dv MAXCOMLEN + 1
-bytes.
-The thread name can be seen in the output of the
-.Xr ps 1
-and
-.Xr top 1
-commands, in the kernel debuggers and kernel tracing facility outputs,
-and in userland debuggers and program core files, as notes.
-.Sh RETURN VALUES
-If successful,
-.Fn thr_set_name
-returns zero; otherwise, \-1 is returned, and
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn thr_set_name
-system call may return the following errors:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The memory pointed to by the
-.Fa name
-argument is not valid.
-.It Bq Er ESRCH
-The thread with the identifier
-.Fa id
-does not exist in the current process.
-.El
-.Sh SEE ALSO
-.Xr ps 1 ,
-.Xr _umtx_op 2 ,
-.Xr thr_exit 2 ,
-.Xr thr_kill 2 ,
-.Xr thr_kill2 2 ,
-.Xr thr_new 2 ,
-.Xr thr_self 2 ,
-.Xr pthread_set_name_np 3 ,
-.Xr ddb 4 ,
-.Xr ktr 9
-.Sh STANDARDS
-The
-.Fn thr_set_name
-system call is non-standard and is used by the
-.Lb libthr .
-.Sh HISTORY
-The
-.Fn thr_set_name
-system call first appeared in
-.Fx 5.2 .
diff --git a/lib/libc/sys/thr_suspend.2 b/lib/libc/sys/thr_suspend.2
deleted file mode 100644
index da981bcb36ef..000000000000
--- a/lib/libc/sys/thr_suspend.2
+++ /dev/null
@@ -1,134 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt THR_SUSPEND 2
-.Os
-.Sh NAME
-.Nm thr_suspend
-.Nd suspend the calling thread
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/thr.h
-.Ft int
-.Fn thr_suspend "struct timespec *timeout"
-.Sh DESCRIPTION
-.Bf -symbolic
-This function is intended for implementing threading.
-Normal applications should use
-.Xr pthread_cond_timedwait 3
-together with
-.Xr pthread_cond_broadcast 3
-for typical safe suspension with cooperation of the thread
-being suspended, or
-.Xr pthread_suspend_np 3
-and
-.Xr pthread_resume_np 3
-in some specific situations, instead.
-.Ef
-.Pp
-The
-.Fn thr_suspend
-system call puts the calling thread in a suspended state, where it is
-not eligible for CPU time.
-This state is exited by another thread calling
-.Xr thr_wake 2 ,
-when the time interval specified by
-.Fa timeout
-has elapsed,
-or by the delivery of a signal to the suspended thread.
-.Pp
-If the
-.Fa timeout
-argument is
-.Dv NULL ,
-the suspended state can be only terminated by explicit
-.Fn thr_wake
-or signal.
-.Pp
-If a wake from
-.Xr thr_wake 2
-was delivered before the
-.Nm
-call, the thread is not put into a suspended state.
-Instead, the call
-returns immediately without an error.
-.Pp
-If a thread previously called
-.Xr thr_wake 2
-with its own thread identifier, which resulted in setting the internal kernel
-flag to immediately abort interruptible sleeps with an
-.Er EINTR
-error
-.Po
-see
-.Xr thr_wake 2
-.Pc ,
-the flag is cleared.
-As with
-.Xr thr_wake 2
-called from another thread, the next
-.Nm
-call does not result in suspension.
-.Sh RETURN VALUES
-.Rv -std thr_suspend
-.Sh ERRORS
-The
-.Fn thr_suspend
-operation returns the following errors:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The memory pointed to by the
-.Fa timeout
-argument is not valid.
-.It Bq Er ETIMEDOUT
-The specified timeout expired.
-.It Bq Er ETIMEDOUT
-The
-.Fa timeout
-argument specified a zero time interval.
-.It Bq Er EINTR
-The sleep was interrupted by a signal.
-.El
-.Sh SEE ALSO
-.Xr ps 1 ,
-.Xr thr_wake 2 ,
-.Xr pthread_resume_np 3 ,
-.Xr pthread_suspend_np 3
-.Sh STANDARDS
-The
-.Fn thr_suspend
-system call is non-standard.
-.Sh HISTORY
-The
-.Fn thr_suspend
-system call first appeared in
-.Fx 5.2 .
diff --git a/lib/libc/sys/thr_wake.2 b/lib/libc/sys/thr_wake.2
deleted file mode 100644
index b8862b4a3f9c..000000000000
--- a/lib/libc/sys/thr_wake.2
+++ /dev/null
@@ -1,117 +0,0 @@
-.\" Copyright (c) 2016 The FreeBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This documentation was written by
-.\" Konstantin Belousov <kib@FreeBSD.org> 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, 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 AUTHORS 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 AUTHORS 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 5, 2020
-.Dt THR_WAKE 2
-.Os
-.Sh NAME
-.Nm thr_wake
-.Nd wake up the suspended thread
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/thr.h
-.Ft int
-.Fn thr_wake "long id"
-.Sh DESCRIPTION
-.Bf -symbolic
-This function is intended for implementing threading.
-Normal applications should use
-.Xr pthread_cond_timedwait 3
-together with
-.Xr pthread_cond_broadcast 3
-for typical safe suspension with cooperation of the thread
-being suspended, or
-.Xr pthread_suspend_np 3
-and
-.Xr pthread_resume_np 3
-in some specific situations, instead.
-.Ef
-.Pp
-Passing the thread identifier of the calling thread
-.Po
-see
-.Xr thr_self 2
-.Pc
-to
-.Fn thr_wake
-sets a thread's flag to cause the next signal-interruptible sleep
-of that thread in the kernel to fail immediately with the
-.Er EINTR
-error.
-The flag is cleared by an interruptible sleep attempt or by a call to
-.Xr thr_suspend 2 .
-This is used by the system threading library to implement cancellation.
-.Pp
-If
-.Fa id
-is not equal to the current thread identifier, the specified thread is
-woken up if suspended by the
-.Xr thr_suspend 2
-system call.
-If the thread is not suspended at the time of the
-.Nm
-call, the wake is remembered and the next attempt of the thread to
-suspend itself with the
-.Xr thr_suspend 2
-results in immediate return with success.
-Only one wake is remembered.
-.Sh RETURN VALUES
-.Rv -std thr_wake
-.Sh ERRORS
-The
-.Fn thr_wake
-operation returns these errors:
-.Bl -tag -width Er
-.It Bq Er ESRCH
-The specified thread was not found or does not belong to the process
-of the calling thread.
-.El
-.Sh SEE ALSO
-.Xr ps 1 ,
-.Xr thr_self 2 ,
-.Xr thr_suspend 2 ,
-.Xr pthread_cancel 3 ,
-.Xr pthread_resume_np 3 ,
-.Xr pthread_suspend_np 3
-.Sh STANDARDS
-The
-.Fn thr_suspend
-system call is non-standard and is used by
-.Lb libthr
-to implement
-.St -p1003.1-2001
-.Xr pthread 3
-functionality.
-.Sh HISTORY
-The
-.Fn thr_suspend
-system call first appeared in
-.Fx 5.2 .
diff --git a/lib/libc/sys/timer_create.2 b/lib/libc/sys/timer_create.2
deleted file mode 100644
index 1dd0cd5d1fac..000000000000
--- a/lib/libc/sys/timer_create.2
+++ /dev/null
@@ -1,200 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd July 15, 2016
-.Dt TIMER_CREATE 2
-.Os
-.Sh NAME
-.Nm timer_create
-.Nd "create a per-process timer (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In time.h
-.In signal.h
-.Ft int
-.Fo timer_create
-.Fa "clockid_t clockid" "struct sigevent *restrict evp"
-.Fa "timer_t *restrict timerid"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn timer_create
-system call creates a per-process timer using the specified clock,
-.Fa clock_id ,
-as the timing base.
-The
-.Fn timer_create
-system call returns, in the location referenced by
-.Fa timerid ,
-a timer ID of type
-.Vt timer_t
-used to identify the timer in timer requests.
-This timer ID is unique within the calling process until the timer is deleted.
-The particular clock,
-.Fa clock_id ,
-is defined in
-.In time.h .
-The timer whose ID is returned is in a disarmed state upon return from
-.Fn timer_create .
-.Pp
-The
-.Fa evp
-argument, if
-.Pf non- Dv NULL ,
-points to a
-.Vt sigevent
-structure.
-This structure,
-allocated by the application, defines the asynchronous notification to occur
-when the timer expires.
-.Pp
-If
-.Fa evp->sigev_notify
-is
-.Dv SIGEV_SIGNO
-or
-.Dv SIGEV_THREAD_ID ,
-the signal specified in
-.Fa evp->sigev_signo
-will be sent to the calling process
-.Pq Dv SIGEV_SIGNO
-or to the thread whose LWP ID is
-.Fa evp->sigev_notify_thread_id
-.Pq Dv SIGEV_THREAD_ID .
-The information for the queued signal will include:
-.Bl -column ".Va si_value"
-.It Sy Member Ta Sy Value
-.It Va si_code Ta Dv SI_TIMER
-.It Va si_value Ta
-the value stored in
-.Fa evp->sigev_value
-.It Va si_timerid Ta timer ID
-.It Va si_overrun Ta timer overrun count
-.It Va si_errno Ta
-If timer overrun is
-.Brq Dv DELAYTIMER_MAX ,
-an error code defined in
-.In errno.h
-.El
-.Pp
-If the
-.Fa evp
-argument is
-.Dv NULL ,
-the effect is as if the
-.Fa evp
-argument pointed to a
-.Vt sigevent
-structure with the
-.Va sigev_notify
-member having the value
-.Dv SIGEV_SIGNAL ,
-the
-.Va sigev_signo
-having a default signal number
-.Pq Dv SIGALRM ,
-and the
-.Va sigev_value
-member having
-the value of the timer ID.
-.Pp
-This implementation supports a
-.Fa clock_id
-of
-.Dv CLOCK_REALTIME
-or
-.Dv CLOCK_MONOTONIC .
-.Pp
-If
-.Fa evp->sigev_notify
-is
-.Dv SIGEV_THREAD
-and
-.Fa sev->sigev_notify_attributes
-is not
-.Dv NULL ,
-if the attribute pointed to by
-.Fa sev->sigev_notify_attributes
-has
-a thread stack address specified by a call to
-.Fn pthread_attr_setstack
-or
-.Fn pthread_attr_setstackaddr ,
-the results are unspecified if the signal is generated more than once.
-.Sh RETURN VALUES
-If the call succeeds,
-.Fn timer_create
-returns zero and updates the location referenced by
-.Fa timerid
-to a
-.Vt timer_t ,
-which can be passed to the per-process timer calls.
-If an error
-occurs, the system call returns a value of \-1
-and the global variable
-.Va errno
-is set to indicate the
-error.
-The value of
-.Fa timerid
-is undefined if an error occurs.
-.Sh ERRORS
-The
-.Fn timer_create
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EAGAIN
-The calling process has already created all of the timers it is allowed by
-this implementation.
-.It Bq Er EINVAL
-The specified clock ID is not supported.
-.It Bq Er EINVAL
-The specified asynchronous notification method is not supported.
-.It Bq Er EFAULT
-Any arguments point outside the allocated address space or there is a
-memory protection fault.
-.El
-.Sh SEE ALSO
-.Xr clock_getres 2 ,
-.Xr timer_delete 2 ,
-.Xr timer_getoverrun 2 ,
-.Xr sigevent 3 ,
-.Xr siginfo 3
-.Sh STANDARDS
-The
-.Fn timer_create
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-per-process timer first appeared in
-.Fx 7.0 .
diff --git a/lib/libc/sys/timer_delete.2 b/lib/libc/sys/timer_delete.2
deleted file mode 100644
index a7f5ada0eb51..000000000000
--- a/lib/libc/sys/timer_delete.2
+++ /dev/null
@@ -1,80 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 11, 2000
-.Dt TIMER_DELETE 2
-.Os
-.Sh NAME
-.Nm timer_delete
-.Nd "delete a per-process timer (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In time.h
-.Ft int
-.Fn timer_delete "timer_t timerid"
-.Sh DESCRIPTION
-The
-.Fn timer_delete
-system call
-deletes the specified timer,
-.Fa timerid ,
-previously created by the
-.Xr timer_create 2
-system call.
-If the timer is armed when
-.Fn timer_delete
-is called, the behavior is as if the timer is automatically disarmed before
-removal.
-Pending signals for the deleted timer are cleared.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn timer_delete
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The timer ID specified by
-.Fa timerid
-is not a valid timer ID.
-.El
-.Sh SEE ALSO
-.Xr timer_create 2
-.Sh STANDARDS
-The
-.Fn timer_delete
-system call conforms to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-per-process timer first appeared in
-.Fx 7.0 .
diff --git a/lib/libc/sys/timer_settime.2 b/lib/libc/sys/timer_settime.2
deleted file mode 100644
index 3f7be18c217d..000000000000
--- a/lib/libc/sys/timer_settime.2
+++ /dev/null
@@ -1,265 +0,0 @@
-.\" Copyright (c) 2005 David Xu <davidxu@FreeBSD.org>
-.\" 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(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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd September 11, 2000
-.Dt TIMER_SETTIME 2
-.Os
-.Sh NAME
-.Nm timer_getoverrun ,
-.Nm timer_gettime ,
-.Nm timer_settime
-.Nd "per-process timers (REALTIME)"
-.Sh LIBRARY
-.Lb librt
-.Sh SYNOPSIS
-.In time.h
-.Ft int
-.Fn timer_getoverrun "timer_t timerid"
-.Ft int
-.Fn timer_gettime "timer_t timerid" "struct itimerspec *value"
-.Ft int
-.Fo timer_settime
-.Fa "timer_t timerid" "int flags" "const struct itimerspec *restrict value"
-.Fa "struct itimerspec *restrict ovalue"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn timer_gettime
-system call stores the amount of time until the specified timer,
-.Fa timerid ,
-expires and the reload value of the timer into the space pointed to by the
-.Fa value
-argument.
-The
-.Va it_value
-member of this structure contains the amount of time
-before the timer expires, or zero if the timer is disarmed.
-This value is
-returned as the interval until timer expiration, even if the timer was armed
-with absolute time.
-The
-.Va it_interval
-member of
-.Fa value
-contains the reload
-value last set by
-.Fn timer_settime .
-.Pp
-The
-.Fn timer_settime
-system call sets the time until the next expiration of the timer specified
-by
-.Fa timerid
-from the
-.Va it_value
-member of the
-.Fa value
-argument and arms the timer if the
-.Va it_value
-member of
-.Fa value
-is non-zero.
-If the specified timer was already
-armed when
-.Fn timer_settime
-is called, this call resets the time until next expiration to the value
-specified.
-If the
-.Va it_value
-member of
-.Fa value
-is zero, the timer is disarmed.
-If the timer is disarmed, then pending signal is removed.
-.Pp
-If the flag
-.Dv TIMER_ABSTIME
-is not set in the argument
-.Fa flags ,
-.Fn timer_settime
-behaves as if the time until next expiration is set to
-be equal to the interval specified by the
-.Va it_value
-member of
-.Fa value .
-That is,
-the timer expires in
-.Va it_value
-nanoseconds from when the call is made.
-If the flag
-.Dv TIMER_ABSTIME
-is set in the argument
-.Fa flags ,
-.Fn timer_settime
-behaves as if the time until next expiration is set to be equal to the
-difference between the absolute time specified by the it_value member of
-value and the current value of the clock associated with
-.Fa timerid .
-That is, the timer expires when the clock reaches the value specified by the
-.Va it_value
-member of
-.Fa value .
-If the specified time has already passed, the
-system call succeeds and the expiration notification is made.
-.Pp
-The reload value of the timer is set to the value specified by the
-.Va it_interval
-member of
-.Fa value .
-When a timer is armed with a non-zero
-.Va it_interval ,
-a periodic
-(or repetitive) timer is specified.
-.Pp
-Time values that are between two consecutive non-negative integer multiples of
-the resolution of the specified timer are rounded up to the larger multiple of
-the resolution.
-Quantization error will not cause the timer to expire earlier
-than the rounded time value.
-.Pp
-If the argument
-.Fa ovalue
-is not
-.Dv NULL ,
-the
-.Fn timer_settime
-system call stores, in the location referenced by
-.Fa ovalue ,
-a value representing
-the previous amount of time before the timer would have expired, or zero if the
-timer was disarmed, together with the previous timer reload value.
-Timers do not
-expire before their scheduled time.
-.Pp
-Only a single signal is queued to the process for a given timer at any point in
-time.
-When a timer for which a signal is still pending expires, no signal is
-queued, and a timer overrun will occur.
-When a timer expiration signal is
-accepted by a process, the
-.Fn timer_getoverrun
-system call returns the timer expiration overrun count for the specified timer.
-The overrun count returned contains the number of extra timer expirations that
-occurred between the time the signal was generated (queued) and when it was
-accepted, up to but not including an maximum of
-.Brq Dv DELAYTIMER_MAX .
-If the number of
-such extra expirations is greater than or equal to
-.Brq Dv DELAYTIMER_MAX ,
-then the overrun count is set to
-.Brq Dv DELAYTIMER_MAX .
-The value returned by
-.Fn timer_getoverrun
-applies to the most recent expiration signal acceptance for the timer.
-If no
-expiration signal has been delivered for the timer, the return value of
-.Fn timer_getoverrun
-is unspecified.
-.Sh RETURN VALUES
-If the
-.Fn timer_getoverrun
-system call succeeds, it returns the timer expiration overrun count as explained
-above.
-Otherwise the value \-1 is returned, and the global variable
-.Va errno
-is set to indicate the error.
-.Pp
-.Rv -std timer_gettime timer_settime
-.Sh ERRORS
-The
-.Fn timer_settime
-system call
-will fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-A
-.Fa value
-structure specified a nanosecond value less than zero or greater than
-or equal to 1000 million, and the
-.Va it_value
-member of that structure did not
-specify zero seconds and nanoseconds.
-.El
-.Pp
-These system calls may fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa timerid
-argument does not correspond to an ID returned by
-.Fn timer_create
-but not yet deleted by
-.Fn timer_delete .
-.El
-.Pp
-The
-.Fn timer_settime
-system call may fail if:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Va it_interval
-member of
-.Fa value
-is not zero and the timer was created with
-notification by creation of a new thread
-.Va ( sigev_sigev_notify
-was
-.Dv SIGEV_THREAD )
-and a fixed stack address has been set in the thread attribute pointed to by
-.Va sigev_notify_attributes .
-.El
-.Pp
-The
-.Fn timer_gettime
-and
-.Fn timer_settime
-system calls
-may fail if:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-Any arguments point outside the allocated address space or there is a
-memory protection fault.
-.El
-.Sh SEE ALSO
-.Xr clock_getres 2 ,
-.Xr timer_create 2 ,
-.Xr siginfo 3
-.Sh STANDARDS
-The
-.Fn timer_getoverrun ,
-.Fn timer_gettime ,
-and
-.Fn timer_settime
-system calls conform to
-.St -p1003.1-2004 .
-.Sh HISTORY
-Support for
-.Tn POSIX
-per-process timer first appeared in
-.Fx 7.0 .
diff --git a/lib/libc/sys/trivial-vdso_tc.c b/lib/libc/sys/trivial-vdso_tc.c
deleted file mode 100644
index ce0c1444f318..000000000000
--- a/lib/libc/sys/trivial-vdso_tc.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * Copyright (c) 2013 Konstantin Belousov <kib@FreeBSD.org>
- *
- * 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 <sys/types.h>
-#include <sys/time.h>
-#include <sys/vdso.h>
-#include <errno.h>
-
-#pragma weak __vdso_gettc
-int
-__vdso_gettc(const struct vdso_timehands *th, u_int *tc)
-{
-
- return (ENOSYS);
-}
-
-#pragma weak __vdso_gettimekeep
-int
-__vdso_gettimekeep(struct vdso_timekeep **tk)
-{
-
- return (ENOSYS);
-}
diff --git a/lib/libc/sys/truncate.2 b/lib/libc/sys/truncate.2
deleted file mode 100644
index 9bab04005220..000000000000
--- a/lib/libc/sys/truncate.2
+++ /dev/null
@@ -1,170 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)truncate.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt TRUNCATE 2
-.Os
-.Sh NAME
-.Nm truncate ,
-.Nm ftruncate
-.Nd truncate or extend a file to a specified length
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn truncate "const char *path" "off_t length"
-.Ft int
-.Fn ftruncate "int fd" "off_t length"
-.Sh DESCRIPTION
-The
-.Fn truncate
-system call
-causes the file named by
-.Fa path
-or referenced by
-.Fa fd
-to be truncated or extended to
-.Fa length
-bytes in size.
-If the file
-was larger than this size, the extra data
-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.
-.Sh RETURN VALUES
-.Rv -std
-If the file to be modified is not a directory or
-a regular file, the
-.Fn truncate
-call has no effect and returns the value 0.
-.Sh ERRORS
-The
-.Fn truncate
-system call
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er EACCES
-The named file is not writable by the user.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.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 EISDIR
-The named file is a directory.
-.It Bq Er EROFS
-The named file resides on a read-only file system.
-.It Bq Er ETXTBSY
-The file is a pure procedure (shared text) file that is being executed.
-.It Bq Er EFBIG
-The
-.Fa length
-argument was greater than the maximum file size.
-.It Bq Er EINVAL
-The
-.Fa length
-argument was less than 0.
-.It Bq Er EIO
-An I/O error occurred updating the inode.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.El
-.Pp
-The
-.Fn ftruncate
-system call
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid descriptor.
-.It Bq Er EINVAL
-The
-.Fa fd
-argument
-references a file descriptor that is not a regular file or shared memory object.
-.It Bq Er EINVAL
-The
-.Fa fd
-descriptor
-is not open for writing.
-.El
-.Sh SEE ALSO
-.Xr chflags 2 ,
-.Xr open 2 ,
-.Xr shm_open 2
-.Sh HISTORY
-The
-.Fn truncate
-and
-.Fn ftruncate
-system calls appeared in
-.Bx 4.2 .
-.Sh BUGS
-These calls should be generalized to allow ranges
-of bytes in a file to be discarded.
-.Pp
-Historically, the use of
-.Fn truncate
-or
-.Fn ftruncate
-to extend a file was not portable, but this behavior became required in
-.St -p1003.1-2008 .
diff --git a/lib/libc/sys/umask.2 b/lib/libc/sys/umask.2
deleted file mode 100644
index 87e7e1fe59b9..000000000000
--- a/lib/libc/sys/umask.2
+++ /dev/null
@@ -1,88 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)umask.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd June 4, 1993
-.Dt UMASK 2
-.Os
-.Sh NAME
-.Nm umask
-.Nd set file creation mode mask
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/stat.h
-.Ft mode_t
-.Fn umask "mode_t numask"
-.Sh DESCRIPTION
-The
-.Fn umask
-routine sets the process's file mode creation mask to
-.Fa numask
-and returns the previous value of the mask.
-The 9 low-order
-access permission
-bits of
-.Fa numask
-are used by system calls, including
-.Xr open 2 ,
-.Xr mkdir 2 ,
-and
-.Xr mkfifo 2 ,
-to turn off corresponding bits
-requested in file mode.
-(See
-.Xr chmod 2 ) .
-This clearing allows each user to restrict the default access
-to his files.
-.Pp
-The default mask value is S_IWGRP|S_IWOTH (022, write access for the
-owner only).
-Child processes inherit the mask of the calling process.
-.Sh RETURN VALUES
-The previous value of the file mode mask is returned by the call.
-.Sh ERRORS
-The
-.Fn umask
-system call is always successful.
-.Sh SEE ALSO
-.Xr chmod 2 ,
-.Xr mkfifo 2 ,
-.Xr mknod 2 ,
-.Xr open 2
-.Sh STANDARDS
-The
-.Fn umask
-system call is expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn umask
-function appeared in
-.At v7 .
diff --git a/lib/libc/sys/undelete.2 b/lib/libc/sys/undelete.2
deleted file mode 100644
index cd1e9f17f66f..000000000000
--- a/lib/libc/sys/undelete.2
+++ /dev/null
@@ -1,107 +0,0 @@
-.\" Copyright (c) 1994
-.\" Jan-Simon Pendry
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)undelete.2 8.4 (Berkeley) 10/18/94
-.\" $FreeBSD$
-.\"
-.Dd March 30, 2020
-.Dt UNDELETE 2
-.Os
-.Sh NAME
-.Nm undelete
-.Nd attempt to recover a deleted file
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn undelete "const char *path"
-.Sh DESCRIPTION
-The
-.Fn undelete
-system call attempts to recover the deleted file named by
-.Fa path .
-Currently, this works only when the named object
-is a whiteout in a union file system.
-The system call removes the whiteout causing
-any objects in a lower layer of the
-union stack to become visible once more.
-.Pp
-Eventually, the
-.Fn undelete
-functionality may be expanded to other file systems able to recover
-deleted files such as the log-structured file system.
-.Sh RETURN VALUES
-.Rv -std undelete
-.Sh ERRORS
-The
-.Fn undelete
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er EEXIST
-The path does not reference a whiteout.
-.It Bq Er ENOENT
-The named whiteout does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er EACCES
-Write permission is denied on the directory containing the name
-to be undeleted.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The directory containing the name is marked sticky,
-and the containing directory is not owned by the effective user ID.
-.It Bq Er EINVAL
-The last component of the path is
-.Ql .. .
-.It Bq Er EIO
-An I/O error occurred while updating the directory entry.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EROFS
-The name resides on a read-only file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.El
-.Sh SEE ALSO
-.Xr unlink 2 ,
-.Xr mount_unionfs 8
-.Sh HISTORY
-The
-.Fn undelete
-system call first appeared in
-.Bx 4.4 Lite .
diff --git a/lib/libc/sys/unlink.2 b/lib/libc/sys/unlink.2
deleted file mode 100644
index 11fff875abad..000000000000
--- a/lib/libc/sys/unlink.2
+++ /dev/null
@@ -1,284 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)unlink.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd February 23, 2021
-.Dt UNLINK 2
-.Os
-.Sh NAME
-.Nm unlink ,
-.Nm unlinkat ,
-.Nm funlinkat
-.Nd remove directory entry
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft int
-.Fn unlink "const char *path"
-.Ft int
-.Fn unlinkat "int dfd" "const char *path" "int flag"
-.Ft int
-.Fn funlinkat "int dfd" "const char *path" "int fd" "int flag"
-.Sh DESCRIPTION
-The
-.Fn unlink
-system call
-removes the link named by
-.Fa path
-from its directory and decrements the link count of the
-file which was referenced by the link.
-If that decrement reduces the link count of the file
-to zero,
-and no process has the file open, then
-all resources associated with the file are reclaimed.
-If one or more process have the file open when the last link is removed,
-the link is removed, but the removal of the file is delayed until
-all references to it have been closed.
-The
-.Fa path
-argument
-may not be a directory.
-.Pp
-The
-.Fn unlinkat
-system call is equivalent to
-.Fn unlink
-or
-.Fn rmdir
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the directory entry to be removed is determined
-relative to the directory associated with the file descriptor
-.Fa dfd
-instead of the current working directory.
-.Pp
-The values for
-.Fa flag
-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_REMOVEDIR
-Remove the directory entry specified by
-.Fa fd
-and
-.Fa path
-as a directory, not a normal file.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.El
-.Pp
-If
-.Fn unlinkat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior is
-identical to a call to
-.Fa unlink
-or
-.Fa rmdir
-respectively, depending on whether or not the
-.Dv AT_REMOVEDIR
-bit is set in flag.
-.Pp
-The
-.Fn funlinkat
-system call can be used to unlink an already-opened file, unless that
-file has been replaced since it was opened.
-It is equivalent to
-.Fn unlinkat
-in the case where
-.Fa path
-is already open as the file descriptor
-.Fa fd .
-Otherwise, the path will not be removed and an error will be returned.
-The
-.Fa fd
-can be set the
-.Dv FD_NONE .
-In that case
-.Fn funlinkat
-behaves exactly like
-.Fn unlinkat .
-.Sh RETURN VALUES
-.Rv -std unlink
-.Sh ERRORS
-The
-.Fn unlink
-succeeds unless:
-.Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
-.It Bq Er EISDIR
-The named file is a directory.
-.It Bq Er ENAMETOOLONG
-A component of a pathname exceeded 255 characters,
-or an entire path name exceeded 1023 characters.
-.It Bq Er ENOENT
-The named file does not exist.
-.It Bq Er EACCES
-Search permission is denied for a component of the path prefix.
-.It Bq Er EACCES
-Write permission is denied on the directory containing the link
-to be removed.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EPERM
-The named file is a directory.
-.It Bq Er EPERM
-The named file has its immutable, undeletable or append-only flag set, see the
-.Xr chflags 2
-manual page for more information.
-.It Bq Er EPERM
-The parent directory of the named file has its immutable or append-only flag
-set.
-.It Bq Er EPERM
-The directory containing the file is marked sticky,
-and neither the containing directory nor the file to be removed
-are owned by the effective user ID.
-.It Bq Er EIO
-An I/O error occurred while deleting the directory entry
-or deallocating the inode.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.It Bq Er EROFS
-The named file resides on a read-only file system.
-.It Bq Er EFAULT
-The
-.Fa path
-argument
-points outside the process's allocated address space.
-.It Bq Er ENOSPC
-On file systems supporting copy-on-write or snapshots, there was not enough
-free space to record metadata for the delete operation of the file.
-.El
-.Pp
-In addition to the errors returned by the
-.Fn unlink ,
-the
-.Fn unlinkat
-may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.It Bq Er ENOTEMPTY
-The
-.Fa flag
-parameter has the
-.Dv AT_REMOVEDIR
-bit set and the
-.Fa path
-argument names a directory that is not an empty directory,
-or there are hard links to the directory other than dot or
-a single entry in dot-dot.
-.It Bq Er ENOTDIR
-The
-.Fa flag
-parameter has the
-.Dv AT_REMOVEDIR
-bit set and
-.Fa path
-does not name a directory.
-.It Bq Er EINVAL
-The value of the
-.Fa flag
-argument is not valid.
-.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 ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode or the
-.Dv AT_RESOLVE_BENEATH
-flag was specified.
-.El
-.Pp
-In addition to the errors returned by
-.Fn unlinkat ,
-.Fn funlinkat
-may fail if:
-.Bl -tag -width Er
-.It Bq Er EDEADLK
-The file descriptor is not associated with the path.
-.El
-.Sh SEE ALSO
-.Xr chflags 2 ,
-.Xr close 2 ,
-.Xr link 2 ,
-.Xr rmdir 2 ,
-.Xr symlink 7
-.Sh STANDARDS
-The
-.Fn unlinkat
-system call follows The Open Group Extended API Set 2 specification.
-.Sh HISTORY
-The
-.Fn unlink
-function appeared in
-.At v1 .
-The
-.Fn unlinkat
-system call appeared in
-.Fx 8.0 .
-The
-.Fn funlinkat
-system call appeared in
-.Fx 13.0 .
-.Pp
-The
-.Fn unlink
-system call traditionally allows the super-user to unlink directories which
-can damage the file system integrity.
-This implementation no longer permits it.
diff --git a/lib/libc/sys/utimensat.2 b/lib/libc/sys/utimensat.2
deleted file mode 100644
index 2a3ee087c764..000000000000
--- a/lib/libc/sys/utimensat.2
+++ /dev/null
@@ -1,310 +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.
-.\" 3. 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 June 12, 2022
-.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.
-.It Dv AT_RESOLVE_BENEATH
-Only walk paths below the directory specified by the
-.Ar fd
-descriptor.
-See the description of the
-.Dv O_RESOLVE_BENEATH
-flag in the
-.Xr open 2
-manual page.
-.It Dv AT_EMPTY_PATH
-If the
-.Fa path
-argument is an empty string, operate on the file or directory
-referenced by the descriptor
-.Fa fd .
-If
-.Fa fd
-is equal to
-.Dv AT_FDCWD ,
-operate on the current working directory.
-.El
-.Sh RETURN VALUES
-.Rv -std
-.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_nsec
-component of at least one of the values specified by the
-.Fa times
-argument has a value less than 0 or greater than 999999999 and is not equal to
-.Dv UTIME_NOW
-or
-.Dv UTIME_OMIT .
-.It Bq Er EIO
-An I/O error occurred while reading or writing the affected inode.
-.It Bq Er EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.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 ENOTCAPABLE
-.Fa path
-is an absolute path,
-or contained a ".." component leading to a
-directory outside of the directory hierarchy specified by
-.Fa fd ,
-and the process is in capability mode or the
-.Dv AT_RESOLVE_BENEATH
-flag was specified.
-.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 10.3 .
diff --git a/lib/libc/sys/utimes.2 b/lib/libc/sys/utimes.2
deleted file mode 100644
index 6831e504d1f8..000000000000
--- a/lib/libc/sys/utimes.2
+++ /dev/null
@@ -1,264 +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.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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 March 30, 2020
-.Dt UTIMES 2
-.Os
-.Sh NAME
-.Nm utimes ,
-.Nm lutimes ,
-.Nm futimes ,
-.Nm futimesat
-.Nd set file access and modification times
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/time.h
-.Ft int
-.Fn utimes "const char *path" "const struct timeval *times"
-.Ft int
-.Fn lutimes "const char *path" "const struct timeval *times"
-.Ft int
-.Fn futimes "int fd" "const struct timeval *times"
-.Ft int
-.Fn futimesat "int fd" "const char *path" "const struct timeval times[2]"
-.Sh DESCRIPTION
-.Bf -symbolic
-These interfaces are obsoleted by
-.Xr futimens 2
-and
-.Xr utimensat 2
-because they are not accurate to nanoseconds.
-.Ef
-.Pp
-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 .
-.Pp
-If
-.Fa times
-is
-.Dv NULL ,
-the access and modification times are set to the current time.
-The caller must be the owner of the file, have permission to
-write the file, or be the super-user.
-.Pp
-If
-.Fa times
-is
-.No non- Ns Dv NULL ,
-it is assumed to point to an array of two timeval 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.
-The caller must be the owner of the file or be the super-user.
-.Pp
-In either case, the inode-change-time of the file is set to the current
-time.
-.Pp
-The
-.Fn lutimes
-system call
-is like
-.Fn utimes
-except in the case where the named file is a symbolic link,
-in which case
-.Fn lutimes
-changes the access and modification times of the link,
-while
-.Fn utimes
-changes the times of the file the link references.
-.Pp
-The
-.Fn futimesat
-system call is equivalent to
-.Fn utimes
-except in the case where
-.Fa path
-specifies a relative path.
-In this case the access and modification time
-is set to that of a file relative to the directory associated with the file
-descriptor
-.Fa fd
-instead of the current working directory.
-If
-.Fn futimesat
-is passed the special value
-.Dv AT_FDCWD
-in the
-.Fa fd
-parameter, the current working directory is used and the behavior
-is identical to a call to
-.Fn utimes .
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-All of the 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 EACCES
-The
-.Fa times
-argument is
-.Dv NULL
-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 path
-or
-.Fa times
-argument
-points outside the process's allocated address space.
-.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 EINTEGRITY
-Corrupted data was detected while reading from the file system.
-.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 EPERM
-The
-.Fa times
-argument is not
-.Dv NULL
-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 flags 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 futimes
-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
-In addition to the errors returned by the
-.Fn utimes ,
-the
-.Fn futimesat
-may fail if:
-.Bl -tag -width Er
-.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 open for searching.
-.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.
-.El
-.Sh SEE ALSO
-.Xr chflags 2 ,
-.Xr stat 2 ,
-.Xr utimensat 2 ,
-.Xr utime 3
-.Sh STANDARDS
-The
-.Fn utimes
-function is expected to conform to
-.St -xpg4.2 .
-The
-.Fn futimesat
-system call follows The Open Group Extended API Set 2 specification
-but was replaced by
-.Fn utimensat
-in
-.St -p1003.1-2008 .
-.Sh HISTORY
-The
-.Fn utimes
-system call appeared in
-.Bx 4.2 .
-The
-.Fn futimes
-and
-.Fn lutimes
-system calls first appeared in
-.Fx 3.0 .
-The
-.Fn futimesat
-system call appeared in
-.Fx 8.0 .
diff --git a/lib/libc/sys/utrace.2 b/lib/libc/sys/utrace.2
deleted file mode 100644
index 814091aeb30d..000000000000
--- a/lib/libc/sys/utrace.2
+++ /dev/null
@@ -1,80 +0,0 @@
-.\" $NetBSD: utrace.2,v 1.11 2003/04/24 12:17:49 wiz Exp $
-.\"
-.\" Copyright (c) 2000 The NetBSD Foundation, Inc.
-.\" All rights reserved.
-.\"
-.\" This code is derived from software contributed to The NetBSD Foundation
-.\" by Gregory McGarry <g.mcgarry@ieee.org>.
-.\"
-.\" 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 ``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 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd December 11, 2015
-.Dt UTRACE 2
-.Os
-.Sh NAME
-.Nm utrace
-.Nd insert user record in ktrace log
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/param.h
-.In sys/time.h
-.In sys/uio.h
-.In sys/ktrace.h
-.Ft int
-.Fn utrace "const void *addr" "size_t len"
-.Sh DESCRIPTION
-Adds a record to the process trace with information supplied by user.
-The record contains
-.Fa len
-bytes from memory pointed to by
-.Fa addr .
-This call only has an effect if the calling process is being traced.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-.Bl -tag -width Er
-.It Bq Er EINVAL
-Specified data length
-.Fa len
-was bigger than
-.Dv KTR_USER_MAXLEN .
-.It Bq Er ENOMEM
-Insufficient memory to honor the request.
-.It Bq Er ENOSYS
-Currently running kernel was compiled without
-.Xr ktrace 2
-support
-.Pq Cd "options KTRACE" .
-.El
-.Sh SEE ALSO
-.Xr kdump 1 ,
-.Xr ktrace 1 ,
-.Xr truss 1 ,
-.Xr ktrace 2 ,
-.Xr sysdecode_utrace 3
-.Sh HISTORY
-The
-.Fn utrace
-system call first appeared in
-.Fx 2.2 .
diff --git a/lib/libc/sys/uuidgen.2 b/lib/libc/sys/uuidgen.2
deleted file mode 100644
index 9c90102b3e2f..000000000000
--- a/lib/libc/sys/uuidgen.2
+++ /dev/null
@@ -1,142 +0,0 @@
-.\" Copyright (c) 2002 Marcel Moolenaar
-.\" 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 ``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 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.
-.\"
-.\" $FreeBSD$
-.\"
-.Dd May 26, 2002
-.Dt UUIDGEN 2
-.Os
-.Sh NAME
-.Nm uuidgen
-.Nd generate universally unique identifiers
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/uuid.h
-.Ft int
-.Fn uuidgen "struct uuid *store" "int count"
-.Sh DESCRIPTION
-The
-.Fn uuidgen
-system call generates
-.Fa count
-universally unique identifiers (UUIDs) and writes them to the buffer
-pointed to by
-.Fa store .
-The identifiers are generated according to the syntax and semantics of the
-DCE version 1 variant of universally unique identifiers.
-See below for a more in-depth description of the identifiers.
-When no IEEE 802
-address is available for the node field, a random multicast address is
-generated for each invocation of the system call.
-According to the algorithm of generating time-based UUIDs, this will also
-force a new random clock sequence, thereby increasing the likelihood for
-the identifier to be unique.
-.Pp
-When multiple identifiers are to be generated, the
-.Fn uuidgen
-system call will generate a set of identifiers that is dense in such a way
-that there is no identifier that is larger than the smallest identifier in the
-set and smaller than the largest identifier in the set and that is not already
-in the set.
-.Pp
-Universally unique identifiers, also known as globally unique identifiers
-(GUIDs), have a binary representation of 128-bits.
-The grouping and meaning of these bits is described by the following
-structure and its description of the fields that follow it:
-.Bd -literal
-struct uuid {
- uint32_t time_low;
- uint16_t time_mid;
- uint16_t time_hi_and_version;
- uint8_t clock_seq_hi_and_reserved;
- uint8_t clock_seq_low;
- uint8_t node[_UUID_NODE_LEN];
-};
-.Ed
-.Bl -tag -width ".Va clock_seq_hi_and_reserved"
-.It Va time_low
-The least significant 32 bits of a 60-bit timestamp.
-This field is stored in the native byte-order.
-.It Va time_mid
-The least significant 16 bits of the most significant 28 bits of the 60-bit
-timestamp.
-This field is stored in the native byte-order.
-.It Va time_hi_and_version
-The most significant 12 bits of the 60-bit timestamp multiplexed with a 4-bit
-version number.
-The version number is stored in the most significant 4 bits of the 16-bit
-field.
-This field is stored in the native byte-order.
-.It Va clock_seq_hi_and_reserved
-The most significant 6 bits of a 14-bit sequence number multiplexed with a
-2-bit variant value.
-Note that the width of the variant value is determined by the variant itself.
-Identifiers generated by the
-.Fn uuidgen
-system call have variant value 10b.
-the variant value is stored in the most significant bits of the field.
-.It Va clock_seq_low
-The least significant 8 bits of a 14-bit sequence number.
-.It Va node
-The 6-byte IEEE 802 (MAC) address of one of the interfaces of the node.
-If no such interface exists, a random multi-cast address is used instead.
-.El
-.Pp
-The binary representation is sensitive to byte ordering.
-Any multi-byte field is to be stored in the local or native byte-order and
-identifiers must be converted when transmitted to hosts that do not agree
-on the byte-order.
-The specification does not however document what this means in concrete
-terms and is otherwise beyond the scope of this system call.
-.Sh RETURN VALUES
-.Rv -std
-.Sh ERRORS
-The
-.Fn uuidgen
-system call can fail with:
-.Bl -tag -width Er
-.It Bq Er EFAULT
-The buffer pointed to by
-.Fa store
-could not be written to for any or all identifiers.
-.It Bq Er EINVAL
-The
-.Fa count
-argument is less than 1 or larger than the hard upper limit of 2048.
-.El
-.Sh SEE ALSO
-.Xr uuidgen 1 ,
-.Xr uuid 3
-.Sh STANDARDS
-The identifiers are represented and generated in conformance with the DCE 1.1
-RPC specification.
-The
-.Fn uuidgen
-system call is itself not part of the specification.
-.Sh HISTORY
-The
-.Fn uuidgen
-system call first appeared in
-.Fx 5.0 .
diff --git a/lib/libc/sys/vadvise.c b/lib/libc/sys/vadvise.c
index e53e24cbd7c4..44e26a69f9c1 100644
--- a/lib/libc/sys/vadvise.c
+++ b/lib/libc/sys/vadvise.c
@@ -29,11 +29,8 @@
* 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.
- *
- * $FreeBSD$
*/
-#include <sys/cdefs.h>
#include <sys/errno.h>
int vadvise(int);
diff --git a/lib/libc/sys/vfork.2 b/lib/libc/sys/vfork.2
deleted file mode 100644
index 172a4c168228..000000000000
--- a/lib/libc/sys/vfork.2
+++ /dev/null
@@ -1,145 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)vfork.2 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD$
-.\"
-.Dd May 22, 2016
-.Dt VFORK 2
-.Os
-.Sh NAME
-.Nm vfork
-.Nd create a new process without copying the address space
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft pid_t
-.Fn vfork void
-.Sh DESCRIPTION
-.Bf -symbolic
-Since this function is hard to use correctly from application software,
-it is recommended to use
-.Xr posix_spawn 3
-or
-.Xr fork 2
-instead.
-.Ef
-.Pp
-The
-.Fn vfork
-system call
-can be used to create new processes without fully copying the address
-space of the old process, which is inefficient in a paged
-environment.
-It is useful when the purpose of
-.Xr fork 2
-would have been to create a new system context for an
-.Xr execve 2 .
-The
-.Fn vfork
-system call
-differs from
-.Xr fork 2
-in that the child borrows the parent process's address space and the
-calling thread's stack
-until a call to
-.Xr execve 2
-or an exit (either by a call to
-.Xr _exit 2
-or abnormally).
-The calling thread is suspended while the child is using its resources.
-Other threads continue to run.
-.Pp
-The
-.Fn vfork
-system call
-returns 0 in the child's context and (later) the pid of the child in
-the parent's context.
-.Pp
-Many problems can occur when replacing
-.Xr fork 2
-with
-.Fn vfork .
-For example, it does not work to return while running in the child's context
-from the procedure that called
-.Fn vfork
-since the eventual return from
-.Fn vfork
-would then return to a no longer existent stack frame.
-Also, changing process state which is partially implemented in user space
-such as signal handlers with
-.Xr libthr 3
-will corrupt the parent's state.
-.Pp
-Be careful, also, to call
-.Xr _exit 2
-rather than
-.Xr exit 3
-if you cannot
-.Xr execve 2 ,
-since
-.Xr exit 3
-will flush and close standard I/O channels, and thereby mess up the
-parent processes standard I/O data structures.
-(Even with
-.Xr fork 2
-it is wrong to call
-.Xr exit 3
-since buffered data would then be flushed twice.)
-.Sh RETURN VALUES
-Same as for
-.Xr fork 2 .
-.Sh SEE ALSO
-.Xr _exit 2 ,
-.Xr execve 2 ,
-.Xr fork 2 ,
-.Xr rfork 2 ,
-.Xr sigaction 2 ,
-.Xr wait 2 ,
-.Xr exit 3 ,
-.Xr posix_spawn 3
-.Sh HISTORY
-The
-.Fn vfork
-system call appeared in
-.Bx 3 .
-.Sh BUGS
-To avoid a possible deadlock situation,
-processes that are children in the middle
-of a
-.Fn vfork
-are never sent
-.Dv SIGTTOU
-or
-.Dv SIGTTIN
-signals; rather,
-output or
-.Xr ioctl 2
-calls
-are allowed
-and input attempts result in an end-of-file indication.
diff --git a/lib/libc/sys/wait.2 b/lib/libc/sys/wait.2
deleted file mode 100644
index 196597f1055b..000000000000
--- a/lib/libc/sys/wait.2
+++ /dev/null
@@ -1,689 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993, 1994
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)wait.2 8.2 (Berkeley) 4/19/94
-.\" $FreeBSD$
-.\"
-.Dd August 11, 2019
-.Dt WAIT 2
-.Os
-.Sh NAME
-.Nm wait ,
-.Nm waitid ,
-.Nm waitpid ,
-.Nm wait3 ,
-.Nm wait4 ,
-.Nm wait6
-.Nd wait for processes to change status
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/types.h
-.In sys/wait.h
-.Ft pid_t
-.Fn wait "int *status"
-.Ft pid_t
-.Fn waitpid "pid_t wpid" "int *status" "int options"
-.In signal.h
-.Ft int
-.Fn waitid "idtype_t idtype" "id_t id" "siginfo_t *info" "int options"
-.In sys/time.h
-.In sys/resource.h
-.Ft pid_t
-.Fn wait3 "int *status" "int options" "struct rusage *rusage"
-.Ft pid_t
-.Fn wait4 "pid_t wpid" "int *status" "int options" "struct rusage *rusage"
-.Ft pid_t
-.Fo wait6
-.Fa "idtype_t idtype" "id_t id"
-.Fa "int *status"
-.Fa "int options"
-.Fa "struct __wrusage *wrusage"
-.Fa "siginfo_t *infop"
-.Fc
-.Sh DESCRIPTION
-The
-.Fn wait
-function suspends execution of its calling thread until
-.Fa status
-information is available for a child process
-or a signal is received.
-On return from a successful
-.Fn wait
-call,
-the
-.Fa status
-area contains information about the process that reported a status change
-as defined below.
-.Pp
-The
-.Fn wait4
-and
-.Fn wait6
-system calls provide a more general interface for programs
-that need to wait for specific child processes,
-that need resource utilization statistics accumulated by child processes,
-or that require options.
-The other wait functions are implemented using either
-.Fn wait4
-or
-.Fn wait6 .
-.Pp
-The
-.Fn wait6
-function is the most general function in this family and its distinct
-features are:
-.Pp
-All of the desired process statuses to be waited on must be explicitly
-specified in
-.Fa options .
-The
-.Fn wait ,
-.Fn waitpid ,
-.Fn wait3 ,
-and
-.Fn wait4
-functions all implicitly wait for exited and trapped processes,
-but the
-.Fn waitid
-and
-.Fn wait6
-functions require the corresponding
-.Dv WEXITED
-and
-.Dv WTRAPPED
-flags to be explicitly specified.
-This allows waiting for processes which have experienced other
-status changes without having to also handle the exit status from
-terminated processes.
-.Pp
-The
-.Fn wait6
-function accepts a
-.Fa wrusage
-argument which points to a structure defined as:
-.Bd -literal
-struct __wrusage {
- struct rusage wru_self;
- struct rusage wru_children;
-};
-.Ed
-.Pp
-This allows the calling process to collect resource usage statistics
-from both its own child process as well as from its grand children.
-When no resource usage statistics are needed this pointer can be
-.Dv NULL .
-.Pp
-The last argument
-.Fa infop
-must be either
-.Dv NULL
-or a pointer to a
-.Fa siginfo_t
-structure.
-If
-.Pf non- Dv NULL ,
-the structure is filled with the same data as for a
-.Dv SIGCHLD
-signal delivered when the process changed state.
-.Pp
-The set of child processes to be queried is specified by the arguments
-.Fa idtype
-and
-.Fa id .
-The separate
-.Fa idtype
-and
-.Fa id
-arguments support many other types of
-identifiers in addition to process IDs and process group IDs.
-.Bl -bullet -offset indent
-.It
-If
-.Fa idtype
-is
-.Dv P_PID ,
-.Fn waitid
-and
-.Fn wait6
-wait for the child process with a process ID equal to
-.Dv (pid_t)id .
-.It
-If
-.Fa idtype
-is
-.Dv P_PGID ,
-.Fn waitid
-and
-.Fn wait6
-wait for the child process with a process group ID equal to
-.Dv (pid_t)id .
-.It
-If
-.Fa idtype
-is
-.Dv P_ALL ,
-.Fn waitid
-and
-.Fn wait6
-wait for any child process and the
-.Dv id
-is ignored.
-.It
-If
-.Fa idtype
-is
-.Dv P_PID
-or
-.Dv P_PGID
-and the
-.Dv id
-is zero,
-.Fn waitid
-and
-.Fn wait6
-wait for any child process in the same process group as the caller.
-.El
-.Pp
-Non-standard identifier types supported by this
-implementation of
-.Fn waitid
-and
-.Fn wait6
-are:
-.Bl -tag -width P_JAILID
-.It Dv P_UID
-Wait for processes whose effective user ID is equal to
-.Dv (uid_t) Fa id .
-.It Dv P_GID
-Wait for processes whose effective group ID is equal to
-.Dv (gid_t) Fa id .
-.It Dv P_SID
-Wait for processes whose session ID is equal to
-.Fa id .
-.\" This is just how sessions work, not sure this needs to be documented here
-If the child process started its own session,
-its session ID will be the same as its process ID.
-Otherwise the session ID of a child process will match the caller's session ID.
-.It Dv P_JAILID
-Waits for processes within a jail whose jail identifier is equal to
-.Fa id .
-.El
-.Pp
-For the
-.Fn waitpid
-and
-.Fn wait4
-functions, the single
-.Fa wpid
-argument specifies the set of child processes for which to wait.
-.Bl -bullet -offset indent
-.It
-If
-.Fa wpid
-is -1, the call waits for any child process.
-.It
-If
-.Fa wpid
-is 0,
-the call waits for any child process in the process group of the caller.
-.It
-If
-.Fa wpid
-is greater than zero, the call waits for the process with process ID
-.Fa wpid .
-.It
-If
-.Fa wpid
-is less than -1, the call waits for any process whose process group ID
-equals the absolute value of
-.Fa wpid .
-.El
-.Pp
-The
-.Fa status
-argument is defined below.
-.Pp
-The
-.Fa options
-argument contains the bitwise OR of any of the following options.
-.Bl -tag -width WCONTINUED
-.It Dv WCONTINUED
-Report the status of selected processes that
-have continued from a job control stop by receiving a
-.Dv SIGCONT
-signal.
-.It Dv WNOHANG
-Do not block when
-there are no processes wishing to report status.
-.It Dv WUNTRACED
-Report the status of selected processes which are stopped due to a
-.Dv SIGTTIN , SIGTTOU , SIGTSTP ,
-or
-.Dv SIGSTOP
-signal.
-.It Dv WSTOPPED
-An alias for
-.Dv WUNTRACED .
-.It Dv WTRAPPED
-Report the status of selected processes which are being traced via
-.Xr ptrace 2
-and have trapped or reached a breakpoint.
-This flag is implicitly set for the functions
-.Fn wait ,
-.Fn waitpid ,
-.Fn wait3 ,
-and
-.Fn wait4 .
-.br
-For the
-.Fn waitid
-and
-.Fn wait6
-functions, the flag has to be explicitly included in
-.Fa options
-if status reports from trapped processes are expected.
-.It Dv WEXITED
-Report the status of selected processes which have terminated.
-This flag is implicitly set for the functions
-.Fn wait ,
-.Fn waitpid ,
-.Fn wait3 ,
-and
-.Fn wait4 .
-.br
-For the
-.Fn waitid
-and
-.Fn wait6
-functions, the flag has to be explicitly included in
-.Fa options
-if status reports from terminated processes are expected.
-.It Dv WNOWAIT
-Keep the process whose status is returned in a waitable state.
-The process may be waited for again after this call completes.
-.El
-.sp
-For the
-.Fn waitid
-and
-.Fn wait6
-functions, at least one of the options
-.Dv WEXITED ,
-.Dv WUNTRACED ,
-.Dv WSTOPPED ,
-.Dv WTRAPPED ,
-or
-.Dv WCONTINUED
-must be specified.
-Otherwise there will be no events for the call to report.
-To avoid hanging indefinitely in such a case these functions
-return -1 with
-.Dv errno
-set to
-.Dv EINVAL .
-.Pp
-If
-.Fa rusage
-is non-NULL, a summary of the resources used by the terminated
-process and all its children is returned.
-.Pp
-If
-.Fa wrusage
-is non-NULL, separate summaries are returned for the resources used
-by the terminated process and the resources used by all its children.
-.Pp
-If
-.Fa infop
-is non-NULL, a
-.Dv siginfo_t
-structure is returned with the
-.Fa si_signo
-field set to
-.Dv SIGCHLD
-and the
-.Fa si_pid
-field set to the process ID of the process reporting status.
-For the exited process, the
-.Fa si_status
-field of the
-.Dv siginfo_t
-structure contains the full 32 bit exit status passed to
-.Xr _exit 2 ;
-the
-.Fa status
-argument of other calls only returns 8 lowest bits of the exit status.
-.Pp
-When the
-.Dv WNOHANG
-option is specified and no processes
-wish to report status,
-.Fn waitid
-sets the
-.Fa si_signo
-and
-.Fa si_pid
-fields in
-.Fa infop
-to zero.
-Checking these fields is the only way to know if a status change was reported.
-.Pp
-When the
-.Dv WNOHANG
-option is specified and no processes
-wish to report status,
-.Fn wait4
-and
-.Fn wait6
-return a
-process id
-of 0.
-.Pp
-The
-.Fn wait
-call is the same as
-.Fn wait4
-with a
-.Fa wpid
-value of -1,
-with an
-.Fa options
-value of zero,
-and a
-.Fa rusage
-value of
-.Dv NULL .
-The
-.Fn waitpid
-function is identical to
-.Fn wait4
-with an
-.Fa rusage
-value of
-.Dv NULL .
-The older
-.Fn wait3
-call is the same as
-.Fn wait4
-with a
-.Fa wpid
-value of -1.
-The
-.Fn wait4
-function is identical to
-.Fn wait6
-with the flags
-.Dv WEXITED
-and
-.Dv WTRAPPED
-set in
-.Fa options
-and
-.Fa infop
-set to
-.Dv NULL .
-.Pp
-The following macros may be used to test the current status of the process.
-Exactly one of the following four macros will evaluate to a non-zero
-.Pq true
-value:
-.Bl -tag -width Ds
-.It Fn WIFCONTINUED status
-True if the process has not terminated, and
-has continued after a job control stop.
-This macro can be true only if the wait call specified the
-.Dv WCONTINUED
-option.
-.It Fn WIFEXITED status
-True if the process terminated normally by a call to
-.Xr _exit 2
-or
-.Xr exit 3 .
-.It Fn WIFSIGNALED status
-True if the process terminated due to receipt of a signal.
-.It Fn WIFSTOPPED status
-True if the process has not terminated, but has stopped and can be restarted.
-This macro can be true only if the wait call specified the
-.Dv WUNTRACED
-option
-or if the child process is being traced (see
-.Xr ptrace 2 ) .
-.El
-.Pp
-Depending on the values of those macros, the following macros
-produce the remaining status information about the child process:
-.Bl -tag -width Ds
-.It Fn WEXITSTATUS status
-If
-.Fn WIFEXITED status
-is true, evaluates to the low-order 8 bits
-of the argument passed to
-.Xr _exit 2
-or
-.Xr exit 3
-by the child.
-.It Fn WTERMSIG status
-If
-.Fn WIFSIGNALED status
-is true, evaluates to the number of the signal
-that caused the termination of the process.
-.It Fn WCOREDUMP status
-If
-.Fn WIFSIGNALED status
-is true, evaluates as true if the termination
-of the process was accompanied by the creation of a core file
-containing an image of the process when the signal was received.
-.It Fn WSTOPSIG status
-If
-.Fn WIFSTOPPED status
-is true, evaluates to the number of the signal
-that caused the process to stop.
-.El
-.Sh NOTES
-See
-.Xr sigaction 2
-for a list of termination signals.
-A status of 0 indicates normal termination.
-.Pp
-If a parent process terminates without
-waiting for all of its child processes to terminate,
-the remaining child processes are re-assigned to the reaper
-of the exiting process as the parent, see
-.Xr procctl 2
-.Dv PROC_REAP_ACQUIRE .
-If no specific reaper was assigned, the process with ID 1, the init process,
-becomes the parent of the orphaned children by default.
-.Pp
-If a signal is caught while any of the
-.Fn wait
-calls are pending,
-the call may be interrupted or restarted when the signal-catching routine
-returns,
-depending on the options in effect for the signal;
-see discussion of
-.Dv SA_RESTART
-in
-.Xr sigaction 2 .
-.Pp
-The implementation queues one
-.Dv SIGCHLD
-signal for each child process whose
-status has changed; if
-.Fn wait
-returns because the status of a child process is available, the pending
-SIGCHLD signal associated with the process ID of the child process will
-be discarded.
-Any other pending
-.Dv SIGCHLD
-signals remain pending.
-.Pp
-If
-.Dv SIGCHLD
-is blocked and
-.Fn wait
-returns because the status of a child process is available, the pending
-.Dv SIGCHLD
-signal will be cleared unless another status of the child process
-is available.
-.Sh RETURN VALUES
-If
-.Fn wait
-returns due to a stopped, continued,
-or terminated child process, the process ID of the child
-is returned to the calling process.
-Otherwise, a value of \-1
-is returned and
-.Va errno
-is set to indicate the error.
-.Pp
-If
-.Fn wait6 ,
-.Fn wait4 ,
-.Fn wait3 ,
-or
-.Fn waitpid
-returns due to a stopped, continued,
-or terminated child process, the process ID of the child
-is returned to the calling process.
-If there are no children not previously awaited,
--1 is returned with
-.Va errno
-set to
-.Er ECHILD .
-Otherwise, if
-.Dv WNOHANG
-is specified and there are
-no stopped, continued or exited children,
-0 is returned.
-If an error is detected or a caught signal aborts the call,
-a value of -1
-is returned and
-.Va errno
-is set to indicate the error.
-.Pp
-If
-.Fn waitid
-returns because one or more processes have a state change to report,
-0 is returned.
-If an error is detected,
-a value of -1
-is returned and
-.Va errno
-is set to indicate the error.
-If
-.Dv WNOHANG
-is specified and there are
-no stopped, continued or exited children,
-0 is returned.
-The
-.Fa si_signo
-and
-.Fa si_pid
-fields of
-.Fa infop
-must be checked against zero to determine if a process reported status.
-.Pp
-The
-.Fn wait
-family of functions will not return a child process created with
-.Xr pdfork 2
-unless specifically directed to do so by specifying its process ID.
-.Sh ERRORS
-The
-.Fn wait
-function
-will fail and return immediately if:
-.Bl -tag -width Er
-.It Bq Er ECHILD
-The calling process has no existing unwaited-for
-child processes.
-.It Bq Er ECHILD
-No status from the terminated child process is available
-because the calling process has asked the system to discard
-such status by ignoring the signal
-.Dv SIGCHLD
-or setting the flag
-.Dv SA_NOCLDWAIT
-for that signal.
-.It Bq Er EFAULT
-The
-.Fa status
-or
-.Fa rusage
-argument points to an illegal address.
-(May not be detected before exit of a child process.)
-.It Bq Er EINTR
-The call was interrupted by a caught signal,
-or the signal did not have the
-.Dv SA_RESTART
-flag set.
-.It Bq Er EINVAL
-An invalid value was specified for
-.Fa options ,
-or
-.Fa idtype
-and
-.Fa id
-do not specify a valid set of processes.
-.El
-.Sh SEE ALSO
-.Xr _exit 2 ,
-.Xr procctl 2 ,
-.Xr ptrace 2 ,
-.Xr sigaction 2 ,
-.Xr exit 3 ,
-.Xr siginfo 3
-.Sh STANDARDS
-The
-.Fn wait ,
-.Fn waitpid ,
-and
-.Fn waitid
-functions are defined by POSIX;
-.Fn wait6 ,
-.Fn wait4 ,
-and
-.Fn wait3
-are not specified by POSIX.
-The
-.Fn WCOREDUMP
-macro
-is an extension to the POSIX interface.
-.Pp
-The ability to use the
-.Dv WNOWAIT
-flag with
-.Fn waitpid
-is an extension;
-.Tn POSIX
-only permits this flag with
-.Fn waitid .
-.Sh HISTORY
-The
-.Fn wait
-function appeared in
-.At v1 .
diff --git a/lib/libc/sys/__error.c b/lib/libc/sys/wait.c
index ff73a6a16fb5..6678ecc522ba 100644
--- a/lib/libc/sys/__error.c
+++ b/lib/libc/sys/wait.c
@@ -1,8 +1,8 @@
/*-
* SPDX-License-Identifier: BSD-3-Clause
*
- * Copyright (c) 1997 John Birrell <jb@cimlogic.com.au>.
- * All rights reserved.
+ * Copyright (c) 1988, 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
@@ -12,11 +12,11 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the author nor the names of any co-contributors
+ * 3. 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 JOHN BIRRELL 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 REGENTS OR CONTRIBUTORS BE LIABLE
@@ -29,32 +29,22 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+#include "namespace.h"
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <sys/resource.h>
+#include "un-namespace.h"
#include "libc_private.h"
-extern int errno;
+pid_t __wait(int *);
-static int *
-__error_unthreaded(void)
+pid_t
+__wait(int *istat)
{
-
- return (&errno);
+ return (INTERPOS_SYS(wait4, WAIT_ANY, istat, 0, NULL));
}
-static int *(*__error_selector)(void) = __error_unthreaded;
-
-void
-__set_error_selector(int *(*arg)(void))
-{
-
- __error_selector = arg;
-}
-
-int *
-__error(void)
-{
-
- return (__error_selector());
-}
+__weak_reference(__wait, wait);
+__weak_reference(__wait, _wait);
diff --git a/lib/libc/sys/gettimeofday.c b/lib/libc/sys/wait3.c
index f24cd41269db..4e98ccff5227 100644
--- a/lib/libc/sys/gettimeofday.c
+++ b/lib/libc/sys/wait3.c
@@ -1,7 +1,8 @@
/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ * SPDX-License-Identifier: BSD-3-Clause
*
- * Copyright (c) 2012 Konstantin Belousov <kib@FreeBSD.org>
+ * Copyright (c) 1988, 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
@@ -11,11 +12,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.
+ * 3. 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)
@@ -25,26 +29,21 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/syscall.h>
+#include "namespace.h"
+#include <sys/types.h>
#include <sys/time.h>
-#include <sys/vdso.h>
-#include <errno.h>
-#include "libc_private.h"
+#include <sys/wait.h>
+#include <sys/resource.h>
+#include "un-namespace.h"
-int __gettimeofday(struct timeval *tv, struct timezone *tz);
+#include "libc_private.h"
-__weak_reference(__gettimeofday, gettimeofday);
+pid_t __wait3(int *, int, struct rusage *);
-int
-__gettimeofday(struct timeval *tv, struct timezone *tz)
+pid_t
+__wait3(int *istat, int options, struct rusage *rup)
{
- int error;
-
- error = __vdso_gettimeofday(tv, tz);
- if (error == ENOSYS)
- error = __sys_gettimeofday(tv, tz);
- return (error);
+ return (INTERPOS_SYS(wait4, WAIT_ANY, istat, options, rup));
}
+
+__weak_reference(__wait3, wait3);
diff --git a/lib/libc/sys/wait4.c b/lib/libc/sys/wait4.c
index a5dbd0fcb1aa..57b0071ef87f 100644
--- a/lib/libc/sys/wait4.c
+++ b/lib/libc/sys/wait4.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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"
@@ -43,7 +39,5 @@ __weak_reference(__sys_wait4, __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));
+ return (INTERPOS_SYS(wait4, pid, status, options, ru));
}
diff --git a/lib/libc/sys/wait6.c b/lib/libc/sys/wait6.c
index d280a7698747..118a7ef6b99e 100644
--- a/lib/libc/sys/wait6.c
+++ b/lib/libc/sys/wait6.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -45,8 +41,5 @@ 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));
+ return (INTERPOS_SYS(wait6, idtype, id, status, options, ru, infop));
}
diff --git a/lib/libc/sys/fstatfs.c b/lib/libc/sys/waitid.c
index 836127842c4a..334f25e99bb6 100644
--- a/lib/libc/sys/fstatfs.c
+++ b/lib/libc/sys/waitid.c
@@ -1,5 +1,10 @@
/*-
- * Copyright (c) 2017 M. Warner Losh <imp@FreeBSD.org>
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2012 Jukka A. Ukkonen
+ * All rights reserved.
+ *
+ * This software was developed by Jukka Ukkonen for FreeBSD.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,31 +28,40 @@
* SUCH DAMAGE.
*/
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
#include "namespace.h"
-#include <sys/param.h>
-#include <sys/syscall.h>
-#include "compat-ino64.h"
-#include <unistd.h>
-
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <stddef.h>
+#include <string.h>
+#include <signal.h>
+#include <errno.h>
+#include "un-namespace.h"
#include "libc_private.h"
-#undef fstatfs
-__weak_reference(_fstatfs, fstatfs);
+int __waitid(idtype_t, id_t, siginfo_t *, int);
-#pragma weak _fstatfs
int
-_fstatfs(int fd, struct statfs *buf)
+__waitid(idtype_t idtype, id_t id, siginfo_t *info, int flags)
{
- struct freebsd11_statfs statfs11;
- int rv;
+ int status;
+ pid_t ret;
+
+ ret = INTERPOS_SYS(wait6, idtype, id, &status, flags, NULL, info);
- if (__getosreldate() >= INO64_FIRST)
- return (__sys_fstatfs(fd, buf));
- rv = syscall(SYS_freebsd11_fstatfs, fd, &statfs11);
- if (rv == 0)
- __statfs11_to_statfs(&statfs11, buf);
- return (rv);
+ /*
+ * According to SUSv4, waitid() shall not return a PID when a
+ * process is found, but only 0. If a process was actually
+ * found, siginfo_t fields si_signo and si_pid will be
+ * non-zero. In case WNOHANG was set in the flags and no
+ * process was found those fields are set to zero using
+ * memset() below.
+ */
+ if (ret == 0 && info != NULL)
+ memset(info, 0, sizeof(*info));
+ else if (ret > 0)
+ ret = 0;
+ return (ret);
}
+
+__weak_reference(__waitid, waitid);
+__weak_reference(__waitid, _waitid);
diff --git a/lib/libc/sys/waitpid.c b/lib/libc/sys/waitpid.c
new file mode 100644
index 000000000000..d8fdcec23a1c
--- /dev/null
+++ b/lib/libc/sys/waitpid.c
@@ -0,0 +1,50 @@
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1988, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. 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.
+ */
+
+#include "namespace.h"
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <sys/resource.h>
+#include "un-namespace.h"
+
+#include "libc_private.h"
+
+pid_t __waitpid(pid_t, int *, int);
+
+pid_t
+__waitpid(pid_t pid, int *istat, int options)
+{
+ return (INTERPOS_SYS(wait4, pid, istat, options, NULL));
+}
+
+__weak_reference(__waitpid, waitpid);
+__weak_reference(__waitpid, _waitpid);
diff --git a/lib/libc/sys/write.2 b/lib/libc/sys/write.2
deleted file mode 100644
index 937e95b53a14..000000000000
--- a/lib/libc/sys/write.2
+++ /dev/null
@@ -1,314 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. 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.
-.\"
-.\" @(#)write.2 8.5 (Berkeley) 4/2/94
-.\" $FreeBSD$
-.\"
-.Dd February 11, 2021
-.Dt WRITE 2
-.Os
-.Sh NAME
-.Nm write ,
-.Nm writev ,
-.Nm pwrite ,
-.Nm pwritev
-.Nd write output
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In unistd.h
-.Ft ssize_t
-.Fn write "int fd" "const void *buf" "size_t nbytes"
-.Ft ssize_t
-.Fn pwrite "int fd" "const void *buf" "size_t nbytes" "off_t offset"
-.In sys/uio.h
-.Ft ssize_t
-.Fn writev "int fd" "const struct iovec *iov" "int iovcnt"
-.Ft ssize_t
-.Fn pwritev "int fd" "const struct iovec *iov" "int iovcnt" "off_t offset"
-.Sh DESCRIPTION
-The
-.Fn write
-system call
-attempts to write
-.Fa nbytes
-of data to the object referenced by the descriptor
-.Fa fd
-from the buffer pointed to by
-.Fa buf .
-The
-.Fn writev
-system call
-performs the same action, but gathers the output data
-from the
-.Fa iovcnt
-buffers specified by the members of the
-.Fa iov
-array: iov[0], iov[1], ..., iov[iovcnt\|-\|1].
-The
-.Fn pwrite
-and
-.Fn pwritev
-system calls
-perform the same functions, but write to the specified position in
-the file without modifying the file pointer.
-.Pp
-For
-.Fn writev
-and
-.Fn pwritev ,
-the
-.Fa iovec
-structure is defined as:
-.Pp
-.Bd -literal -offset indent -compact
-struct iovec {
- void *iov_base; /* Base address. */
- size_t iov_len; /* Length. */
-};
-.Ed
-.Pp
-Each
-.Fa iovec
-entry specifies the base address and length of an area
-in memory from which data should be written.
-The
-.Fn writev
-system call
-will always write a complete area before proceeding
-to the next.
-.Pp
-On objects capable of seeking, the
-.Fn write
-starts at a position
-given by the pointer associated with
-.Fa fd ,
-see
-.Xr lseek 2 .
-Upon return from
-.Fn write ,
-the pointer is incremented by the number of bytes which were written.
-.Pp
-Objects that are not capable of seeking always write from the current
-position.
-The value of the pointer associated with such an object
-is undefined.
-.Pp
-If the real user is not the super-user, then
-.Fn write
-clears the set-user-id bit on a file.
-This prevents penetration of system security
-by a user who
-.Dq captures
-a writable set-user-id file
-owned by the super-user.
-.Pp
-When using non-blocking I/O on objects such as sockets that are subject
-to flow control,
-.Fn write
-and
-.Fn writev
-may write fewer bytes than requested;
-the return value must be noted,
-and the remainder of the operation should be retried when possible.
-.Sh RETURN VALUES
-Upon successful completion the number of bytes which were written
-is returned.
-Otherwise a -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-The
-.Fn write ,
-.Fn writev ,
-.Fn pwrite
-and
-.Fn pwritev
-system calls
-will fail and the file pointer will remain unchanged if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-The
-.Fa fd
-argument
-is not a valid descriptor open for writing.
-.It Bq Er EPIPE
-An attempt is made to write to a pipe that is not open
-for reading by any process.
-.It Bq Er EPIPE
-An attempt is made to write to a socket of type
-.Dv SOCK_STREAM
-that is not connected to a peer socket.
-.It Bq Er EFBIG
-An attempt was made to write a file that exceeds the process's
-file size limit or the maximum file size.
-.It Bq Er EFAULT
-Part of
-.Fa iov
-or data to be written to the file
-points outside the process's allocated address space.
-.It Bq Er EINVAL
-The pointer associated with
-.Fa fd
-was negative.
-.It Bq Er ENOSPC
-There is no free space remaining on the file system
-containing the file.
-.It Bq Er EDQUOT
-The user's quota of disk blocks on the file system
-containing the file has been exhausted.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EINTR
-A signal interrupted the write before it could be completed.
-.It Bq Er EAGAIN
-The file was marked for non-blocking I/O,
-and no data could be written immediately.
-.It Bq Er EROFS
-An attempt was made to write over a disk label area at the beginning
-of a slice.
-Use
-.Xr disklabel 8
-.Fl W
-to enable writing on the disk label area.
-.It Bq Er EINVAL
-The value
-.Fa nbytes
-is greater than
-.Dv SSIZE_MAX
-(or greater than
-.Dv INT_MAX ,
-if the sysctl
-.Va debug.iosize_max_clamp
-is non-zero).
-.It Bq Er EINTEGRITY
-The backing store for
-.Fa fd
-detected corrupted data while reading.
-(For example, writing a partial filesystem block may require first reading
-the existing block which may trigger this error.)
-.El
-.Pp
-In addition,
-.Fn writev
-and
-.Fn pwritev
-may return one of the following errors:
-.Bl -tag -width Er
-.It Bq Er EDESTADDRREQ
-The destination is no longer available when writing to a
-.Ux
-domain datagram socket on which
-.Xr connect 2
-had been used to set a destination address.
-.It Bq Er EINVAL
-The
-.Fa iovcnt
-argument
-was less than or equal to 0, or greater than
-.Dv IOV_MAX .
-.It Bq Er EINVAL
-One of the
-.Fa iov_len
-values in the
-.Fa iov
-array was negative.
-.It Bq Er EINVAL
-The sum of the
-.Fa iov_len
-values is greater than
-.Dv SSIZE_MAX
-(or greater than
-.Dv INT_MAX ,
-if the sysctl
-.Va debug.iosize_max_clamp
-is non-zero).
-.It Bq Er ENOBUFS
-The mbuf pool has been completely exhausted when writing to a socket.
-.El
-.Pp
-The
-.Fn pwrite
-and
-.Fn pwritev
-system calls may also return the following errors:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-The
-.Fa offset
-value was negative.
-.It Bq Er ESPIPE
-The file descriptor is associated with a pipe, socket, or FIFO.
-.El
-.Sh SEE ALSO
-.Xr fcntl 2 ,
-.Xr lseek 2 ,
-.Xr open 2 ,
-.Xr pipe 2 ,
-.Xr select 2
-.Sh STANDARDS
-The
-.Fn write
-system call is expected to conform to
-.St -p1003.1-90 .
-The
-.Fn writev
-and
-.Fn pwrite
-system calls are expected to conform to
-.St -xpg4.2 .
-.Sh HISTORY
-The
-.Fn pwritev
-system call appeared in
-.Fx 6.0 .
-The
-.Fn pwrite
-function appeared in
-.At V.4 .
-The
-.Fn writev
-system call appeared in
-.Bx 4.2 .
-The
-.Fn write
-function appeared in
-.At v1 .
-.Sh BUGS
-The
-.Fn pwrite
-system call appends the file without changing the file offset if
-.Dv O_APPEND
-is set, contrary to
-.St -p1003.1-2008
-where
-.Fn pwrite
-writes into
-.Fa offset
-regardless of whether
-.Dv O_APPEND
-is set.
diff --git a/lib/libc/sys/write.c b/lib/libc/sys/write.c
index ffb1aa5ffba7..5880856b8af8 100644
--- a/lib/libc/sys/write.c
+++ b/lib/libc/sys/write.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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>
@@ -44,7 +40,5 @@ __weak_reference(__sys_write, __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));
+ return (INTERPOS_SYS(write, fd, buf, nbytes));
}
diff --git a/lib/libc/sys/writev.c b/lib/libc/sys/writev.c
index 20b10053dc59..9a32cb603ab8 100644
--- a/lib/libc/sys/writev.c
+++ b/lib/libc/sys/writev.c
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2014 The FreeBSD Foundation.
- * All rights reserved.
*
* Portions of this software were developed by Konstantin Belousov
* under sponsorship from the FreeBSD Foundation.
@@ -30,9 +29,6 @@
* 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/uio.h>
@@ -45,7 +41,5 @@ __weak_reference(__sys_writev, __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));
+ return (INTERPOS_SYS(writev, fd, iov, iovcnt));
}