summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Tobias Quathamer <toddy@debian.org>2020-11-05 10:05:30 +0100
committerDr. Tobias Quathamer <toddy@debian.org>2020-11-05 10:05:30 +0100
commite5f2cf9b260316de93ac8c6475d03c56c749d319 (patch)
treee5d1aaed2b365f95578e580b9d4e69e945666307
parent2b10524de3cc00c706e2472f01356cde7de45e9e (diff)
New upstream version 5.09
-rw-r--r--Changes884
-rw-r--r--Changes.old340
-rw-r--r--Makefile2
-rw-r--r--man-pages-5.09.Announce (renamed from man-pages-5.08.Announce)2
-rw-r--r--man-pages-5.09.lsm (renamed from man-pages-5.08.lsm)6
-rw-r--r--man1/getent.12
-rw-r--r--man1/iconv.12
-rw-r--r--man1/intro.12
-rw-r--r--man1/ldd.130
-rw-r--r--man1/locale.12
-rw-r--r--man1/localedef.12
-rw-r--r--man1/memusage.140
-rw-r--r--man1/memusagestat.12
-rw-r--r--man1/mtrace.12
-rw-r--r--man1/pldd.16
-rw-r--r--man1/sprof.120
-rw-r--r--man1/time.12
-rw-r--r--man2/_exit.26
-rw-r--r--man2/_syscall.22
-rw-r--r--man2/accept.22
-rw-r--r--man2/access.26
-rw-r--r--man2/acct.26
-rw-r--r--man2/add_key.27
-rw-r--r--man2/adjtimex.26
-rw-r--r--man2/alarm.22
-rw-r--r--man2/alloc_hugepages.22
-rw-r--r--man2/arch_prctl.22
-rw-r--r--man2/bdflush.22
-rw-r--r--man2/bind.212
-rw-r--r--man2/bpf.212
-rw-r--r--man2/brk.26
-rw-r--r--man2/cacheflush.22
-rw-r--r--man2/capget.22
-rw-r--r--man2/chdir.26
-rw-r--r--man2/chmod.27
-rw-r--r--man2/chown.26
-rw-r--r--man2/chroot.26
-rw-r--r--man2/clock_getres.227
-rw-r--r--man2/clock_nanosleep.26
-rw-r--r--man2/clone.228
-rw-r--r--man2/close.22
-rw-r--r--man2/connect.23
-rw-r--r--man2/copy_file_range.24
-rw-r--r--man2/create_module.22
-rw-r--r--man2/delete_module.22
-rw-r--r--man2/dup.212
-rw-r--r--man2/epoll_create.22
-rw-r--r--man2/epoll_ctl.29
-rw-r--r--man2/epoll_wait.22
-rw-r--r--man2/eventfd.212
-rw-r--r--man2/execve.26
-rw-r--r--man2/execveat.22
-rw-r--r--man2/exit_group.22
-rw-r--r--man2/fallocate.22
-rw-r--r--man2/fanotify_init.2120
-rw-r--r--man2/fanotify_mark.254
-rw-r--r--man2/fcntl.22
-rw-r--r--man2/flock.22
-rw-r--r--man2/fork.22
-rw-r--r--man2/fsync.26
-rw-r--r--man2/futex.259
-rw-r--r--man2/futimesat.26
-rw-r--r--man2/get_kernel_syms.22
-rw-r--r--man2/get_mempolicy.22
-rw-r--r--man2/get_robust_list.22
-rw-r--r--man2/getcpu.22
-rw-r--r--man2/getcwd.22
-rw-r--r--man2/getdents.228
-rw-r--r--man2/getdomainname.26
-rw-r--r--man2/getgid.22
-rw-r--r--man2/getgroups.26
-rw-r--r--man2/gethostname.26
-rw-r--r--man2/getitimer.22
-rw-r--r--man2/getpagesize.26
-rw-r--r--man2/getpeername.22
-rw-r--r--man2/getpid.211
-rw-r--r--man2/getpriority.22
-rw-r--r--man2/getrandom.22
-rw-r--r--man2/getresuid.22
-rw-r--r--man2/getrlimit.217
-rw-r--r--man2/getrusage.22
-rw-r--r--man2/getsid.26
-rw-r--r--man2/getsockname.22
-rw-r--r--man2/getsockopt.22
-rw-r--r--man2/gettid.22
-rw-r--r--man2/gettimeofday.26
-rw-r--r--man2/getuid.22
-rw-r--r--man2/getunwind.22
-rw-r--r--man2/getxattr.22
-rw-r--r--man2/idle.22
-rw-r--r--man2/init_module.22
-rw-r--r--man2/inotify_add_watch.22
-rw-r--r--man2/inotify_init.22
-rw-r--r--man2/inotify_rm_watch.22
-rw-r--r--man2/intro.25
-rw-r--r--man2/io_cancel.22
-rw-r--r--man2/io_destroy.22
-rw-r--r--man2/io_getevents.22
-rw-r--r--man2/io_setup.22
-rw-r--r--man2/io_submit.24
-rw-r--r--man2/ioctl.22
-rw-r--r--man2/ioctl_console.22
-rw-r--r--man2/ioctl_fat.216
-rw-r--r--man2/ioctl_ficlonerange.22
-rw-r--r--man2/ioctl_fideduperange.22
-rw-r--r--man2/ioctl_fslabel.24
-rw-r--r--man2/ioctl_getfsmap.22
-rw-r--r--man2/ioctl_iflags.22
-rw-r--r--man2/ioctl_ns.221
-rw-r--r--man2/ioctl_tty.22
-rw-r--r--man2/ioctl_userfaultfd.212
-rw-r--r--man2/ioperm.22
-rw-r--r--man2/iopl.22
-rw-r--r--man2/ioprio_set.22
-rw-r--r--man2/ipc.22
-rw-r--r--man2/kcmp.215
-rw-r--r--man2/kexec_load.22
-rw-r--r--man2/keyctl.226
-rw-r--r--man2/kill.26
-rw-r--r--man2/link.212
-rw-r--r--man2/listen.22
-rw-r--r--man2/listxattr.22
-rw-r--r--man2/llseek.22
-rw-r--r--man2/lookup_dcookie.22
-rw-r--r--man2/lseek.22
-rw-r--r--man2/madvise.26
-rw-r--r--man2/mbind.22
-rw-r--r--man2/membarrier.215
-rw-r--r--man2/memfd_create.29
-rw-r--r--man2/migrate_pages.22
-rw-r--r--man2/mincore.26
-rw-r--r--man2/mkdir.26
-rw-r--r--man2/mknod.26
-rw-r--r--man2/mlock.22
-rw-r--r--man2/mmap.24
-rw-r--r--man2/mmap2.22
-rw-r--r--man2/modify_ldt.22
-rw-r--r--man2/mount.26
-rw-r--r--man2/move_pages.22
-rw-r--r--man2/mprotect.212
-rw-r--r--man2/mq_getsetattr.24
-rw-r--r--man2/mq_notify.22
-rw-r--r--man2/mq_open.22
-rw-r--r--man2/mq_timedreceive.22
-rw-r--r--man2/mq_timedsend.22
-rw-r--r--man2/mq_unlink.22
-rw-r--r--man2/mremap.22
-rw-r--r--man2/msgctl.26
-rw-r--r--man2/msgget.22
-rw-r--r--man2/msgop.215
-rw-r--r--man2/msync.22
-rw-r--r--man2/nanosleep.26
-rw-r--r--man2/nfsservctl.26
-rw-r--r--man2/nice.26
-rw-r--r--man2/open.220
-rw-r--r--man2/open_by_handle_at.224
-rw-r--r--man2/openat2.220
-rw-r--r--man2/outb.252
-rw-r--r--man2/pause.22
-rw-r--r--man2/pciconfig_read.22
-rw-r--r--man2/perf_event_open.266
-rw-r--r--man2/perfmonctl.22
-rw-r--r--man2/personality.22
-rw-r--r--man2/pidfd_getfd.22
-rw-r--r--man2/pidfd_open.24
-rw-r--r--man2/pidfd_send_signal.22
-rw-r--r--man2/pipe.22
-rw-r--r--man2/pivot_root.26
-rw-r--r--man2/pkey_alloc.22
-rw-r--r--man2/poll.22
-rw-r--r--man2/posix_fadvise.26
-rw-r--r--man2/prctl.22
-rw-r--r--man2/pread.26
-rw-r--r--man2/process_vm_readv.26
-rw-r--r--man2/ptrace.242
-rw-r--r--man2/query_module.22
-rw-r--r--man2/quotactl.24
-rw-r--r--man2/read.22
-rw-r--r--man2/readahead.22
-rw-r--r--man2/readdir.22
-rw-r--r--man2/readlink.28
-rw-r--r--man2/readv.26
-rw-r--r--man2/reboot.22
-rw-r--r--man2/recv.210
-rw-r--r--man2/recvmmsg.210
-rw-r--r--man2/remap_file_pages.22
-rw-r--r--man2/removexattr.22
-rw-r--r--man2/rename.26
-rw-r--r--man2/request_key.29
-rw-r--r--man2/restart_syscall.22
-rw-r--r--man2/rmdir.22
-rw-r--r--man2/rt_sigqueueinfo.22
-rw-r--r--man2/s390_guarded_storage.22
-rw-r--r--man2/s390_pci_mmio_write.22
-rw-r--r--man2/s390_runtime_instr.22
-rw-r--r--man2/s390_sthyi.22
-rw-r--r--man2/sched_get_priority_max.22
-rw-r--r--man2/sched_rr_get_interval.22
-rw-r--r--man2/sched_setaffinity.212
-rw-r--r--man2/sched_setattr.220
-rw-r--r--man2/sched_setparam.22
-rw-r--r--man2/sched_setscheduler.22
-rw-r--r--man2/sched_yield.22
-rw-r--r--man2/seccomp.239
-rw-r--r--man2/select.214
-rw-r--r--man2/select_tut.22
-rw-r--r--man2/semctl.22
-rw-r--r--man2/semget.22
-rw-r--r--man2/semop.28
-rw-r--r--man2/send.211
-rw-r--r--man2/sendfile.22
-rw-r--r--man2/sendmmsg.22
-rw-r--r--man2/set_mempolicy.22
-rw-r--r--man2/set_thread_area.22
-rw-r--r--man2/set_tid_address.22
-rw-r--r--man2/seteuid.26
-rw-r--r--man2/setfsgid.22
-rw-r--r--man2/setfsuid.22
-rw-r--r--man2/setgid.22
-rw-r--r--man2/setns.25
-rw-r--r--man2/setpgid.26
-rw-r--r--man2/setresuid.22
-rw-r--r--man2/setreuid.26
-rw-r--r--man2/setsid.22
-rw-r--r--man2/setuid.22
-rw-r--r--man2/setup.22
-rw-r--r--man2/setxattr.22
-rw-r--r--man2/sgetmask.22
-rw-r--r--man2/shmctl.22
-rw-r--r--man2/shmget.24
-rw-r--r--man2/shmop.22
-rw-r--r--man2/shutdown.22
-rw-r--r--man2/sigaction.28
-rw-r--r--man2/sigaltstack.26
-rw-r--r--man2/signal.22
-rw-r--r--man2/signalfd.28
-rw-r--r--man2/sigpending.26
-rw-r--r--man2/sigprocmask.26
-rw-r--r--man2/sigreturn.22
-rw-r--r--man2/sigsuspend.26
-rw-r--r--man2/sigwaitinfo.26
-rw-r--r--man2/socket.22
-rw-r--r--man2/socketcall.22
-rw-r--r--man2/socketpair.22
-rw-r--r--man2/splice.22
-rw-r--r--man2/spu_create.24
-rw-r--r--man2/spu_run.26
-rw-r--r--man2/stat.236
-rw-r--r--man2/statfs.22
-rw-r--r--man2/statx.234
-rw-r--r--man2/stime.26
-rw-r--r--man2/subpage_prot.22
-rw-r--r--man2/swapon.22
-rw-r--r--man2/symlink.26
-rw-r--r--man2/sync.26
-rw-r--r--man2/sync_file_range.22
-rw-r--r--man2/syscall.26
-rw-r--r--man2/syscalls.2136
-rw-r--r--man2/sysctl.26
-rw-r--r--man2/sysfs.22
-rw-r--r--man2/sysinfo.22
-rw-r--r--man2/syslog.22
-rw-r--r--man2/tee.22
-rw-r--r--man2/time.22
-rw-r--r--man2/timer_create.213
-rw-r--r--man2/timer_delete.26
-rw-r--r--man2/timer_getoverrun.26
-rw-r--r--man2/timer_settime.26
-rw-r--r--man2/timerfd_create.27
-rw-r--r--man2/times.22
-rw-r--r--man2/tkill.22
-rw-r--r--man2/truncate.26
-rw-r--r--man2/umask.22
-rw-r--r--man2/umount.22
-rw-r--r--man2/uname.22
-rw-r--r--man2/unimplemented.22
-rw-r--r--man2/unlink.26
-rw-r--r--man2/unshare.22
-rw-r--r--man2/uselib.22
-rw-r--r--man2/userfaultfd.215
-rw-r--r--man2/ustat.22
-rw-r--r--man2/utime.22
-rw-r--r--man2/utimensat.26
-rw-r--r--man2/vfork.26
-rw-r--r--man2/vhangup.26
-rw-r--r--man2/vm86.22
-rw-r--r--man2/vmsplice.22
-rw-r--r--man2/wait.211
-rw-r--r--man2/wait4.26
-rw-r--r--man2/write.22
-rw-r--r--man3/CIRCLEQ_ENTRY.32
-rw-r--r--man3/CIRCLEQ_HEAD.32
-rw-r--r--man3/CIRCLEQ_INIT.32
-rw-r--r--man3/CIRCLEQ_INSERT_AFTER.32
-rw-r--r--man3/CIRCLEQ_INSERT_BEFORE.32
-rw-r--r--man3/CIRCLEQ_INSERT_HEAD.32
-rw-r--r--man3/CIRCLEQ_INSERT_TAIL.32
-rw-r--r--man3/CIRCLEQ_REMOVE.32
-rw-r--r--man3/CPU_SET.38
-rw-r--r--man3/FILE.31
-rw-r--r--man3/INFINITY.32
-rw-r--r--man3/LIST_EMPTY.32
-rw-r--r--man3/LIST_ENTRY.32
-rw-r--r--man3/LIST_FIRST.32
-rw-r--r--man3/LIST_FOREACH.32
-rw-r--r--man3/LIST_HEAD.32
-rw-r--r--man3/LIST_HEAD_INITIALIZER.32
-rw-r--r--man3/LIST_INIT.32
-rw-r--r--man3/LIST_INSERT_AFTER.32
-rw-r--r--man3/LIST_INSERT_BEFORE.32
-rw-r--r--man3/LIST_INSERT_HEAD.32
-rw-r--r--man3/LIST_NEXT.32
-rw-r--r--man3/LIST_REMOVE.32
-rw-r--r--man3/MB_CUR_MAX.32
-rw-r--r--man3/MB_LEN_MAX.32
-rw-r--r--man3/SLIST_EMPTY.32
-rw-r--r--man3/SLIST_ENTRY.32
-rw-r--r--man3/SLIST_FIRST.32
-rw-r--r--man3/SLIST_FOREACH.32
-rw-r--r--man3/SLIST_HEAD.32
-rw-r--r--man3/SLIST_HEAD_INITIALIZER.32
-rw-r--r--man3/SLIST_INIT.32
-rw-r--r--man3/SLIST_INSERT_AFTER.32
-rw-r--r--man3/SLIST_INSERT_HEAD.32
-rw-r--r--man3/SLIST_NEXT.32
-rw-r--r--man3/SLIST_REMOVE.32
-rw-r--r--man3/SLIST_REMOVE_HEAD.32
-rw-r--r--man3/STAILQ_CONCAT.32
-rw-r--r--man3/STAILQ_EMPTY.32
-rw-r--r--man3/STAILQ_ENTRY.32
-rw-r--r--man3/STAILQ_FIRST.32
-rw-r--r--man3/STAILQ_FOREACH.32
-rw-r--r--man3/STAILQ_HEAD.32
-rw-r--r--man3/STAILQ_HEAD_INITIALIZER.32
-rw-r--r--man3/STAILQ_INIT.32
-rw-r--r--man3/STAILQ_INSERT_AFTER.32
-rw-r--r--man3/STAILQ_INSERT_HEAD.32
-rw-r--r--man3/STAILQ_INSERT_TAIL.32
-rw-r--r--man3/STAILQ_NEXT.32
-rw-r--r--man3/STAILQ_REMOVE.32
-rw-r--r--man3/STAILQ_REMOVE_HEAD.32
-rw-r--r--man3/TAILQ_CONCAT.32
-rw-r--r--man3/TAILQ_EMPTY.32
-rw-r--r--man3/TAILQ_ENTRY.32
-rw-r--r--man3/TAILQ_FIRST.32
-rw-r--r--man3/TAILQ_FOREACH.32
-rw-r--r--man3/TAILQ_FOREACH_REVERSE.32
-rw-r--r--man3/TAILQ_HEAD.32
-rw-r--r--man3/TAILQ_HEAD_INITIALIZER.32
-rw-r--r--man3/TAILQ_INIT.32
-rw-r--r--man3/TAILQ_INSERT_AFTER.32
-rw-r--r--man3/TAILQ_INSERT_BEFORE.32
-rw-r--r--man3/TAILQ_INSERT_HEAD.32
-rw-r--r--man3/TAILQ_INSERT_TAIL.32
-rw-r--r--man3/TAILQ_LAST.32
-rw-r--r--man3/TAILQ_NEXT.32
-rw-r--r--man3/TAILQ_PREV.32
-rw-r--r--man3/TAILQ_REMOVE.32
-rw-r--r--man3/TAILQ_SWAP.32
-rw-r--r--man3/__ppc_get_timebase.32
-rw-r--r--man3/__ppc_set_ppr_med.32
-rw-r--r--man3/__ppc_yield.32
-rw-r--r--man3/__setfpucw.32
-rw-r--r--man3/a64l.36
-rw-r--r--man3/abort.32
-rw-r--r--man3/abs.312
-rw-r--r--man3/acos.36
-rw-r--r--man3/acosh.36
-rw-r--r--man3/addseverity.36
-rw-r--r--man3/adjtime.36
-rw-r--r--man3/aio_cancel.32
-rw-r--r--man3/aio_error.32
-rw-r--r--man3/aio_fsync.32
-rw-r--r--man3/aio_init.32
-rw-r--r--man3/aio_read.32
-rw-r--r--man3/aio_return.32
-rw-r--r--man3/aio_suspend.32
-rw-r--r--man3/aio_write.32
-rw-r--r--man3/aiocb.31
-rw-r--r--man3/alloca.32
-rw-r--r--man3/argz_add.312
-rw-r--r--man3/asin.36
-rw-r--r--man3/asinh.36
-rw-r--r--man3/asprintf.32
-rw-r--r--man3/assert.32
-rw-r--r--man3/assert_perror.32
-rw-r--r--man3/atan.36
-rw-r--r--man3/atan2.36
-rw-r--r--man3/atanh.36
-rw-r--r--man3/atexit.32
-rw-r--r--man3/atof.32
-rw-r--r--man3/atoi.36
-rw-r--r--man3/backtrace.38
-rw-r--r--man3/basename.32
-rw-r--r--man3/bcmp.32
-rw-r--r--man3/bcopy.32
-rw-r--r--man3/bindresvport.32
-rw-r--r--man3/bsd_signal.36
-rw-r--r--man3/bsearch.318
-rw-r--r--man3/bstring.32
-rw-r--r--man3/bswap.38
-rw-r--r--man3/btowc.32
-rw-r--r--man3/btree.32
-rw-r--r--man3/byteorder.32
-rw-r--r--man3/bzero.32
-rw-r--r--man3/cabs.32
-rw-r--r--man3/cacos.32
-rw-r--r--man3/cacosh.32
-rw-r--r--man3/canonicalize_file_name.32
-rw-r--r--man3/carg.32
-rw-r--r--man3/casin.32
-rw-r--r--man3/casinh.32
-rw-r--r--man3/catan.32
-rw-r--r--man3/catanh.32
-rw-r--r--man3/catgets.32
-rw-r--r--man3/catopen.32
-rw-r--r--man3/cbrt.36
-rw-r--r--man3/ccos.32
-rw-r--r--man3/ccosh.32
-rw-r--r--man3/ceil.36
-rw-r--r--man3/cexp.32
-rw-r--r--man3/cexp2.32
-rw-r--r--man3/cfree.36
-rw-r--r--man3/cimag.32
-rw-r--r--man3/circleq.3366
-rw-r--r--man3/clearenv.36
-rw-r--r--man3/clock.32
-rw-r--r--man3/clock_getcpuclockid.313
-rw-r--r--man3/clock_t.31
-rw-r--r--man3/clockid_t.31
-rw-r--r--man3/clog.32
-rw-r--r--man3/clog10.32
-rw-r--r--man3/clog2.32
-rw-r--r--man3/closedir.32
-rw-r--r--man3/cmsg.310
-rw-r--r--man3/confstr.36
-rw-r--r--man3/conj.32
-rw-r--r--man3/copysign.36
-rw-r--r--man3/cos.36
-rw-r--r--man3/cosh.36
-rw-r--r--man3/cpow.32
-rw-r--r--man3/cproj.32
-rw-r--r--man3/creal.32
-rw-r--r--man3/crypt.32
-rw-r--r--man3/csin.32
-rw-r--r--man3/csinh.32
-rw-r--r--man3/csqrt.32
-rw-r--r--man3/ctan.32
-rw-r--r--man3/ctanh.32
-rw-r--r--man3/ctermid.36
-rw-r--r--man3/ctime.36
-rw-r--r--man3/daemon.36
-rw-r--r--man3/dbopen.32
-rw-r--r--man3/des_crypt.32
-rw-r--r--man3/dev_t.31
-rw-r--r--man3/difftime.32
-rw-r--r--man3/dirfd.36
-rw-r--r--man3/div.36
-rw-r--r--man3/div_t.31
-rw-r--r--man3/dl_iterate_phdr.325
-rw-r--r--man3/dladdr.32
-rw-r--r--man3/dlerror.32
-rw-r--r--man3/dlinfo.311
-rw-r--r--man3/dlopen.321
-rw-r--r--man3/dlsym.32
-rw-r--r--man3/double_t.31
-rw-r--r--man3/drand48.318
-rw-r--r--man3/drand48_r.324
-rw-r--r--man3/duplocale.313
-rw-r--r--man3/dysize.36
-rw-r--r--man3/ecvt.36
-rw-r--r--man3/ecvt_r.36
-rw-r--r--man3/encrypt.339
-rw-r--r--man3/end.32
-rw-r--r--man3/endian.314
-rw-r--r--man3/envz_add.312
-rw-r--r--man3/erf.36
-rw-r--r--man3/erfc.36
-rw-r--r--man3/err.32
-rw-r--r--man3/errno.314
-rw-r--r--man3/error.32
-rw-r--r--man3/ether_aton.32
-rw-r--r--man3/euidaccess.32
-rw-r--r--man3/exec.36
-rw-r--r--man3/exit.32
-rw-r--r--man3/exp.36
-rw-r--r--man3/exp10.32
-rw-r--r--man3/exp2.36
-rw-r--r--man3/expm1.36
-rw-r--r--man3/fabs.36
-rw-r--r--man3/fclose.32
-rw-r--r--man3/fcloseall.32
-rw-r--r--man3/fdim.36
-rw-r--r--man3/fenv.32
-rw-r--r--man3/fenv_t.31
-rw-r--r--man3/ferror.36
-rw-r--r--man3/fexcept_t.31
-rw-r--r--man3/fexecve.36
-rw-r--r--man3/fflush.32
-rw-r--r--man3/ffs.312
-rw-r--r--man3/fgetc.32
-rw-r--r--man3/fgetgrent.36
-rw-r--r--man3/fgetpwent.36
-rw-r--r--man3/fgetwc.32
-rw-r--r--man3/fgetws.32
-rw-r--r--man3/finite.36
-rw-r--r--man3/float_t.31
-rw-r--r--man3/flockfile.36
-rw-r--r--man3/floor.36
-rw-r--r--man3/fma.36
-rw-r--r--man3/fmax.36
-rw-r--r--man3/fmemopen.36
-rw-r--r--man3/fmin.36
-rw-r--r--man3/fmod.36
-rw-r--r--man3/fmtmsg.32
-rw-r--r--man3/fnmatch.32
-rw-r--r--man3/fopen.36
-rw-r--r--man3/fopencookie.322
-rw-r--r--man3/fpathconf.32
-rw-r--r--man3/fpclassify.36
-rw-r--r--man3/fpurge.32
-rw-r--r--man3/fputwc.32
-rw-r--r--man3/fputws.32
-rw-r--r--man3/fread.38
-rw-r--r--man3/frexp.36
-rw-r--r--man3/fseek.32
-rw-r--r--man3/fseeko.36
-rw-r--r--man3/ftime.32
-rw-r--r--man3/ftok.32
-rw-r--r--man3/fts.32
-rw-r--r--man3/ftw.36
-rw-r--r--man3/futimes.36
-rw-r--r--man3/fwide.36
-rw-r--r--man3/gamma.36
-rw-r--r--man3/gcvt.36
-rw-r--r--man3/get_nprocs_conf.32
-rw-r--r--man3/get_phys_pages.38
-rw-r--r--man3/getaddrinfo.326
-rw-r--r--man3/getaddrinfo_a.320
-rw-r--r--man3/getauxval.32
-rw-r--r--man3/getcontext.34
-rw-r--r--man3/getcwd.36
-rw-r--r--man3/getdate.311
-rw-r--r--man3/getdirentries.36
-rw-r--r--man3/getdtablesize.36
-rw-r--r--man3/getentropy.36
-rw-r--r--man3/getenv.36
-rw-r--r--man3/getfsent.32
-rw-r--r--man3/getgrent.36
-rw-r--r--man3/getgrent_r.322
-rw-r--r--man3/getgrnam.36
-rw-r--r--man3/getgrouplist.315
-rw-r--r--man3/gethostbyname.36
-rw-r--r--man3/gethostid.36
-rw-r--r--man3/getifaddrs.39
-rw-r--r--man3/getipnodebyname.32
-rw-r--r--man3/getline.310
-rw-r--r--man3/getloadavg.36
-rw-r--r--man3/getlogin.36
-rw-r--r--man3/getmntent.36
-rw-r--r--man3/getnameinfo.36
-rw-r--r--man3/getnetent.32
-rw-r--r--man3/getnetent_r.36
-rw-r--r--man3/getopt.38
-rw-r--r--man3/getpass.36
-rw-r--r--man3/getprotoent.32
-rw-r--r--man3/getprotoent_r.311
-rw-r--r--man3/getpt.32
-rw-r--r--man3/getpw.32
-rw-r--r--man3/getpwent.36
-rw-r--r--man3/getpwent_r.318
-rw-r--r--man3/getpwnam.312
-rw-r--r--man3/getrpcent.32
-rw-r--r--man3/getrpcent_r.36
-rw-r--r--man3/getrpcport.32
-rw-r--r--man3/gets.32
-rw-r--r--man3/getservent.32
-rw-r--r--man3/getservent_r.311
-rw-r--r--man3/getspnam.36
-rw-r--r--man3/getsubopt.36
-rw-r--r--man3/getttyent.32
-rw-r--r--man3/getumask.32
-rw-r--r--man3/getusershell.36
-rw-r--r--man3/getutent.315
-rw-r--r--man3/getutmp.32
-rw-r--r--man3/getw.36
-rw-r--r--man3/getwchar.32
-rw-r--r--man3/gid_t.31
-rw-r--r--man3/glob.32
-rw-r--r--man3/gnu_get_libc_version.34
-rw-r--r--man3/grantpt.36
-rw-r--r--man3/group_member.36
-rw-r--r--man3/gsignal.36
-rw-r--r--man3/hash.32
-rw-r--r--man3/hsearch.312
-rw-r--r--man3/hypot.36
-rw-r--r--man3/iconv.32
-rw-r--r--man3/iconv_close.32
-rw-r--r--man3/iconv_open.32
-rw-r--r--man3/id_t.31
-rw-r--r--man3/if_nameindex.32
-rw-r--r--man3/if_nametoindex.32
-rw-r--r--man3/ilogb.36
-rw-r--r--man3/imaxdiv_t.31
-rw-r--r--man3/index.32
-rw-r--r--man3/inet.36
-rw-r--r--man3/inet_net_pton.36
-rw-r--r--man3/inet_ntop.32
-rw-r--r--man3/inet_pton.32
-rw-r--r--man3/initgroups.36
-rw-r--r--man3/insque.320
-rw-r--r--man3/int16_t.31
-rw-r--r--man3/int32_t.31
-rw-r--r--man3/int64_t.31
-rw-r--r--man3/int8_t.31
-rw-r--r--man3/intN_t.31
-rw-r--r--man3/intmax_t.31
-rw-r--r--man3/intptr_t.31
-rw-r--r--man3/intro.37
-rw-r--r--man3/isalpha.36
-rw-r--r--man3/isatty.32
-rw-r--r--man3/isfdtype.36
-rw-r--r--man3/isgreater.36
-rw-r--r--man3/iswalnum.32
-rw-r--r--man3/iswalpha.32
-rw-r--r--man3/iswblank.36
-rw-r--r--man3/iswcntrl.32
-rw-r--r--man3/iswctype.32
-rw-r--r--man3/iswdigit.32
-rw-r--r--man3/iswgraph.32
-rw-r--r--man3/iswlower.32
-rw-r--r--man3/iswprint.32
-rw-r--r--man3/iswpunct.32
-rw-r--r--man3/iswspace.32
-rw-r--r--man3/iswupper.32
-rw-r--r--man3/iswxdigit.32
-rw-r--r--man3/j0.36
-rw-r--r--man3/key_setsecret.32
-rw-r--r--man3/killpg.36
-rw-r--r--man3/lconv.31
-rw-r--r--man3/ldexp.36
-rw-r--r--man3/ldiv_t.31
-rw-r--r--man3/lgamma.36
-rw-r--r--man3/lio_listio.32
-rw-r--r--man3/list.3358
-rw-r--r--man3/lldiv_t.31
-rw-r--r--man3/localeconv.32
-rw-r--r--man3/lockf.36
-rw-r--r--man3/log.36
-rw-r--r--man3/log10.36
-rw-r--r--man3/log1p.36
-rw-r--r--man3/log2.36
-rw-r--r--man3/logb.36
-rw-r--r--man3/login.32
-rw-r--r--man3/lrint.320
-rw-r--r--man3/lround.320
-rw-r--r--man3/lsearch.32
-rw-r--r--man3/lseek64.38
-rw-r--r--man3/makecontext.32
-rw-r--r--man3/makedev.32
-rw-r--r--man3/mallinfo.324
-rw-r--r--man3/malloc.36
-rw-r--r--man3/malloc_get_state.34
-rw-r--r--man3/malloc_hook.38
-rw-r--r--man3/malloc_info.318
-rw-r--r--man3/malloc_stats.32
-rw-r--r--man3/malloc_trim.32
-rw-r--r--man3/malloc_usable_size.32
-rw-r--r--man3/mallopt.32
-rw-r--r--man3/matherr.32
-rw-r--r--man3/mblen.32
-rw-r--r--man3/mbrlen.32
-rw-r--r--man3/mbrtowc.32
-rw-r--r--man3/mbsinit.36
-rw-r--r--man3/mbsnrtowcs.36
-rw-r--r--man3/mbsrtowcs.32
-rw-r--r--man3/mbstowcs.39
-rw-r--r--man3/mbtowc.32
-rw-r--r--man3/mcheck.32
-rw-r--r--man3/memccpy.32
-rw-r--r--man3/memchr.36
-rw-r--r--man3/memcmp.32
-rw-r--r--man3/memcpy.32
-rw-r--r--man3/memfrob.32
-rw-r--r--man3/memmem.32
-rw-r--r--man3/memmove.32
-rw-r--r--man3/mempcpy.32
-rw-r--r--man3/memset.32
-rw-r--r--man3/mkdtemp.36
-rw-r--r--man3/mkfifo.36
-rw-r--r--man3/mkstemp.36
-rw-r--r--man3/mktemp.36
-rw-r--r--man3/modf.36
-rw-r--r--man3/mpool.32
-rw-r--r--man3/mq_close.32
-rw-r--r--man3/mq_getattr.32
-rw-r--r--man3/mq_notify.32
-rw-r--r--man3/mq_open.32
-rw-r--r--man3/mq_receive.36
-rw-r--r--man3/mq_send.36
-rw-r--r--man3/mq_unlink.32
-rw-r--r--man3/mtrace.310
-rw-r--r--man3/nan.36
-rw-r--r--man3/netlink.32
-rw-r--r--man3/newlocale.314
-rw-r--r--man3/nextafter.36
-rw-r--r--man3/nextup.32
-rw-r--r--man3/nl_langinfo.36
-rw-r--r--man3/ntp_gettime.312
-rw-r--r--man3/off_t.31
-rw-r--r--man3/offsetof.38
-rw-r--r--man3/on_exit.36
-rw-r--r--man3/open_memstream.36
-rw-r--r--man3/opendir.36
-rw-r--r--man3/openpty.32
-rw-r--r--man3/perror.317
-rw-r--r--man3/pid_t.31
-rw-r--r--man3/popen.36
-rw-r--r--man3/posix_fallocate.315
-rw-r--r--man3/posix_madvise.36
-rw-r--r--man3/posix_memalign.36
-rw-r--r--man3/posix_openpt.36
-rw-r--r--man3/posix_spawn.321
-rw-r--r--man3/pow.36
-rw-r--r--man3/pow10.32
-rw-r--r--man3/printf.334
-rw-r--r--man3/profil.36
-rw-r--r--man3/program_invocation_name.32
-rw-r--r--man3/psignal.319
-rw-r--r--man3/pthread_atfork.32
-rw-r--r--man3/pthread_attr_init.39
-rw-r--r--man3/pthread_attr_setaffinity_np.32
-rw-r--r--man3/pthread_attr_setdetachstate.32
-rw-r--r--man3/pthread_attr_setguardsize.32
-rw-r--r--man3/pthread_attr_setinheritsched.32
-rw-r--r--man3/pthread_attr_setschedparam.32
-rw-r--r--man3/pthread_attr_setschedpolicy.32
-rw-r--r--man3/pthread_attr_setscope.32
-rw-r--r--man3/pthread_attr_setsigmask_np.3156
-rw-r--r--man3/pthread_attr_setstack.36
-rw-r--r--man3/pthread_attr_setstackaddr.32
-rw-r--r--man3/pthread_attr_setstacksize.32
-rw-r--r--man3/pthread_cancel.32
-rw-r--r--man3/pthread_cleanup_push.32
-rw-r--r--man3/pthread_cleanup_push_defer_np.36
-rw-r--r--man3/pthread_create.319
-rw-r--r--man3/pthread_detach.32
-rw-r--r--man3/pthread_equal.32
-rw-r--r--man3/pthread_exit.32
-rw-r--r--man3/pthread_getattr_default_np.32
-rw-r--r--man3/pthread_getattr_np.312
-rw-r--r--man3/pthread_getcpuclockid.311
-rw-r--r--man3/pthread_join.32
-rw-r--r--man3/pthread_kill.36
-rw-r--r--man3/pthread_kill_other_threads_np.32
-rw-r--r--man3/pthread_mutex_consistent.36
-rw-r--r--man3/pthread_mutexattr_getpshared.32
-rw-r--r--man3/pthread_mutexattr_init.32
-rw-r--r--man3/pthread_mutexattr_setrobust.36
-rw-r--r--man3/pthread_rwlockattr_setkind_np.36
-rw-r--r--man3/pthread_self.32
-rw-r--r--man3/pthread_setaffinity_np.314
-rw-r--r--man3/pthread_setcancelstate.32
-rw-r--r--man3/pthread_setconcurrency.32
-rw-r--r--man3/pthread_setname_np.310
-rw-r--r--man3/pthread_setschedparam.32
-rw-r--r--man3/pthread_setschedprio.32
-rw-r--r--man3/pthread_sigmask.311
-rw-r--r--man3/pthread_sigqueue.36
-rw-r--r--man3/pthread_spin_init.36
-rw-r--r--man3/pthread_spin_lock.36
-rw-r--r--man3/pthread_testcancel.32
-rw-r--r--man3/pthread_tryjoin_np.32
-rw-r--r--man3/pthread_yield.32
-rw-r--r--man3/ptrdiff_t.31
-rw-r--r--man3/ptsname.36
-rw-r--r--man3/putenv.36
-rw-r--r--man3/putgrent.32
-rw-r--r--man3/putpwent.36
-rw-r--r--man3/puts.32
-rw-r--r--man3/putwchar.32
-rw-r--r--man3/qecvt.36
-rw-r--r--man3/qsort.314
-rw-r--r--man3/queue.31241
-rw-r--r--man3/raise.32
-rw-r--r--man3/rand.312
-rw-r--r--man3/random.314
-rw-r--r--man3/random_r.36
-rw-r--r--man3/rcmd.36
-rw-r--r--man3/re_comp.32
-rw-r--r--man3/readdir.32
-rw-r--r--man3/readdir_r.36
-rw-r--r--man3/realpath.36
-rw-r--r--man3/recno.32
-rw-r--r--man3/regex.355
-rw-r--r--man3/regex_t.31
-rw-r--r--man3/regmatch_t.31
-rw-r--r--man3/regoff_t.31
-rw-r--r--man3/remainder.36
-rw-r--r--man3/remove.32
-rw-r--r--man3/remquo.36
-rw-r--r--man3/resolver.32
-rw-r--r--man3/rewinddir.32
-rw-r--r--man3/rexec.32
-rw-r--r--man3/rint.36
-rw-r--r--man3/round.36
-rw-r--r--man3/rpc.310
-rw-r--r--man3/rpmatch.36
-rw-r--r--man3/rtime.32
-rw-r--r--man3/rtnetlink.38
-rw-r--r--man3/scalb.36
-rw-r--r--man3/scalbln.314
-rw-r--r--man3/scandir.36
-rw-r--r--man3/scanf.316
-rw-r--r--man3/sched_getcpu.36
-rw-r--r--man3/seekdir.36
-rw-r--r--man3/sem_close.32
-rw-r--r--man3/sem_destroy.32
-rw-r--r--man3/sem_getvalue.32
-rw-r--r--man3/sem_init.32
-rw-r--r--man3/sem_open.32
-rw-r--r--man3/sem_post.32
-rw-r--r--man3/sem_unlink.32
-rw-r--r--man3/sem_wait.36
-rw-r--r--man3/setaliasent.32
-rw-r--r--man3/setbuf.36
-rw-r--r--man3/setenv.36
-rw-r--r--man3/setjmp.36
-rw-r--r--man3/setlocale.32
-rw-r--r--man3/setlogmask.32
-rw-r--r--man3/setnetgrent.36
-rw-r--r--man3/shm_open.38
-rw-r--r--man3/sigabbrev_np.31
-rw-r--r--man3/sigdescr_np.31
-rw-r--r--man3/siginfo_t.31
-rw-r--r--man3/siginterrupt.36
-rw-r--r--man3/signbit.36
-rw-r--r--man3/significand.36
-rw-r--r--man3/sigpause.32
-rw-r--r--man3/sigqueue.36
-rw-r--r--man3/sigset.36
-rw-r--r--man3/sigset_t.31
-rw-r--r--man3/sigsetops.36
-rw-r--r--man3/sigval.31
-rw-r--r--man3/sigvec.36
-rw-r--r--man3/sigwait.36
-rw-r--r--man3/sin.36
-rw-r--r--man3/sincos.32
-rw-r--r--man3/sinh.36
-rw-r--r--man3/size_t.31
-rw-r--r--man3/sleep.32
-rw-r--r--man3/slist.3366
-rw-r--r--man3/sockatmark.36
-rw-r--r--man3/sqrt.36
-rw-r--r--man3/ssize_t.31
-rw-r--r--man3/stailq.3404
-rw-r--r--man3/statvfs.32
-rw-r--r--man3/stdarg.39
-rw-r--r--man3/stdin.32
-rw-r--r--man3/stdio.32
-rw-r--r--man3/stdio_ext.32
-rw-r--r--man3/stpcpy.36
-rw-r--r--man3/stpncpy.36
-rw-r--r--man3/strcasecmp.32
-rw-r--r--man3/strcat.310
-rw-r--r--man3/strchr.32
-rw-r--r--man3/strcmp.34
-rw-r--r--man3/strcoll.32
-rw-r--r--man3/strcpy.32
-rw-r--r--man3/strdup.36
-rw-r--r--man3/strerror.368
-rw-r--r--man3/strerrordesc_np.31
-rw-r--r--man3/strerrorname_np.31
-rw-r--r--man3/strfmon.36
-rw-r--r--man3/strfromd.312
-rw-r--r--man3/strfry.32
-rw-r--r--man3/strftime.312
-rw-r--r--man3/string.32
-rw-r--r--man3/strlen.32
-rw-r--r--man3/strnlen.36
-rw-r--r--man3/strpbrk.32
-rw-r--r--man3/strptime.36
-rw-r--r--man3/strsep.36
-rw-r--r--man3/strsignal.397
-rw-r--r--man3/strspn.32
-rw-r--r--man3/strstr.32
-rw-r--r--man3/strtod.328
-rw-r--r--man3/strtoimax.32
-rw-r--r--man3/strtok.311
-rw-r--r--man3/strtol.328
-rw-r--r--man3/strtoul.320
-rw-r--r--man3/strverscmp.32
-rw-r--r--man3/strxfrm.32
-rw-r--r--man3/suseconds_t.31
-rw-r--r--man3/swab.32
-rw-r--r--man3/sys_siglist.31
-rw-r--r--man3/sysconf.32
-rw-r--r--man3/syslog.36
-rw-r--r--man3/system.32
-rw-r--r--man3/sysv_signal.32
-rw-r--r--man3/tailq.3449
-rw-r--r--man3/tan.36
-rw-r--r--man3/tanh.36
-rw-r--r--man3/tcgetpgrp.32
-rw-r--r--man3/tcgetsid.32
-rw-r--r--man3/telldir.36
-rw-r--r--man3/tempnam.36
-rw-r--r--man3/termios.36
-rw-r--r--man3/tgamma.36
-rw-r--r--man3/time_t.31
-rw-r--r--man3/timegm.36
-rw-r--r--man3/timer_t.31
-rw-r--r--man3/timeradd.36
-rw-r--r--man3/timespec.31
-rw-r--r--man3/timeval.31
-rw-r--r--man3/tmpfile.32
-rw-r--r--man3/tmpnam.36
-rw-r--r--man3/toascii.36
-rw-r--r--man3/toupper.36
-rw-r--r--man3/towctrans.32
-rw-r--r--man3/towlower.36
-rw-r--r--man3/towupper.36
-rw-r--r--man3/trunc.36
-rw-r--r--man3/tsearch.318
-rw-r--r--man3/ttyname.32
-rw-r--r--man3/ttyslot.36
-rw-r--r--man3/tzset.36
-rw-r--r--man3/ualarm.36
-rw-r--r--man3/uid_t.31
-rw-r--r--man3/uint16_t.31
-rw-r--r--man3/uint32_t.31
-rw-r--r--man3/uint64_t.31
-rw-r--r--man3/uint8_t.31
-rw-r--r--man3/uintN_t.31
-rw-r--r--man3/uintmax_t.31
-rw-r--r--man3/uintptr_t.31
-rw-r--r--man3/ulimit.32
-rw-r--r--man3/undocumented.32
-rw-r--r--man3/ungetwc.32
-rw-r--r--man3/unlocked_stdio.36
-rw-r--r--man3/unlockpt.36
-rw-r--r--man3/updwtmp.32
-rw-r--r--man3/uselocale.36
-rw-r--r--man3/usleep.36
-rw-r--r--man3/va_list.31
-rw-r--r--man3/void.31
-rw-r--r--man3/wcpcpy.36
-rw-r--r--man3/wcpncpy.36
-rw-r--r--man3/wcrtomb.32
-rw-r--r--man3/wcscasecmp.36
-rw-r--r--man3/wcscat.32
-rw-r--r--man3/wcschr.32
-rw-r--r--man3/wcscmp.32
-rw-r--r--man3/wcscpy.32
-rw-r--r--man3/wcscspn.32
-rw-r--r--man3/wcsdup.36
-rw-r--r--man3/wcslen.32
-rw-r--r--man3/wcsncasecmp.36
-rw-r--r--man3/wcsncat.32
-rw-r--r--man3/wcsncmp.32
-rw-r--r--man3/wcsncpy.32
-rw-r--r--man3/wcsnlen.36
-rw-r--r--man3/wcsnrtombs.36
-rw-r--r--man3/wcspbrk.32
-rw-r--r--man3/wcsrchr.32
-rw-r--r--man3/wcsrtombs.32
-rw-r--r--man3/wcsspn.32
-rw-r--r--man3/wcsstr.32
-rw-r--r--man3/wcstoimax.32
-rw-r--r--man3/wcstok.32
-rw-r--r--man3/wcstombs.32
-rw-r--r--man3/wcswidth.32
-rw-r--r--man3/wctob.32
-rw-r--r--man3/wctomb.32
-rw-r--r--man3/wctrans.32
-rw-r--r--man3/wctype.32
-rw-r--r--man3/wcwidth.32
-rw-r--r--man3/wmemchr.32
-rw-r--r--man3/wmemcmp.32
-rw-r--r--man3/wmemcpy.32
-rw-r--r--man3/wmemmove.32
-rw-r--r--man3/wmemset.32
-rw-r--r--man3/wordexp.311
-rw-r--r--man3/wprintf.36
-rw-r--r--man3/xcrypt.32
-rw-r--r--man3/xdr.36
-rw-r--r--man3/y0.36
-rw-r--r--man4/cciss.42
-rw-r--r--man4/console_codes.42
-rw-r--r--man4/cpuid.42
-rw-r--r--man4/dsp56k.42
-rw-r--r--man4/fd.42
-rw-r--r--man4/full.42
-rw-r--r--man4/fuse.49
-rw-r--r--man4/hd.42
-rw-r--r--man4/hpsa.42
-rw-r--r--man4/initrd.42
-rw-r--r--man4/intro.42
-rw-r--r--man4/lirc.42
-rw-r--r--man4/loop.466
-rw-r--r--man4/lp.42
-rw-r--r--man4/mem.42
-rw-r--r--man4/mouse.42
-rw-r--r--man4/msr.42
-rw-r--r--man4/null.42
-rw-r--r--man4/pts.42
-rw-r--r--man4/ram.42
-rw-r--r--man4/random.42
-rw-r--r--man4/rtc.42
-rw-r--r--man4/sd.42
-rw-r--r--man4/sk98lin.42
-rw-r--r--man4/smartpqi.42
-rw-r--r--man4/st.42
-rw-r--r--man4/tty.42
-rw-r--r--man4/ttyS.42
-rw-r--r--man4/vcs.46
-rw-r--r--man4/veth.46
-rw-r--r--man4/wavelan.42
-rw-r--r--man5/acct.52
-rw-r--r--man5/charmap.52
-rw-r--r--man5/core.514
-rw-r--r--man5/dir_colors.52
-rw-r--r--man5/elf.52
-rw-r--r--man5/filesystems.52
-rw-r--r--man5/ftpusers.52
-rw-r--r--man5/gai.conf.52
-rw-r--r--man5/group.52
-rw-r--r--man5/host.conf.52
-rw-r--r--man5/hosts.52
-rw-r--r--man5/hosts.equiv.52
-rw-r--r--man5/intro.52
-rw-r--r--man5/issue.52
-rw-r--r--man5/locale.520
-rw-r--r--man5/motd.52
-rw-r--r--man5/networks.52
-rw-r--r--man5/nologin.52
-rw-r--r--man5/nscd.conf.52
-rw-r--r--man5/nss.52
-rw-r--r--man5/nsswitch.conf.52
-rw-r--r--man5/passwd.52
-rw-r--r--man5/proc.5286
-rw-r--r--man5/protocols.52
-rw-r--r--man5/repertoiremap.52
-rw-r--r--man5/resolv.conf.540
-rw-r--r--man5/rpc.52
-rw-r--r--man5/securetty.52
-rw-r--r--man5/services.52
-rw-r--r--man5/shells.52
-rw-r--r--man5/slabinfo.58
-rw-r--r--man5/sysfs.52
-rw-r--r--man5/termcap.52
-rw-r--r--man5/tmpfs.52
-rw-r--r--man5/ttytype.52
-rw-r--r--man5/tzfile.54
-rw-r--r--man5/utmp.56
-rw-r--r--man6/intro.62
-rw-r--r--man7/address_families.72
-rw-r--r--man7/aio.724
-rw-r--r--man7/armscii-8.72
-rw-r--r--man7/arp.72
-rw-r--r--man7/ascii.72
-rw-r--r--man7/attributes.72
-rw-r--r--man7/boot.72
-rw-r--r--man7/bootparam.72
-rw-r--r--man7/bpf-helpers.7457
-rw-r--r--man7/capabilities.763
-rw-r--r--man7/cgroup_namespaces.76
-rw-r--r--man7/cgroups.77
-rw-r--r--man7/charsets.72
-rw-r--r--man7/complex.72
-rw-r--r--man7/cp1251.72
-rw-r--r--man7/cp1252.72
-rw-r--r--man7/cpuset.712
-rw-r--r--man7/credentials.75
-rw-r--r--man7/ddp.72
-rw-r--r--man7/environ.72
-rw-r--r--man7/epoll.72
-rw-r--r--man7/fanotify.7227
-rw-r--r--man7/feature_test_macros.727
-rw-r--r--man7/fifo.72
-rw-r--r--man7/futex.72
-rw-r--r--man7/glob.72
-rw-r--r--man7/hier.76
-rw-r--r--man7/hostname.72
-rw-r--r--man7/icmp.72
-rw-r--r--man7/inode.72
-rw-r--r--man7/inotify.718
-rw-r--r--man7/intro.72
-rw-r--r--man7/ip.7119
-rw-r--r--man7/ipc_namespaces.72
-rw-r--r--man7/ipv6.72
-rw-r--r--man7/iso_8859-1.72
-rw-r--r--man7/iso_8859-10.72
-rw-r--r--man7/iso_8859-11.72
-rw-r--r--man7/iso_8859-13.72
-rw-r--r--man7/iso_8859-14.72
-rw-r--r--man7/iso_8859-15.72
-rw-r--r--man7/iso_8859-16.72
-rw-r--r--man7/iso_8859-2.72
-rw-r--r--man7/iso_8859-3.72
-rw-r--r--man7/iso_8859-4.72
-rw-r--r--man7/iso_8859-5.72
-rw-r--r--man7/iso_8859-6.72
-rw-r--r--man7/iso_8859-7.72
-rw-r--r--man7/iso_8859-8.72
-rw-r--r--man7/iso_8859-9.72
-rw-r--r--man7/kernel_lockdown.7129
-rw-r--r--man7/keyrings.74
-rw-r--r--man7/koi8-r.72
-rw-r--r--man7/koi8-u.72
-rw-r--r--man7/libc.72
-rw-r--r--man7/locale.74
-rw-r--r--man7/mailaddr.72
-rw-r--r--man7/man-pages.710
-rw-r--r--man7/man.710
-rw-r--r--man7/math_error.72
-rw-r--r--man7/mount_namespaces.76
-rw-r--r--man7/mq_overview.72
-rw-r--r--man7/namespaces.710
-rw-r--r--man7/netdevice.72
-rw-r--r--man7/netlink.72
-rw-r--r--man7/network_namespaces.72
-rw-r--r--man7/nptl.72
-rw-r--r--man7/numa.72
-rw-r--r--man7/operator.72
-rw-r--r--man7/packet.72
-rw-r--r--man7/path_resolution.72
-rw-r--r--man7/persistent-keyring.72
-rw-r--r--man7/pid_namespaces.76
-rw-r--r--man7/pipe.72
-rw-r--r--man7/pkeys.72
-rw-r--r--man7/posixoptions.72
-rw-r--r--man7/process-keyring.72
-rw-r--r--man7/pthreads.76
-rw-r--r--man7/pty.72
-rw-r--r--man7/queue.7157
-rw-r--r--man7/random.72
-rw-r--r--man7/raw.72
-rw-r--r--man7/regex.72
-rw-r--r--man7/rtld-audit.751
-rw-r--r--man7/rtnetlink.799
-rw-r--r--man7/sched.72
-rw-r--r--man7/sem_overview.72
-rw-r--r--man7/session-keyring.72
-rw-r--r--man7/shm_overview.72
-rw-r--r--man7/sigevent.735
-rw-r--r--man7/signal-safety.72
-rw-r--r--man7/signal.73
-rw-r--r--man7/sock_diag.715
-rw-r--r--man7/socket.726
-rw-r--r--man7/spufs.72
-rw-r--r--man7/standards.77
-rw-r--r--man7/suffixes.72
-rw-r--r--man7/symlink.72
-rw-r--r--man7/system_data_types.71872
-rw-r--r--man7/sysvipc.72
-rw-r--r--man7/tcp.72
-rw-r--r--man7/termio.72
-rw-r--r--man7/thread-keyring.72
-rw-r--r--man7/time.72
-rw-r--r--man7/time_namespaces.73
-rw-r--r--man7/udp.72
-rw-r--r--man7/udplite.72
-rw-r--r--man7/unicode.72
-rw-r--r--man7/units.72
-rw-r--r--man7/unix.777
-rw-r--r--man7/uri.72
-rw-r--r--man7/user-keyring.72
-rw-r--r--man7/user-session-keyring.72
-rw-r--r--man7/user_namespaces.739
-rw-r--r--man7/utf-8.72
-rw-r--r--man7/uts_namespaces.72
-rw-r--r--man7/vdso.72
-rw-r--r--man7/vsock.72
-rw-r--r--man7/x25.72
-rw-r--r--man7/xattr.72
-rw-r--r--man8/iconvconfig.82
-rw-r--r--man8/intro.82
-rw-r--r--man8/ld.so.86
-rw-r--r--man8/ldconfig.82
-rw-r--r--man8/nscd.82
-rw-r--r--man8/sln.82
-rw-r--r--man8/tzselect.82
-rw-r--r--man8/zdump.82
-rw-r--r--man8/zic.82
-rw-r--r--proj.man-pages.desc2
-rw-r--r--proj.man-pages.pages69
-rwxr-xr-xscripts/FIXME_list.sh8
-rwxr-xr-xscripts/man_show_fixme.sh8
1189 files changed, 9655 insertions, 4700 deletions
diff --git a/Changes b/Changes
index 36e6f61d1..b5b510ffb 100644
--- a/Changes
+++ b/Changes
@@ -1,6 +1,6 @@
-==================== Changes in man-pages-5.08 ====================
+==================== Changes in man-pages-5.09 ====================
-Released: 2020-08-13, Munich
+Released: 2020-11-01, Munich
Contributors
@@ -12,327 +12,767 @@ incorporated in changes in this release:
Alejandro Colomar <colomar.6.4.3@gmail.com>
Aleksa Sarai <cyphar@cyphar.com>
-Alyssa Ross <hi@alyssa.is>
-Andrew Price <anprice@redhat.com>
-Andy Lutomirski <luto@kernel.org>
-Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
-Benjamin Peterson <benjamin@python.org>
-Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
-Bruno Haible <bruno@clisp.org>
+Alexey Budankov <alexey.budankov@linux.intel.com>
+Amir Goldstein <amir73il@gmail.com>
Carlos O'Donell <carlos@redhat.com>
-Catalin Marinas <catalin.marinas@arm.com>
-Dan Kenigsberg <danken@redhat.com>
Dave Martin <Dave.Martin@arm.com>
-Diogo Miguel Ferreira Rodrigues <dmfrodrigues2000@gmail.com>
+David Howells <dhowells@redhat.com>
+David Laight <David.Laight@ACULAB.COM>
+Dmitry V. Levin <ldv@altlinux.org>
+Érico Rolim <erico.erc@gmail.com>
Florian Weimer <fweimer@redhat.com>
G. Branden Robinson <g.branden.robinson@gmail.com>
-Geoff Clare <gwc@opengroup.org>
-Helge Kreutzmann <debian@helgefjell.de>
+Hauke Fath <hf@spg.tu-darmstadt.de>
+Heinrich Schuchardt <xypron.glpk@gmx.de>
+henrik@optoscale.no
+Ira Weiny <ira.weiny@intel.com>
Jakub Wilk <jwilk@jwilk.net>
-Jeff Layton <jlayton@kernel.org>
-John Scott <jscott@posteo.net>
-Kumar Kartikeya Dwivedi <memxor@gmail.com>
+Jan Kara <jack@suse.cz>
+Jann Horn <jannh@google.com>
+Jing Peng <pj.hades@gmail.com>
+Jonathan Wakely <jwakely@redhat.com>
+Jonny Grant <jg@jguk.org>
+Konstantin Bukin <kbukin@gmail.com>
+Mark Mossberg <mark.mossberg@gmail.com>
+Marko Hrastovec <marko.hrastovec@gmail.com>
+Matthew Bobrowski <mbobrowski@mbobrowski.org>
Michael Kerrisk <mtk.manpages@gmail.com>
Mike Frysinger <vapier@gentoo.org>
-Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
-Philip Adams <mail@philipadams.org>
+Paul Eggert <eggert@cs.ucla.edu>
+Paul Moore <paul@paul-moore.com>
Rich Felker <dalias@libc.org>
-Saikiran Madugula <hummerbliss@gmail.com>
-Stephen Hemminger <stephen@networkplumber.org>
-Sven Hoexter <sven@stormbind.net>
-Thomas Bartelsmeier <t.bartelsmeier@gmail.com>
+Samanta Navarro <ferivoz@riseup.net>
+Serge Hallyn <serge@hallyn.com>
+Simon McVittie <smcv@collabora.com>
+Sridhar Samudrala <sridhar.samudrala@intel.com>
+Stephen Smalley <stephen.smalley.work@gmail.com>
+Steve Hilder <stevehilder@yahoo.co.uk>
Thomas Piekarski <t.piekarski@deloquencia.de>
-victorm007@yahoo.com
+Tony May <tony.may@mediakind.com>
+Tycho Andersen <tycho@tycho.ws>
+Yang Xu <xuyang2018.jy@cn.fujitsu.com>
Apologies if I missed anyone!
+New and rewritten pages
+-----------------------
+
+circleq.3
+ Alejandro Colomar
+ New page with 'circleq' content extracted from queue(3)
+
+list.3
+ Alejandro Colomar
+ New page with 'list' content extracted from queue(3)
+
+
+pthread_attr_setsigmask_np.3
+ Michael Kerrisk
+ New page for pthread_attr_setsigmask_np() + pthread_attr_getsigmask_np()
+ Add a page documenting the pthread_attr_setsigmask_np(3) and
+ pthread_attr_getsigmask_np(3) functions added in glibc 2.32.
+
+slist.3
+ Alejandro Colomar
+ New page with 'slist' content extracted from queue(3)
+
+stailq.3
+ Alejandro Colomar
+ New page with 'stailq' content extracted from queue(3)
+
+tailq.3
+ Alejandro Colomar
+ New page with 'tailq' content extracted from queue(3)
+
+system_data_types.7
+ Alejandro Colomar, Michael
+ A new page documenting a wide range of system data types.
+
+kernel_lockdown.7
+ David Howells, Heinrich Schuchardt [Michael Kerrisk]
+ New page documenting the Kernel Lockdown feature
+
+queue.7
+ Alejandro Colomar
+ Create summary page for 'queue' APIs
+ The former queue(3) page was rather unwieldy, as it attempted to
+ describe too many APIs. After splitting that content out into a
+ number of smaller pages ( circleq.3, list.3, slist.3, stailq.3,
+ and tailq.3) move the much-reduced queue(3) page, which is now
+ essentially a summary of those APIs, from Section 3 to Section 7.
+
+
Newly documented interfaces in existing pages
---------------------------------------------
-prctl.2
- Dave Martin
- Add SVE prctls (arm64)
- Add documentation for the the PR_SVE_SET_VL and PR_SVE_GET_VL
- prctls added in Linux 4.15 for arm64.
- Dave Martin [Catalin Marinas]
- Add tagged address ABI control prctls (arm64)
- Add documentation for the the PR_SET_TAGGED_ADDR_CTRL and
- PR_GET_TAGGED_ADDR_CTRL prctls added in Linux 5.4 for arm64.
+fanotify_init.2
+fanotify.7
+ Amir Goldstein [Jan Kara, Matthew Bobrowski]
+ Document FAN_REPORT_DIR_FID
-setns.2
+fanotify_init.2
+fanotify.7
+ Amir Goldstein [Jan Kara, Matthew Bobrowski]
+ Document FAN_REPORT_NAME
+
+statx.2
+ Ira Weiny
+ Add STATX_ATTR_DAX
+
+strerror.3
Michael Kerrisk
- Document the use of PID file descriptors with setns()
- Starting with Linux 5.8, setns() can take a PID file descriptor as
- an argument, and move the caller into or more of the namespaces of
- the thread referred to by that descriptor.
+ Document strerrorname_np() and strerrordesc_np()
+ strerrorname_np() and strerrordesc_np() were added in glibc 2.32.
+
+strsignal.3
+ Michael Kerrisk
+ Document sigabbrev_np() and sigdescr_np().
+ sigabbrev_np() and sigdescr_np() were added in glibc 2.32.
+
+loop.4
+ Yang Xu
+ Document LOOP_CONFIGURE ioctl
+ Yang Xu
+ Document LO_FLAGS_DIRECT_IO flag
capabilities.7
Michael Kerrisk
- Document CAP_BPF
+ Document the CAP_CHECKPOINT_RESTORE capability added in Linux 5.9
+
+ip.7
+ Stephen Smalley [Paul Moore]
+ Document IP_PASSSEC for UDP sockets
+
+ip.7
+socket.7
+ Stephen Smalley
+ Document SO_PEERSEC for AF_INET sockets
+ Sridhar Samudrala
+ Document SO_INCOMING_NAPI_ID
+
+socket.7
+unix.7
+ Stephen Smalley [Serge Hallyn, Simon McVittie]
+ Add initial description for SO_PEERSEC
+
+
+New and changed links
+---------------------
+
+aiocb.3
+clock_t.3
+clockid_t.3
+dev_t.3
+div_t.3
+double_t.3
+fenv_t.3
+fexcept_t.3
+FILE.3
+float_t.3
+gid_t.3
+id_t.3
+imaxdiv_t.3
+int8_t.3
+int16_t.3
+int32_t.3
+int64_t.3
+intN_t.3
+intmax_t.3
+intptr_t.3
+lconv.3
+ldiv_t.3
+lldiv_t.3
+off_t.3
+pid_t.3
+ptrdiff_t.3
+regex_t.3
+regmatch_t.3
+regoff_t.3
+siginfo_t.3
+sigset_t.3
+sigval.3
+size_t.3
+ssize_t.3
+suseconds_t.3
+time_t.3
+timer_t.3
+timespec.3
+timeval.3
+uid_t.3
+uint8_t.3
+uint16_t.3
+uint32_t.3
+uint64_t.3
+uintN_t.3
+uintptr_t.3
+va_list.3
+void.3
+ Alejandro Colomar, Michael kerrisk
+ New links to system_data_types(7)
+
+CIRCLEQ_ENTRY.3
+CIRCLEQ_HEAD.3
+CIRCLEQ_INIT.3
+CIRCLEQ_INSERT_AFTER.3
+CIRCLEQ_INSERT_BEFORE.3
+CIRCLEQ_INSERT_HEAD.3
+CIRCLEQ_INSERT_TAIL.3
+CIRCLEQ_REMOVE.3
+ Alejandro Colomar
+ Link to the new circleq(3) page instead of queue(3)
+
+LIST_EMPTY.3
+LIST_ENTRY.3
+LIST_FIRST.3
+LIST_FOREACH.3
+LIST_HEAD.3
+LIST_HEAD_INITIALIZER.3
+LIST_INIT.3
+LIST_INSERT_AFTER.3
+LIST_INSERT_BEFORE.3
+LIST_INSERT_HEAD.3
+LIST_NEXT.3
+LIST_REMOVE.3
+ Alejandro Colomar
+ Link to the new list.3 page instead of queue.3
+
+SLIST_EMPTY.3
+SLIST_ENTRY.3
+SLIST_FIRST.3
+SLIST_FOREACH.3
+SLIST_HEAD.3
+SLIST_HEAD_INITIALIZER.3
+SLIST_INIT.3
+SLIST_INSERT_AFTER.3
+SLIST_INSERT_HEAD.3
+SLIST_NEXT.3
+SLIST_REMOVE.3
+SLIST_REMOVE_HEAD.3
+ Alejandro Colomar
+ Link to the new slist(3) page instead of queue(3)
+
+STAILQ_CONCAT.3
+STAILQ_EMPTY.3
+STAILQ_ENTRY.3
+STAILQ_FIRST.3
+STAILQ_FOREACH.3
+STAILQ_HEAD.3
+STAILQ_HEAD_INITIALIZER.3
+STAILQ_INIT.3
+STAILQ_INSERT_AFTER.3
+STAILQ_INSERT_HEAD.3
+STAILQ_INSERT_TAIL.3
+STAILQ_NEXT.3
+STAILQ_REMOVE.3
+STAILQ_REMOVE_HEAD.3
+ Alejandro Colomar
+ Link to the new stailq(3) page instead of queue(3)
+
+TAILQ_CONCAT.3
+TAILQ_EMPTY.3
+TAILQ_ENTRY.3
+TAILQ_FIRST.3
+TAILQ_FOREACH.3
+TAILQ_FOREACH_REVERSE.3
+TAILQ_HEAD.3
+TAILQ_HEAD_INITIALIZER.3
+TAILQ_INIT.3
+TAILQ_INSERT_AFTER.3
+TAILQ_INSERT_BEFORE.3
+TAILQ_INSERT_HEAD.3
+TAILQ_INSERT_TAIL.3
+TAILQ_LAST.3
+TAILQ_NEXT.3
+TAILQ_PREV.3
+TAILQ_REMOVE.3
+TAILQ_SWAP.3
+ Alejandro Colomar
+ Link to the new tailq(3) page instead of queue(3)
+
+getcwd.2
+mq_notify.2
+mq_open.2
+mq_timedreceive.2
+mq_timedsend.2
+mq_unlink.2
+ Michael Kerrisk
+ Reinstate links to section 3 pages that document system calls
+ Some of the links removed in commit 247c654385128fd0748 should
+ have been kept, because in some cases there are real system
+ calls whose wrapper functions are documented in Section 3.
+
+queue.3
+ Alejandro Colomar
+ Link to queue(7)
+
+sigabbrev_np.3
Michael Kerrisk
- Add CAP_PERFMON
+ New link to strsignal.3
-symlink.7
- Aleksa Sarai
- Document magic links more completely
+sigdescr_np.3
+ Michael Kerrisk
+ New link to strsignal.3
+
+strerrordesc_np.3
+ Michael Kerrisk
+ New link to strerror(3)
+
+strerrorname_np.3
+ Michael Kerrisk
+ New link to strerror(3)
+
+sys_siglist.3
+ Michael Kerrisk
+ New link to strsignal(3)
Global changes
--------------
-A few pages
+Various pages
+ Alejandro Colomar
+ Use ``sizeof`` consistently through all the examples in the
+ following way:
+
+ - Use the name of the variable instead of its type as argument for
+ ``sizeof``.
+
+Various pages
+ Alejandro Colomar
+ Use sizeof() to get buffer size (instead of hardcoding macro name)
+
+Various pages
Michael Kerrisk
- Use \` rather than `
- \` produces better rendering in PDF.
+ Use \(aq instead of ' inside monospace fonts
+ Use \(aq to get an unslanted single quote inside monospace code
+ blocks. Using a simple ' results in a slanted quote inside PDFs.
Various pages
- Michael Kerrisk [Geoff Clare]
- Use "\(ti" instead of "~"
- A naked tilde ("~") renders poorly in PDF. Instead use "\(ti",
- which renders better in a PDF, and produces the same glyph
- when rendering on a terminal.
+ Michael Kerrisk, Alejandro Colomar
+ Use C99 style to declare loop counter variables
+ Rather than:
+
+ sometype x;
+
+ for (x = ....; ...)
+
+ use
+
+ for (sometype x = ...; ...)
+
+ This brings the declaration and use closer together (thus aiding
+ readability) and also clearly indicates the scope of the loop
+ counter variable.
Various pages
- Michael Kerrisk [Geoff Clare]
- Use "\(ha" rather than "^" in code
- This renders better in PDF.
+ Alejandro Colomar
+ Switch printf() casts to use [u]intmax_t + %ju / %jd
+ Let's move to the 21st century. Instead of casting system data
+ types to long/long long/etc. in printf() calls, instead cast to
+ intmax_t or uintmax_t, the largest available signed/unsigned
+ integer types.
Various pages
- Mike Frysinger
- Drop "coding: UTF-8" header
- This header is used inconsistently -- man pages are UTF-8 encoded
- but not setting this marker. It's only respected by the man-db
- package, and seems a bit anachronistic at this point when UTF-8
- is the standard default nowadays.
+ Alejandro Colomar
+ Omit 'int' keyword for 'short', 'long' and 'long long' types
Various pages
- Mike Frysinger
- Trim leading blank comment line
- Very few pages do this, so trim them.
+ Alejandro Colomar
+ Remove unneeded casts
Various pages
- Mike Frysinger
- Use standard .\" comment style
- The \" comment produces blank lines. Use the .\" that the vast
- majority of the codebase uses instead.
+ Alejandro Colomar
+ In printf(): s/0x%/%#/ except when followed by X instead of x
+ Use printf()'s '#' flag character to prepend the string "0x".
+
+ However, when the number is printed in uppercase, and the prefix
+ is in lowercase, the string "0x" needs to be manually written.
Various pages
- Mike Frysinger [G. Branden Robinson]
- Various pages: Drop t comment header
- Historically, a comment of the following form at the top of a
- manual page was used to indicate too man(1) that the use of tbl(1)
- was required in order to process tables:
+ Michael Kerrisk
+ Use C99-style declarations for readability
+ Rather than writing things such as:
- '\" t
+ struct sometype *x;
+ ...
+ x = malloc(sizeof(*x));
- However, at least as far back as 2001 (according to Branden),
- man-db's man(1) automatically uses tbl(1) as needed, rendering
- this comment unnecessary. And indeed many existing pages in
- man-pages that have tables don't have this comment at the top of
- the file. So, drop the comment from those files where it is
- present.
+ let's use C99 style so that the type info is in the same line as
+ the allocation:
+
+ struct sometype *x = malloc(sizeof(*x));
+
+Various pages
+ Alejandro Colomar
+ Cast to 'unsigned long' rather than 'long' when printing with "%lx"
+
+stdarg.3
+ Alejandro Colomar
+ Declare variables with different types in different lines
+ In particular, don's mix a variable and a pointer declaration
+ on the same line: TYPE x, *p;
Changes to individual pages
---------------------------
-ioctl_tty.2
+memusage.1
Michael Kerrisk
- Fix a confusing wording error in description of TIOCSPTLCK
+ EXAMPLES: remove doubled calculations
+ The same calculations are repeated in malloc() and printf() calls.
+ For better readability, do the calculations once.
+ Michael Kerrisk
+ Use %zu rather than %zd when printing 'size_t' values
-iopl.2
- Thomas Piekarski [victorm007@yahoo.com]
- Updating description of permissions and disabling interrupts
- Update description of permissions for port-mapped I/O set
- per-thread and not per-process. Mention that iopl() can not
- disable interrupts since Linux 5.5 anymore and is in general
- deprecated and only provided for legacy X servers.
+clock_getres.2
+ Alejandro Colomar
+ EXAMPLES: use 'const' when appropriate
+ Alejandro Colomar [Jakub Wilk]
+ Cast 'time_t' to 'int' for printf() and fix the length modifiers
+ Michael Kerrisk [Tony May]
+ Fix type and variable name in dynamic clock code example
- See https://bugzilla.kernel.org/show_bug.cgi?id=205317
+clone.2
+ Michael Kerrisk
+ CAP_CHECKPOINT_RESTORE can now be used to employ 'set_tid'
-keyctl.2
- Oleksandr Kravchuk
- Declare auth_key to fix a compilation error in example code
+epoll_ctl.2
+ Michael Kerrisk
+ epoll instances can be nested to a maximum depth of 5
+ This limit appears to be an off-by-one count against
+ EP_MAX_NESTS (4).
+ Michael Kerrisk
+ Move some version info from CONFORMING TO to VERSIONS
-lseek.2
- Andrew Price
- List gfs2 support for SEEK_HOLE/SEEK_DATA
+eventfd.2
+ Alejandro Colomar
+ Use 'PRIxN' macros when printing C99 fixed-width integer types
+
+futex.2
+ Alejandro Colomar
+ Use appropriate types
+
+getdents.2
+ Alejandro Colomar
+ SYNOPSIS: add missing header and feature test macro
-mount.2
+intro.2
+intro.3
+credentials.7
+feature_test_macros.7
+standards.7
Michael Kerrisk
- ERRORS: add EINVAL for bind mount of mount namespace inode
+ SEE ALSO: add system_data_types(7)
+
+ioctl_ns.2
+stat.2
+ Alejandro Colomar [Konstantin Bukin]
+ Fix signedness of printf specifiers
+
+membarrier.2
+ Alejandro Colomar
+ Note that glibc does not provide a wrapper
+
+mprotect.2
+ Alejandro Colomar
+ Use "%p" rather than casting to 'long' when printing pointer values
+
+mq_getsetattr.2
+ Alejandro Colomar
+ Use 'const' when appropriate
+
+msgop.2
+ Yang Xu
+ Add restriction on ENOSYS error
open.2
+ Michael Kerrisk [henrik@optoscale.no]
+ ERRORS: add EBUSY
+
+openat.2
+ Alejandro Colomar
+ SYNOPSIS: return long
+ The Linux kernel uses long as the return type for this syscall.
+ As glibc provides no wrapper, use the same type the kernel uses.
+
+open_by_handle_at.2
+ Alejandro Colomar
+ Use "%u" rather than "%d" when printing 'unsigned int' values
+
+perf_event_open.2
+ Alexey Budankov
+ Update the man page with CAP_PERFMON related information
+
+recv.2
+send.2
Michael Kerrisk
- Say a bit more about what happens when 'mode' is wrongly omitted
+ Add cross references to pages with further info about ancillary data
+
+sched_getattr.2
+ Aleksa Sarai
+ Update to include changed size semantics
+
+seccomp.2
+ Michael Kerrisk [Jann Horn]
+ Warn reader that SECCOMP_RET_TRACE can be overridden
+ Highlight to the reader that if another filter returns a
+ higher-precedence action value, then the ptracer will not
+ be notified.
+ Michael Kerrisk [Rich Felker]
+ Warn against the use of SECCOMP_RET_KILL_THREAD
+ Killing a thread with SECCOMP_RET_KILL_THREAD is very likely
+ to leave the rest of the process in a broken state.
+ Michael Kerrisk [Rich Felker]
+ EXAMPLES: use SECCOMP_RET_KILL_PROCESS rather than SECCOMP_RET_KILL
+ Alejandro Colomar
+ Use ARRAY_SIZE() macro instead of raw sizeof division
-pidfd_open.2
+setns.2
+ Michael Kerrisk
+ Correct the version for time namespace support
+
+sigaction.2
+ Michael Kerrisk [Alejandro Colomar]
+ Use correct POSIX type for siginfo_t.si_value
+
+syscalls.2
Michael Kerrisk
- Add the setns(2) use case for PID file descriptors
+ Move system calls from discontinued ports out of main syscall list
+ Various ports that had their own indigenous system calls have
+ been discontinued. Remove those system calls (none of which had
+ manual pages!) to a separate part of the page, to avoid
+ cluttering the main list of system calls.
Michael Kerrisk
- Close the pidfd in EXAMPLE
- Close the PID file descriptor in the example program, to hint to
- the reader that like every other kind of file descriptor, a PID FD
- should be closed.
+ Add close_range (Linux 5.9)
-prctl.2
+timerfd_create.2
+ Alejandro Colomar
+ Use 'PRIxN' macros when printing C99 fixed-width integer types
+
+userfaultfd.2
Michael Kerrisk
- The parent death signal is cleared on some credential changes
- See kernel/cred.c::commit_creds() in the Linux 5.6 source code.
+ Use a better type (uint64_t) for 'len' in EXAMPLES
+ Alejandro Colomar
+ Use 'PRIx64' rather than "%llx" when printing 64-bit fixed-width types
-seccomp.2
- Andy Lutomirski
- Improve x32 and nr truncation notes
+argz_add.3
+envz_add.3
+ Michael Kerrisk [Jonny Grant]
+ Point out that 'error_t' is an integer type
-send.2
-recv.2
- Alyssa Ross
- Add msg_iovlen POSIX note
- msg_iovlen is incorrectly typed (according to POSIX) in addition
- to msg_controllen, but unlike msg_controllen, this wasn't
- mentioned for msg_iovlen.
+bsearch.3
+ Alejandro Colomar
+ Fix intermediate type and remove unneeded casts
-setns.2
- Michael Kerrisk
- EXAMPLE: use O_CLOEXEC when opening namespace file descriptor
+bswap.3
+ Jakub Wilk
+ Use strtoull() for parsing 64-bit numbers
+
+dlopen.3
Michael Kerrisk
- It is possible to setns() to the caller's current PID namespace
- The page currently incorrectly says that 'fd' must refer to
- a descendant PID namespace. However, 'fd' can also refer to
- the caller's current PID namespace. Verified by experiment,
- and also comments in kernel/pid_namespace.c (Linux 5.8-rc1).
+ Clarify DT_RUNPATH/DT_RPATH details
+ It is the DT_RUNPATH/DT_RPATH of the calling object (not the
+ executable) that is relevant for the library search. Verified
+ by experiment.
-sync.2
- Jeff Layton
- syncfs() now returns errors if writeback fails
- A patch has been merged for v5.8 that changes how syncfs() reports
- errors. Change the sync() manpage accordingly.
+errno.3
+ Michael Kerrisk [Alejandro Colomar]
+ Note that the pthreads APIs do not set errno
-syscalls.2
+fopencookie.3
+ Alejandro Colomar
+ printf()'s .* expects an int; cast accordingly
+ Alejandro Colomar
+ Fix bugs in example
+
+fread.3
+ Alejandro Colomar
+ Move ARRAY_SIZE logic into macro
+
+freeaddrinfo.3
+ Marko Hrastovec
+ Fix memory leaks in freeaddrinfo() examples
+
+getline.3
+ Alejandro Colomar
+ Use %zd rather than %zu when printing 'ssize_t' values
+
+lseek64.3
Michael Kerrisk
- Add faccessat2(), added in Linux 5.8
+ Since glibc 2.28. the 'llseek' symbol is no longer available
-sysctl.2
+mallinfo.3
Michael Kerrisk
- glibc removed support for sysctl() starting in version 2.32
+ The 'usmblks' field is nowadays always 0
-atoi.3
- Arkadiusz Drabczyk
- Explain disadvantages of atoi()
+offsetof.3
+ Alejandro Colomar
+ Use "%zu" rather than "%zd" when printing 'size_t' values
+
+perror.3
Michael Kerrisk
- Relocate BUGS section
+ sys_errlist and sys_nerr are no longer exposed by <stdio.h>
+ The change came with the release of glibc 2.32.
+
+posix_fallocate.3
+ Érico Rolim
+ Add EOPNOTSUPP error code.
+
+psignal.3
+strsignal.3
Michael Kerrisk
- Add NOTES section explaining 0 return value on error
- And note that this is not specified by POSIX.
+ Consolidate information on 'sys_siglist' in one page (strsignal(3))
-fread.3
- Arkadiusz Drabczyk
- Add example
- Arkadiusz Drabczyk
- Explain that file position is moved after calling fread()/fwrite()
- Corresponding manpage on FreeBSD already contains that
- information.
+pthread_attr_init.3
+ Michael Kerrisk
+ SEE ALSO: add pthread_attr_init(3)
-getpt.3
-posix_openpt.3
-pts.4
+pthread_attr_init.3
+pthread_create.3
+pthread_getattr_np.3
Michael Kerrisk
- Use the term "pseudoterminal multiplexor device" for /dev/ptmx
- Let's use some consistent terminology for this device.
+ Use correct type (size_t) for some variables
-posix_memalign.3
- Bruno Haible
- Clarify how to free the result of posix_memalign
+pthread_getattr_np.3
+ Alejandro Colomar
+ Use "%zu" and "%zx" when printing 'size_t' values
-pthread_rwlockattr_setkind_np.3
- Carlos O'Donell [Kumar Kartikeya Dwivedi]
- Clarify a PTHREAD_RWLOCK_PREFER_WRITER_NP detail
+pthread_sigmask.3
+ Michael Kerrisk
+ SEE ALSO: add pthread_attr_setsigmask_np(3)
-queue.3
+qsort.3
+ Alejandro Colomar
+ Fix casts
+ Alejandro Colomar
+ SYNOPSIS: move code from queue.3 to stailq.3
+
+regex.3
Alejandro Colomar
- Remove wrong code from example
+ Add example program
Alejandro Colomar
- Comment out text for functions not in glibc (related: 6559169cac)
+ Remove unnecessary include
-pts.4
+strsignal.3
+ Michael Kerrisk [Hauke Fath]
+ Note that starting with v2.32, glibc no longer exports 'sys_siglist'
Michael Kerrisk
- Remove NOTES on BSD pseudoterminals
- This information is already covered better in pty(7). No need to
- mention it again here.
+ Further addition on version range for sys_siglist
+ Michael Kerrisk
+ Note that 'sys_siglist' is nonstandard
+
+strtod.3
+ Jonathan Wakely
+ Fix return value for underflow
+
+strtol.3
+ Alejandro Colomar
+ EXAMPLES: simplify errno checking
+ Alejandro Colomar
+ EXAMPLES: as the default base, use special value 0
+ Alejandro Colomar
+ EXAMPLES: delimit output string using ""
-hosts.5
- Thomas Bartelsmeier
- Clarify capability for IPv6 outside of examples
- Resolves https://bugzilla.kernel.org/show_bug.cgi?id=208279
+tsearch.3
+ Alejandro Colomar
+ Simplify type usage and remove unneeded casts
+ Alejandro Colomar
+ Use size_t for malloc() argument
+
+loop.4
+ Yang Xu
+ Add some details about lo_flags
+
+core.5
+ Alejandro Colomar
+ Use adequate type
+
+locale.5
+ Florian Weimer
+ Decimal points, thousands separators must be one character
proc.5
- Jakub Wilk
- Use "pwd -P" for printing cwd
- "/bin/pwd" happens to work with the GNU coreutils implementation,
- which has -P as the default, contrary to POSIX requirements.
+ Michael Kerrisk
+ Update capability requirements for accessing /proc/[pid]/map_files
+ Jann Horn [Mark Mossberg]
+ Document inaccurate RSS due to SPLIT_RSS_COUNTING
+ Michael Kerrisk
+ Note "open file description" as (better) synonym for "file handle"
+
+resolv.5
+ Florian Weimer
+ Document the trust-ad option
- Use "pwd -P" instead, which is shorter, easier to type, and should
- work everywhere.
- Arkadiusz Drabczyk
- Inform that comm in /proc/pid/{stat,status} might also be truncated
- pgrep for example searches for a process name in /proc/pid/status
+aio.7
+ Alejandro Colomar
+ Use perror() directly
-resolv.conf.5
- Michael Kerrisk [Helge Kreutzmann]
- Clarify that ip6-bytestring was removed in 2.25
+bpf-helpers.7
+ Michael Kerrisk [Jakub Wilk]
+ Resync with current kernel source
capabilities.7
- Dan Kenigsberg
- Clarify that CAP_SYS_NICE relates to *lowering* the nice value
- Saikiran Madugula
- CAP_SYS_RESOURCE: add two more items for POSIX message queues
- CAP_SYS_RESOURCE also allows overriding /proc/sys/fs/mqueue/msg_max
- and /proc/sys/fs/mqueue/msgsize_max.
- Michael Kerrisk [Dan Kenigsberg]
- Clarify wording around increasing process nice value
- Michael Kerrisk
- SEE ALSO: add getpcaps(8)
-
-cgroups.7
-cpuset.7
- Sven Hoexter
- Update kernel cgroup documentation references
- cgroups-v1/v2 documentation got moved to the "admin-guide" subfolder
- and converted from .txt files to .rst
+ Michael Kerrisk
+ Under CAP_SYS_ADMIN, group "sub-capabilities" together
+ CAP_BPF, CAP_PERFMON, and CAP_CHECKPOINT_RESTORE have all been
+ added to split out the power of CAP_SYS_ADMIN into weaker pieces.
+ Group all of these capabilities together in the list under
+ CAP_SYS_ADMIN, to make it clear that there is a pattern to these
+ capabilities.
+ Michael Kerrisk
+ CAP_SYS_ADMIN implies CAP_CHECKPOINT_RESTORE
+ But the latter, weaker capability is preferred.
+ Michael Kerrisk
+ Add kernel doc reference for CAP_PERFMON
-ip.7
- Michael Kerrisk [Stephen Hemminger]
- Remove mention of ipfw(4) which was in long obsolete ipchains project
+fanotify.7
+ Alejandro Colomar
+ Pass array to read(2) directly instead of a pointer to it
+
+fanotify.7
+fanotify_mark.2
+ Amir Goldstein [Jan Kara, Matthew Bobrowski]
+ Generalize documentation of FAN_REPORT_FID
+
+feature_test_macros.7
+ Jakub Wilk
+ Update list of macros that inhibit default definitions
+
+man.7
+ Michael Kerrisk [G. Branden Robinson]
+ Clarify that alternating typeface macros print arguments without spaces
man-pages.7
Michael Kerrisk
- Add some notes on generating optimal glyphs
- Getting nice renderings of ^ ` and ~ requires special
- steps in the page source.
+ Add some more requests re code examples
+ Michael Kerrisk
+ Soften the statement that ideal programs should be short
-pty.7
+namespaces.7
Michael Kerrisk
- Explicitly mention CONFIG_LEGACY_PTYS
- Explicitly mention CONFIG_LEGACY_PTYS, and note that it is disabled
- by default since Linux 2.6.30.
+ A 'time_for_children' symlink can also pin a namespace
+
+pid_namespaces.7
Michael Kerrisk
- Relocate a paragraph to NOTES
+ Update capability requirements for /proc/sys/kernel/ns_last_pid
-standards.7
+pthreads.7
Michael Kerrisk
- Add an entry for POSIX.1-1988
- Michael Kerrisk [Geoff Clare]
- Correct various details in the explanation of XPG/POSIX/SUS
+ Explicitly note that pthreads APIs return an errno-style value on error
-ld.so.8
- Florian Weimer [Michael Kerrisk]
- List more places in which dynamic string tokens are expanded
- This happens for more than just DT_RPATH/DT_RUNPATH.
- Arkadiusz Drabczyk
- Explain that empty entry in LD_LIBRARY_PATH means cwd
+rtld-audit.7
+ Florian Weimer [Carlos O'Donell]
+ Clarify la_version handshake
+ Returning its argument without further checks is almost always
+ wrong for la_version.
+ Alejandro Colomar
+ Use "%u" rather than "%d" when printing 'unsigned int' values
+
+sigevent.7
+ Michael Kerrisk
+ Note that 'sigev_notify_thread_id' is Linux-specific
-zic.8
+socket.7
Michael Kerrisk
- Sync to 2020a tzdb release
- From https://www.iana.org/time-zones, version 2020a.
+ SEE ALSO: add ipv6(7)
diff --git a/Changes.old b/Changes.old
index 0e67fe3c8..23df1cd06 100644
--- a/Changes.old
+++ b/Changes.old
@@ -51867,3 +51867,343 @@ zdump.8
Michael Kerrisk [Marco Curreli, Paul Eggert]
Update to latest upstream tz release
Look under "Latest version", which is 2020a.
+
+
+==================== Changes in man-pages-5.08 ====================
+
+Released: 2020-08-13, Munich
+
+
+Contributors
+------------
+
+The following people contributed patches/fixes or (noted in brackets
+in the changelog below) reports, notes, and ideas that have been
+incorporated in changes in this release:
+
+Alejandro Colomar <colomar.6.4.3@gmail.com>
+Aleksa Sarai <cyphar@cyphar.com>
+Alyssa Ross <hi@alyssa.is>
+Andrew Price <anprice@redhat.com>
+Andy Lutomirski <luto@kernel.org>
+Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
+Benjamin Peterson <benjamin@python.org>
+Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+Bruno Haible <bruno@clisp.org>
+Carlos O'Donell <carlos@redhat.com>
+Catalin Marinas <catalin.marinas@arm.com>
+Dan Kenigsberg <danken@redhat.com>
+Dave Martin <Dave.Martin@arm.com>
+Diogo Miguel Ferreira Rodrigues <dmfrodrigues2000@gmail.com>
+Florian Weimer <fweimer@redhat.com>
+G. Branden Robinson <g.branden.robinson@gmail.com>
+Geoff Clare <gwc@opengroup.org>
+Helge Kreutzmann <debian@helgefjell.de>
+Jakub Wilk <jwilk@jwilk.net>
+Jeff Layton <jlayton@kernel.org>
+John Scott <jscott@posteo.net>
+Kumar Kartikeya Dwivedi <memxor@gmail.com>
+Michael Kerrisk <mtk.manpages@gmail.com>
+Mike Frysinger <vapier@gentoo.org>
+Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
+Philip Adams <mail@philipadams.org>
+Rich Felker <dalias@libc.org>
+Saikiran Madugula <hummerbliss@gmail.com>
+Stephen Hemminger <stephen@networkplumber.org>
+Sven Hoexter <sven@stormbind.net>
+Thomas Bartelsmeier <t.bartelsmeier@gmail.com>
+Thomas Piekarski <t.piekarski@deloquencia.de>
+victorm007@yahoo.com
+
+Apologies if I missed anyone!
+
+
+Newly documented interfaces in existing pages
+---------------------------------------------
+
+prctl.2
+ Dave Martin
+ Add SVE prctls (arm64)
+ Add documentation for the PR_SVE_SET_VL and PR_SVE_GET_VL
+ prctls added in Linux 4.15 for arm64.
+ Dave Martin [Catalin Marinas]
+ Add tagged address ABI control prctls (arm64)
+ Add documentation for the PR_SET_TAGGED_ADDR_CTRL and
+ PR_GET_TAGGED_ADDR_CTRL prctls added in Linux 5.4 for arm64.
+
+setns.2
+ Michael Kerrisk
+ Document the use of PID file descriptors with setns()
+ Starting with Linux 5.8, setns() can take a PID file descriptor as
+ an argument, and move the caller into or more of the namespaces of
+ the thread referred to by that descriptor.
+
+capabilities.7
+ Michael Kerrisk
+ Document CAP_BPF
+ Michael Kerrisk
+ Add CAP_PERFMON
+
+symlink.7
+ Aleksa Sarai
+ Document magic links more completely
+
+
+Global changes
+--------------
+
+A few pages
+ Michael Kerrisk
+ Use \` rather than `
+ \` produces better rendering in PDF.
+
+Various pages
+ Michael Kerrisk [Geoff Clare]
+ Use "\(ti" instead of "~"
+ A naked tilde ("~") renders poorly in PDF. Instead use "\(ti",
+ which renders better in a PDF, and produces the same glyph
+ when rendering on a terminal.
+
+Various pages
+ Michael Kerrisk [Geoff Clare]
+ Use "\(ha" rather than "^" in code
+ This renders better in PDF.
+
+Various pages
+ Mike Frysinger
+ Drop "coding: UTF-8" header
+ This header is used inconsistently -- man pages are UTF-8 encoded
+ but not setting this marker. It's only respected by the man-db
+ package, and seems a bit anachronistic at this point when UTF-8
+ is the standard default nowadays.
+
+Various pages
+ Mike Frysinger
+ Trim leading blank comment line
+ Very few pages do this, so trim them.
+
+Various pages
+ Mike Frysinger
+ Use standard .\" comment style
+ The \" comment produces blank lines. Use the .\" that the vast
+ majority of the codebase uses instead.
+
+Various pages
+ Mike Frysinger [G. Branden Robinson]
+ Various pages: Drop t comment header
+ Historically, a comment of the following form at the top of a
+ manual page was used to indicate too man(1) that the use of tbl(1)
+ was required in order to process tables:
+
+ '\" t
+
+ However, at least as far back as 2001 (according to Branden),
+ man-db's man(1) automatically uses tbl(1) as needed, rendering
+ this comment unnecessary. And indeed many existing pages in
+ man-pages that have tables don't have this comment at the top of
+ the file. So, drop the comment from those files where it is
+ present.
+
+
+Changes to individual pages
+---------------------------
+
+ioctl_tty.2
+ Michael Kerrisk
+ Fix a confusing wording error in description of TIOCSPTLCK
+
+iopl.2
+ Thomas Piekarski [victorm007@yahoo.com]
+ Updating description of permissions and disabling interrupts
+ Update description of permissions for port-mapped I/O set
+ per-thread and not per-process. Mention that iopl() can not
+ disable interrupts since Linux 5.5 anymore and is in general
+ deprecated and only provided for legacy X servers.
+
+ See https://bugzilla.kernel.org/show_bug.cgi?id=205317
+
+keyctl.2
+ Oleksandr Kravchuk
+ Declare auth_key to fix a compilation error in example code
+
+lseek.2
+ Andrew Price
+ List gfs2 support for SEEK_HOLE/SEEK_DATA
+
+mount.2
+ Michael Kerrisk
+ ERRORS: add EINVAL for bind mount of mount namespace inode
+
+open.2
+ Michael Kerrisk
+ Say a bit more about what happens when 'mode' is wrongly omitted
+
+pidfd_open.2
+ Michael Kerrisk
+ Add the setns(2) use case for PID file descriptors
+ Michael Kerrisk
+ Close the pidfd in EXAMPLE
+ Close the PID file descriptor in the example program, to hint to
+ the reader that like every other kind of file descriptor, a PID FD
+ should be closed.
+
+prctl.2
+ Michael Kerrisk
+ The parent death signal is cleared on some credential changes
+ See kernel/cred.c::commit_creds() in the Linux 5.6 source code.
+
+seccomp.2
+ Andy Lutomirski
+ Improve x32 and nr truncation notes
+
+send.2
+recv.2
+ Alyssa Ross
+ Add msg_iovlen POSIX note
+ msg_iovlen is incorrectly typed (according to POSIX) in addition
+ to msg_controllen, but unlike msg_controllen, this wasn't
+ mentioned for msg_iovlen.
+
+setns.2
+ Michael Kerrisk
+ EXAMPLE: use O_CLOEXEC when opening namespace file descriptor
+ Michael Kerrisk
+ It is possible to setns() to the caller's current PID namespace
+ The page currently incorrectly says that 'fd' must refer to
+ a descendant PID namespace. However, 'fd' can also refer to
+ the caller's current PID namespace. Verified by experiment,
+ and also comments in kernel/pid_namespace.c (Linux 5.8-rc1).
+
+sync.2
+ Jeff Layton
+ syncfs() now returns errors if writeback fails
+ A patch has been merged for v5.8 that changes how syncfs() reports
+ errors. Change the sync() manpage accordingly.
+
+syscalls.2
+ Michael Kerrisk
+ Add faccessat2(), added in Linux 5.8
+
+sysctl.2
+ Michael Kerrisk
+ glibc removed support for sysctl() starting in version 2.32
+
+atoi.3
+ Arkadiusz Drabczyk
+ Explain disadvantages of atoi()
+ Michael Kerrisk
+ Relocate BUGS section
+ Michael Kerrisk
+ Add NOTES section explaining 0 return value on error
+ And note that this is not specified by POSIX.
+
+fread.3
+ Arkadiusz Drabczyk
+ Add example
+ Arkadiusz Drabczyk
+ Explain that file position is moved after calling fread()/fwrite()
+ Corresponding manpage on FreeBSD already contains that
+ information.
+
+getpt.3
+posix_openpt.3
+pts.4
+ Michael Kerrisk
+ Use the term "pseudoterminal multiplexor device" for /dev/ptmx
+ Let's use some consistent terminology for this device.
+
+posix_memalign.3
+ Bruno Haible
+ Clarify how to free the result of posix_memalign
+
+pthread_rwlockattr_setkind_np.3
+ Carlos O'Donell [Kumar Kartikeya Dwivedi]
+ Clarify a PTHREAD_RWLOCK_PREFER_WRITER_NP detail
+
+queue.3
+ Alejandro Colomar
+ Remove wrong code from example
+ Alejandro Colomar
+ Comment out text for functions not in glibc (related: 6559169cac)
+
+pts.4
+ Michael Kerrisk
+ Remove NOTES on BSD pseudoterminals
+ This information is already covered better in pty(7). No need to
+ mention it again here.
+
+hosts.5
+ Thomas Bartelsmeier
+ Clarify capability for IPv6 outside of examples
+ Resolves https://bugzilla.kernel.org/show_bug.cgi?id=208279
+
+proc.5
+ Jakub Wilk
+ Use "pwd -P" for printing cwd
+ "/bin/pwd" happens to work with the GNU coreutils implementation,
+ which has -P as the default, contrary to POSIX requirements.
+
+ Use "pwd -P" instead, which is shorter, easier to type, and should
+ work everywhere.
+ Arkadiusz Drabczyk
+ Inform that comm in /proc/pid/{stat,status} might also be truncated
+ pgrep for example searches for a process name in /proc/pid/status
+
+resolv.conf.5
+ Michael Kerrisk [Helge Kreutzmann]
+ Clarify that ip6-bytestring was removed in 2.25
+
+capabilities.7
+ Dan Kenigsberg
+ Clarify that CAP_SYS_NICE relates to *lowering* the nice value
+ Saikiran Madugula
+ CAP_SYS_RESOURCE: add two more items for POSIX message queues
+ CAP_SYS_RESOURCE also allows overriding /proc/sys/fs/mqueue/msg_max
+ and /proc/sys/fs/mqueue/msgsize_max.
+ Michael Kerrisk [Dan Kenigsberg]
+ Clarify wording around increasing process nice value
+ Michael Kerrisk
+ SEE ALSO: add getpcaps(8)
+
+cgroups.7
+cpuset.7
+ Sven Hoexter
+ Update kernel cgroup documentation references
+ cgroups-v1/v2 documentation got moved to the "admin-guide" subfolder
+ and converted from .txt files to .rst
+
+ip.7
+ Michael Kerrisk [Stephen Hemminger]
+ Remove mention of ipfw(4) which was in long obsolete ipchains project
+
+man-pages.7
+ Michael Kerrisk
+ Add some notes on generating optimal glyphs
+ Getting nice renderings of ^ ` and ~ requires special
+ steps in the page source.
+
+pty.7
+ Michael Kerrisk
+ Explicitly mention CONFIG_LEGACY_PTYS
+ Explicitly mention CONFIG_LEGACY_PTYS, and note that it is disabled
+ by default since Linux 2.6.30.
+ Michael Kerrisk
+ Relocate a paragraph to NOTES
+
+standards.7
+ Michael Kerrisk
+ Add an entry for POSIX.1-1988
+ Michael Kerrisk [Geoff Clare]
+ Correct various details in the explanation of XPG/POSIX/SUS
+
+ld.so.8
+ Florian Weimer [Michael Kerrisk]
+ List more places in which dynamic string tokens are expanded
+ This happens for more than just DT_RPATH/DT_RUNPATH.
+ Arkadiusz Drabczyk
+ Explain that empty entry in LD_LIBRARY_PATH means cwd
+
+zic.8
+ Michael Kerrisk
+ Sync to 2020a tzdb release
+ From https://www.iana.org/time-zones, version 2020a.
diff --git a/Makefile b/Makefile
index 49757c61b..328418e8e 100644
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@ install:
done
# Check if groff reports warnings (may be words of sentences not displayed)
-# from http://lintian.debian.org/tags/manpage-has-errors-from-man.html
+# from https://lintian.debian.org/tags/groff-message.html
check-groff-warnings:
GROFF_LOG="$$(mktemp --tmpdir manpages-checksXXXX)" || exit $$?; \
for i in man?/*.[1-9]; \
diff --git a/man-pages-5.08.Announce b/man-pages-5.09.Announce
index 9bb99ab4f..2d238fc4d 100644
--- a/man-pages-5.08.Announce
+++ b/man-pages-5.09.Announce
@@ -1,7 +1,7 @@
RELEASE
The Linux man page maintainer proudly announces. . .
- man-pages-5.08.tar.gz - man pages for Linux
+ man-pages-5.09.tar.gz - man pages for Linux
Differences from the previous manual pages release are listed in
the file "Changes".
diff --git a/man-pages-5.08.lsm b/man-pages-5.09.lsm
index f412c35e9..3f7987947 100644
--- a/man-pages-5.08.lsm
+++ b/man-pages-5.09.lsm
@@ -1,13 +1,13 @@
Begin3
Title: Section 2, 3, 4, 5 and 7 man pages for Linux
-Version: 5.08
-Entered-date: 2020-08-13
+Version: 5.09
+Entered-date: 2020-11-01
Description: Linux manual pages
Keywords: man pages
Author: several
Maintained-by: Michael Kerrisk <mtk.manpages@gmail.com>
Primary-site: http://www.kernel.org/pub/linux/docs/man-pages
- 2715k man-pages-5.08.tar.gz
+ 2752k man-pages-5.09.tar.gz
Copying-policy: several; the pages are all freely distributable as long as
nroff source is provided
End
diff --git a/man1/getent.1 b/man1/getent.1
index f2bd845ed..869510526 100644
--- a/man1/getent.1
+++ b/man1/getent.1
@@ -398,7 +398,7 @@ Enumeration not supported on this
.SH SEE ALSO
.BR nsswitch.conf (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/iconv.1 b/man1/iconv.1
index 26aea3cc2..cff0e53d0 100644
--- a/man1/iconv.1
+++ b/man1/iconv.1
@@ -202,7 +202,7 @@ abc ss ? EUR abc
.BR charsets (7),
.BR iconvconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/intro.1 b/man1/intro.1
index e3ab1de73..6500d0a49 100644
--- a/man1/intro.1
+++ b/man1/intro.1
@@ -324,7 +324,7 @@ and use a browser if you find HTML files there.
.BR man\-pages (7),
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/ldd.1 b/man1/ldd.1
index 507290630..df0eed7b9 100644
--- a/man1/ldd.1
+++ b/man1/ldd.1
@@ -20,20 +20,24 @@ ldd \- print shared object dependencies
.B ldd
prints the shared objects (shared libraries) required by each program or
shared object specified on the command line.
-An example of its use and output is the following:
+An example of its use and output
+(using
+.BR sed (1)
+to trim leading white space for readability in this page)
+is the following:
.PP
-.in +2n
+.in +4n
.EX
-$ \fBldd /bin/ls\fP
- linux-vdso.so.1 (0x00007ffcc3563000)
- libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
- libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
- libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
- libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
- libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
- /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
- libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
- libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)
+$ \fBldd /bin/ls | sed \(aqs/^ */ /\(aq\fP
+ linux-vdso.so.1 (0x00007ffcc3563000)
+ libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
+ libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
+ libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
+ libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
+ libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
+ /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
+ libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
+ libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)
.EE
.in
.PP
@@ -171,7 +175,7 @@ on one of these programs, the program will attempt to run with
.BR ld.so (8),
.BR ldconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/locale.1 b/man1/locale.1
index e7ea297df..ca86ab61d 100644
--- a/man1/locale.1
+++ b/man1/locale.1
@@ -207,7 +207,7 @@ $ \fBecho "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc\fP
.BR locale (5),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/localedef.1 b/man1/localedef.1
index c0eb4c83d..0e35ae800 100644
--- a/man1/localedef.1
+++ b/man1/localedef.1
@@ -404,7 +404,7 @@ localedef \-f UTF\-8 \-i fi_FI ./fi_FI.UTF\-8
.BR repertoiremap (5),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/memusage.1 b/man1/memusage.1
index f22f2e741..acdffaed9 100644
--- a/man1/memusage.1
+++ b/man1/memusage.1
@@ -21,7 +21,7 @@
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
-.TH MEMUSAGE 1 2020-06-09 "GNU" "Linux user manual"
+.TH MEMUSAGE 1 2020-11-01 "GNU" "Linux user manual"
.SH NAME
memusage \- profile memory usage of a program
.SH SYNOPSIS
@@ -244,27 +244,31 @@ $ \fBmemusagestat memusage.dat memusage.png\fP
int
main(int argc, char *argv[])
{
- int i, j;
- int *p;
+ int i, j;
+ size_t size;
+ int *p;
- printf("malloc: %zd\en", sizeof(int) * 100);
- p = malloc(sizeof(int) * 100);
+ size = sizeof(*p) * 100;
+ printf("malloc: %zu\en", size);
+ p = malloc(size);
- for (i = 0; i < CYCLES; i++) {
- if (i < CYCLES / 2)
- j = i;
- else
- j--;
+ for (i = 0; i < CYCLES; i++) {
+ if (i < CYCLES / 2)
+ j = i;
+ else
+ j--;
- printf("realloc: %zd\en", sizeof(int) * (j * 50 + 110));
- p = realloc(p, sizeof(int) * (j * 50 + 100));
+ size = sizeof(*p) * (j * 50 + 110);
+ printf("realloc: %zu\en", size);
+ p = realloc(p, size);
- printf("realloc: %zd\en", sizeof(int) * ((j+1) * 150 + 110));
- p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));
- }
+ size = sizeof(*p) * ((j + 1) * 150 + 110);
+ printf("realloc: %zu\en", size);
+ p = realloc(p, size);
+ }
- free(p);
- exit(EXIT_SUCCESS);
+ free(p);
+ exit(EXIT_SUCCESS);
}
.EE
.SH SEE ALSO
@@ -272,7 +276,7 @@ main(int argc, char *argv[])
.BR mtrace (1),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/memusagestat.1 b/man1/memusagestat.1
index 3da9143f6..da06d0474 100644
--- a/man1/memusagestat.1
+++ b/man1/memusagestat.1
@@ -89,7 +89,7 @@ See
.BR memusage (1),
.BR mtrace (1)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/mtrace.1 b/man1/mtrace.1
index c7692f56c..4218d647d 100644
--- a/man1/mtrace.1
+++ b/man1/mtrace.1
@@ -63,7 +63,7 @@ For bug reporting instructions, please see:
.BR memusage (1),
.BR mtrace (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/pldd.1 b/man1/pldd.1
index 40008f973..b2c116a03 100644
--- a/man1/pldd.1
+++ b/man1/pldd.1
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PLDD 1 2020-06-09 "GNU" "Linux User Manual"
+.TH PLDD 1 2020-11-01 "GNU" "Linux User Manual"
.SH NAME
pldd \- display dynamic shared objects linked into a process
.SH SYNOPSIS
@@ -93,7 +93,7 @@ using a command such as the following
.in +4n
.EX
$ \fBgdb \-ex "set confirm off" \-ex "set height 0" \-ex "info shared" \e\fP
- \fB\-ex "quit" \-p $pid | grep '\(ha0x.*0x'\fP
+ \fB\-ex "quit" \-p $pid | grep \(aq\(ha0x.*0x\(aq\fP
.EE
.in
.SH BUGS
@@ -122,7 +122,7 @@ linux\-vdso.so.1
.BR dlopen (3),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/sprof.1 b/man1/sprof.1
index 5db22a873..19019e781 100644
--- a/man1/sprof.1
+++ b/man1/sprof.1
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH SPROF 1 2020-06-09 "Linux" "Linux User Manual"
+.TH SPROF 1 2020-11-01 "Linux" "Linux User Manual"
.SH NAME
sprof \- read and display shared object profiling data
.SH SYNOPSIS
@@ -116,35 +116,27 @@ $ \fBcat libdemo.c\fP
void
consumeCpu1(int lim)
{
- int j;
-
- for (j = 0; j < lim; j++)
+ for (int j = 0; j < lim; j++)
getppid();
}
void
x1(void) {
- int j;
-
- for (j = 0; j < 100; j++)
+ for (int j = 0; j < 100; j++)
consumeCpu1(200000);
}
void
consumeCpu2(int lim)
{
- int j;
-
- for (j = 0; j < lim; j++)
+ for (int j = 0; j < lim; j++)
getppid();
}
void
x2(void)
{
- int j;
-
- for (j = 0; j < 1000; j++)
+ for (int j = 0; j < 1000; j++)
consumeCpu2(10000);
}
.EE
@@ -301,7 +293,7 @@ x2 consumeCpu2 1000
.BR ldd (1),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man1/time.1 b/man1/time.1
index 5b806c6b2..8b24cb08c 100644
--- a/man1/time.1
+++ b/man1/time.1
@@ -331,7 +331,7 @@ and C compiler you used.
.BR times (2),
.BR wait3 (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/_exit.2 b/man2/_exit.2
index 83ee13b71..1d33861b4 100644
--- a/man2/_exit.2
+++ b/man2/_exit.2
@@ -38,10 +38,10 @@ _exit, _Exit \- terminate the calling process
.PP
.BI "void _Exit(int " status );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR _Exit ():
@@ -134,7 +134,7 @@ system call terminates only the calling thread.)
.BR on_exit (3),
.BR termios (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/_syscall.2 b/man2/_syscall.2
index d66e261b7..fb4448fc1 100644
--- a/man2/_syscall.2
+++ b/man2/_syscall.2
@@ -185,7 +185,7 @@ Number of processes = 40
.BR syscall (2),
.BR errno (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/accept.2 b/man2/accept.2
index d005ba416..32c6e2454 100644
--- a/man2/accept.2
+++ b/man2/accept.2
@@ -378,7 +378,7 @@ See
.BR socket (2),
.BR socket (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/access.2 b/man2/access.2
index c34a388f8..cea2784eb 100644
--- a/man2/access.2
+++ b/man2/access.2
@@ -56,10 +56,10 @@ access, faccessat \- check user's permissions for a file
mode ", int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR faccessat ():
.PD 0
@@ -412,7 +412,7 @@ flag is honored.
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/acct.2 b/man2/acct.2
index 7d95ae1ba..3a7fd2349 100644
--- a/man2/acct.2
+++ b/man2/acct.2
@@ -40,10 +40,10 @@ acct \- switch process accounting on or off
.fi
.ad b
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR acct ():
.nf
@@ -151,7 +151,7 @@ The structure of the records written to the accounting file is described in
.SH SEE ALSO
.BR acct (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/add_key.2 b/man2/add_key.2
index 83547121c..aec827686 100644
--- a/man2/add_key.2
+++ b/man2/add_key.2
@@ -9,7 +9,7 @@
.\" 2 of the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
-.TH ADD_KEY 2 2020-06-09 Linux "Linux Key Management Calls"
+.TH ADD_KEY 2 2020-11-01 Linux "Linux Key Management Calls"
.SH NAME
add_key \- add a key to the kernel's key management facility
.SH SYNOPSIS
@@ -240,6 +240,7 @@ $ \fBgrep \(aq64a4dca\(aq /proc/keys\fP
.EX
#include <sys/types.h>
#include <keyutils.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -262,7 +263,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- printf("Key ID is %lx\en", (long) key);
+ printf("Key ID is %jx\en", (uintmax_t) key);
exit(EXIT_SUCCESS);
}
@@ -294,7 +295,7 @@ and
.\" commit 3db38ed76890565772fcca3279cc8d454ea6176b
.IR Documentation/security/keys\-request\-key.txt ).
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/adjtimex.2 b/man2/adjtimex.2
index 00cb71953..f64d796e2 100644
--- a/man2/adjtimex.2
+++ b/man2/adjtimex.2
@@ -173,8 +173,8 @@ The following example shows how to
normalize a
.I timeval
with nanosecond resolution.
-.PP
-.in +12n
+.IP
+.in +4n
.EX
while (buf.time.tv_usec < 0) {
buf.time.tv_sec -= 1;
@@ -608,7 +608,7 @@ for the leap second to be inserted or deleted.
NTP "Kernel Application Program Interface"
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/alarm.2 b/man2/alarm.2
index 029525c7d..803c00d6e 100644
--- a/man2/alarm.2
+++ b/man2/alarm.2
@@ -95,7 +95,7 @@ be delayed by an arbitrary amount of time.
.BR sleep (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/alloc_hugepages.2 b/man2/alloc_hugepages.2
index dba5a65c5..35273d0c9 100644
--- a/man2/alloc_hugepages.2
+++ b/man2/alloc_hugepages.2
@@ -149,7 +149,7 @@ boot parameter.
.\" mount \-t hugetlbfs hugetlbfs /huge
.\" SHM_HUGETLB
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/arch_prctl.2 b/man2/arch_prctl.2
index b712a2975..66fc99e30 100644
--- a/man2/arch_prctl.2
+++ b/man2/arch_prctl.2
@@ -192,7 +192,7 @@ directly are very likely to crash.
.PP
AMD X86-64 Programmer's manual
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/bdflush.2 b/man2/bdflush.2
index 9b5df7658..3936d3611 100644
--- a/man2/bdflush.2
+++ b/man2/bdflush.2
@@ -123,7 +123,7 @@ intended to be portable.
.BR fsync (2),
.BR sync (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/bind.2 b/man2/bind.2
index 45197850e..3b89af89b 100644
--- a/man2/bind.2
+++ b/man2/bind.2
@@ -66,7 +66,7 @@
.\" $Id: bind.2,v 1.3 1999/04/23 19:56:07 freitag Exp $
.\" Modified 2004-06-23 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"
-.TH BIND 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH BIND 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
bind \- bind a name to a socket
.SH SYNOPSIS
@@ -149,7 +149,7 @@ The only purpose of this structure is to cast the structure
pointer passed in
.I addr
in order to avoid compiler warnings.
-See EXAMPLE below.
+See EXAMPLES below.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
@@ -293,14 +293,14 @@ main(int argc, char *argv[])
if (sfd == \-1)
handle_error("socket");
- memset(&my_addr, 0, sizeof(struct sockaddr_un));
+ memset(&my_addr, 0, sizeof(my_addr));
/* Clear structure */
my_addr.sun_family = AF_UNIX;
strncpy(my_addr.sun_path, MY_SOCK_PATH,
sizeof(my_addr.sun_path) \- 1);
if (bind(sfd, (struct sockaddr *) &my_addr,
- sizeof(struct sockaddr_un)) == \-1)
+ sizeof(my_addr)) == \-1)
handle_error("bind");
if (listen(sfd, LISTEN_BACKLOG) == \-1)
@@ -309,7 +309,7 @@ main(int argc, char *argv[])
/* Now we can accept incoming connections one
at a time using accept(2) */
- peer_addr_size = sizeof(struct sockaddr_un);
+ peer_addr_size = sizeof(peer_addr);
cfd = accept(sfd, (struct sockaddr *) &peer_addr,
&peer_addr_size);
if (cfd == \-1)
@@ -335,7 +335,7 @@ main(int argc, char *argv[])
.BR socket (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/bpf.2 b/man2/bpf.2
index 5fd39140e..f031a441a 100644
--- a/man2/bpf.2
+++ b/man2/bpf.2
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH BPF 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH BPF 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
bpf \- perform a command on an extended BPF map or program
.SH SYNOPSIS
@@ -209,11 +209,11 @@ union bpf_attr {
struct { /* Used by BPF_PROG_LOAD */
__u32 prog_type;
__u32 insn_cnt;
- __aligned_u64 insns; /* 'const struct bpf_insn *' */
- __aligned_u64 license; /* 'const char *' */
+ __aligned_u64 insns; /* \(aqconst struct bpf_insn *\(aq */
+ __aligned_u64 license; /* \(aqconst char *\(aq */
__u32 log_level; /* verbosity level of verifier */
__u32 log_size; /* size of user buffer */
- __aligned_u64 log_buf; /* user supplied 'char *'
+ __aligned_u64 log_buf; /* user supplied \(aqchar *\(aq
buffer */
__u32 kern_version;
/* checked when prog_type=kprobe
@@ -990,7 +990,7 @@ main(int argc, char **argv)
map_fd = bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(key),
sizeof(value), 256);
if (map_fd < 0) {
- printf("failed to create map '%s'\en", strerror(errno));
+ printf("failed to create map \(aq%s\(aq\en", strerror(errno));
/* likely not run as root */
return 1;
}
@@ -1280,7 +1280,7 @@ riscv (since Linux 5.1).
Both classic and extended BPF are explained in the kernel source file
.IR Documentation/networking/filter.txt .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/brk.2 b/man2/brk.2
index 53ee5e63c..1626394f6 100644
--- a/man2/brk.2
+++ b/man2/brk.2
@@ -36,10 +36,10 @@ brk, sbrk \- change data segment size
.PP
.BI "void *sbrk(intptr_t " increment );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR brk (),
.BR sbrk ():
@@ -176,7 +176,7 @@ return the old break value.
.BR end (3),
.BR malloc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/cacheflush.2 b/man2/cacheflush.2
index 8811c1d5d..c687db242 100644
--- a/man2/cacheflush.2
+++ b/man2/cacheflush.2
@@ -102,7 +102,7 @@ argument and does not do any error checking on the
.I cache
argument.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/capget.2 b/man2/capget.2
index 06275f8a0..6e4049e28 100644
--- a/man2/capget.2
+++ b/man2/capget.2
@@ -247,7 +247,7 @@ library and is available here:
.BR gettid (2),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/chdir.2 b/man2/chdir.2
index d8c75073e..74d24f9ae 100644
--- a/man2/chdir.2
+++ b/man2/chdir.2
@@ -40,10 +40,10 @@ chdir, fchdir \- change working directory
.br
.BI "int fchdir(int " fd );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fchdir ():
.PD 0
@@ -144,7 +144,7 @@ The current working directory is left unchanged by
.BR getcwd (3),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/chmod.2 b/man2/chmod.2
index 40ee8597c..01ad7ed99 100644
--- a/man2/chmod.2
+++ b/man2/chmod.2
@@ -37,7 +37,6 @@ chmod, fchmod, fchmodat \- change permissions of a file
.B #include <sys/stat.h>
.PP
.BI "int chmod(const char *" pathname ", mode_t " mode );
-.br
.BI "int fchmod(int " fd ", mode_t " mode );
.BR "#include <fcntl.h>" " /* Definition of AT_* constants */"
@@ -47,10 +46,10 @@ chmod, fchmod, fchmodat \- change permissions of a file
mode ", int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.PD 0
@@ -387,7 +386,7 @@ argument.
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/chown.2 b/man2/chown.2
index 57149aa6a..bf4cb19e7 100644
--- a/man2/chown.2
+++ b/man2/chown.2
@@ -53,10 +53,10 @@ chown, fchown, lchown, fchownat \- change ownership of a file
.BI " uid_t " owner ", gid_t " group ", int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fchown (),
.BR lchown ():
@@ -501,7 +501,7 @@ main(int argc, char *argv[])
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/chroot.2 b/man2/chroot.2
index e267cac6b..bf53bad64 100644
--- a/man2/chroot.2
+++ b/man2/chroot.2
@@ -38,10 +38,10 @@ chroot \- change root directory
.PP
.BI "int chroot(const char *" path );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR chroot ():
.ad l
@@ -184,7 +184,7 @@ system call.
.BR path_resolution (7),
.BR switch_root (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/clock_getres.2 b/man2/clock_getres.2
index 8b91754d4..e849183f0 100644
--- a/man2/clock_getres.2
+++ b/man2/clock_getres.2
@@ -42,10 +42,10 @@ clock_getres, clock_gettime, clock_settime \- clock and time functions
.PP
Link with \fI\-lrt\fP (only for glibc versions before 2.17).
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR clock_getres (),
@@ -251,13 +251,13 @@ dynamic clock ID.
#define FD_TO_CLOCKID(fd) ((\(ti(clockid_t) (fd) << 3) | CLOCKFD)
#define CLOCKID_TO_FD(clk) ((unsigned int) \(ti((clk) >> 3))
-struct timeval tv;
+struct timespec ts;
clockid_t clkid;
int fd;
fd = open("/dev/ptp0", O_RDWR);
clkid = FD_TO_CLOCKID(fd);
-clock_gettime(clkid, &tv);
+clock_gettime(clkid, &ts);
.EE
.in
.SH RETURN VALUE
@@ -467,6 +467,7 @@ CLOCK_BOOTTIME : 72691.019 (20h 11m 31s)
*/
#define _XOPEN_SOURCE 600
#include <time.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
@@ -475,7 +476,7 @@ CLOCK_BOOTTIME : 72691.019 (20h 11m 31s)
#define SECS_IN_DAY (24 * 60 * 60)
static void
-displayClock(clockid_t clock, char *name, bool showRes)
+displayClock(clockid_t clock, const char *name, bool showRes)
{
struct timespec ts;
@@ -484,15 +485,17 @@ displayClock(clockid_t clock, char *name, bool showRes)
exit(EXIT_FAILURE);
}
- printf("%\-15s: %10ld.%03ld (", name,
- (long) ts.tv_sec, ts.tv_nsec / 1000000);
+ printf("%\-15s: %10jd.%03ld (", name,
+ (intmax_t) ts.tv_sec, ts.tv_nsec / 1000000);
long days = ts.tv_sec / SECS_IN_DAY;
if (days > 0)
printf("%ld days + ", days);
- printf("%2ldh %2ldm %2lds", (ts.tv_sec % SECS_IN_DAY) / 3600,
- (ts.tv_sec % 3600) / 60, ts.tv_sec % 60);
+ printf("%2dh %2dm %2ds",
+ (int) (ts.tv_sec % SECS_IN_DAY) / 3600,
+ (int) (ts.tv_sec % 3600) / 60,
+ (int) ts.tv_sec % 60);
printf(")\en");
if (clock_getres(clock, &ts) == \-1) {
@@ -501,8 +504,8 @@ displayClock(clockid_t clock, char *name, bool showRes)
}
if (showRes)
- printf(" resolution: %10ld.%09ld\en",
- (long) ts.tv_sec, ts.tv_nsec);
+ printf(" resolution: %10jd.%09ld\en",
+ (intmax_t) ts.tv_sec, ts.tv_nsec);
}
int
@@ -537,7 +540,7 @@ main(int argc, char *argv[])
.BR vdso (7),
.BR hwclock (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/clock_nanosleep.2 b/man2/clock_nanosleep.2
index 18af99a72..3904954fe 100644
--- a/man2/clock_nanosleep.2
+++ b/man2/clock_nanosleep.2
@@ -38,10 +38,10 @@ clock_nanosleep \- high-resolution sleep with specifiable clock
Link with \fI\-lrt\fP (only for glibc versions before 2.17).
.PP
.ad l
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR clock_nanosleep ():
.RS 4
@@ -277,7 +277,7 @@ shall have no effect on a thread that is blocked on a relative
.BR usleep (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/clone.2 b/man2/clone.2
index 33a458a1d..5a0afa5c2 100644
--- a/man2/clone.2
+++ b/man2/clone.2
@@ -39,7 +39,7 @@
.\" 2008-11-19, mtk, document CLONE_NEWIPC
.\" 2008-11-19, Jens Axboe, mtk, document CLONE_IO
.\"
-.TH CLONE 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH CLONE 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
clone, __clone2, clone3 \- create a child process
.SH SYNOPSIS
@@ -185,9 +185,9 @@ struct clone_args {
u64 pidfd; /* Where to store PID file descriptor
(\fIpid_t *\fP) */
u64 child_tid; /* Where to store child TID,
- in child's memory (\fIpid_t *\fP) */
+ in child\(aqs memory (\fIpid_t *\fP) */
u64 parent_tid; /* Where to store child TID,
- in parent's memory (\fIint *\fP) */
+ in parent\(aqs memory (\fIint *\fP) */
u64 exit_signal; /* Signal to deliver to parent on
child termination */
u64 stack; /* Pointer to lowest byte of stack */
@@ -365,6 +365,11 @@ The
.I set_tid
feature requires
.BR CAP_SYS_ADMIN
+or
+(since Linux 5.9)
+.\" commit 124ea650d3072b005457faed69909221c2905a1f
+.\" commit 1caef81da05a84a40dbf02110e967ce6d1135ff6
+.BR CAP_CHECKPOINT_RESTORE
in all owning user namespaces of the target PID namespaces.
.PP
Callers may only choose a PID greater than 1 in a given PID namespace
@@ -1615,7 +1620,7 @@ as detailed in the following paragraphs.
The raw system call interface on x86-64 and some other architectures
(including sh, tile, and alpha) is:
.PP
-.in +4
+.in +4n
.EX
.BI "long clone(unsigned long " flags ", void *" stack ,
.BI " int *" parent_tid ", int *" child_tid ,
@@ -1629,7 +1634,7 @@ and MIPS),
.\" CONFIG_CLONE_BACKWARDS
the order of the last two arguments is reversed:
.PP
-.in +4
+.in +4n
.EX
.BI "long clone(unsigned long " flags ", void *" stack ,
.BI " int *" parent_tid ", unsigned long " tls ,
@@ -1641,7 +1646,7 @@ On the cris and s390 architectures,
.\" CONFIG_CLONE_BACKWARDS2
the order of the first two arguments is reversed:
.PP
-.in +4
+.in +4n
.EX
.BI "long clone(void *" stack ", unsigned long " flags ,
.BI " int *" parent_tid ", int *" child_tid ,
@@ -1653,7 +1658,7 @@ On the microblaze architecture,
.\" CONFIG_CLONE_BACKWARDS3
an additional argument is supplied:
.PP
-.in +4
+.in +4n
.EX
.BI "long clone(unsigned long " flags ", void *" stack ,
.BI " int " stack_size , "\fR /* Size of stack */"
@@ -1672,7 +1677,7 @@ For details, see the kernel (and glibc) source.
.SS ia64
On ia64, a different interface is used:
.PP
-.in +4
+.in +4n
.EX
.BI "int __clone2(int (*" "fn" ")(void *),"
.BI " void *" stack_base ", size_t " stack_size ,
@@ -1688,7 +1693,7 @@ the prototype can be described as follows (it is identical to the
.BR clone ()
prototype on microblaze):
.PP
-.in +4
+.in +4n
.EX
.BI "long clone2(unsigned long " flags ", void *" stack_base ,
.BI " int " stack_size , "\fR /* Size of stack */"
@@ -1802,6 +1807,7 @@ so we should include it for portability.
#include <sys/utsname.h>
#include <sched.h>
#include <string.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -1865,7 +1871,7 @@ main(int argc, char *argv[])
pid = clone(childFunc, stackTop, CLONE_NEWUTS | SIGCHLD, argv[1]);
if (pid == \-1)
errExit("clone");
- printf("clone() returned %ld\en", (long) pid);
+ printf("clone() returned %jd\en", (intmax_t) pid);
/* Parent falls through to here */
@@ -1903,7 +1909,7 @@ main(int argc, char *argv[])
.BR namespaces (7),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/close.2 b/man2/close.2
index b8bb8d21a..23c7b3a86 100644
--- a/man2/close.2
+++ b/man2/close.2
@@ -279,7 +279,7 @@ the next major release of the POSIX.1 standard.
.BR unlink (2),
.BR fclose (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/connect.2 b/man2/connect.2
index 382d5360a..f5e48bf7b 100644
--- a/man2/connect.2
+++ b/man2/connect.2
@@ -70,7 +70,6 @@ connect \- initiate a connection on a socket
.SH SYNOPSIS
.nf
.BR "#include <sys/types.h>" " /* See NOTES */"
-.br
.B #include <sys/socket.h>
.PP
.BI "int connect(int " sockfd ", const struct sockaddr *" addr ,
@@ -307,7 +306,7 @@ is shown in
.BR path_resolution (7),
.BR selinux (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/copy_file_range.2 b/man2/copy_file_range.2
index b5256eb9a..2508dea7b 100644
--- a/man2/copy_file_range.2
+++ b/man2/copy_file_range.2
@@ -132,7 +132,7 @@ different from the maximum allowed file offset.
.B EFBIG
An attempt was made to write beyond the process's file size resource limit.
This may also result in the process receiving a
-.I SIGXFSZ
+.B SIGXFSZ
signal.
.TP
.B EINVAL
@@ -298,7 +298,7 @@ main(int argc, char **argv)
.BR sendfile (2),
.BR splice (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/create_module.2 b/man2/create_module.2
index 94564a99f..8476ba75b 100644
--- a/man2/create_module.2
+++ b/man2/create_module.2
@@ -78,7 +78,7 @@ alternatively, you could invoke the system call using
.BR init_module (2),
.BR query_module (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/delete_module.2 b/man2/delete_module.2
index 6e378a6b1..3a45d116c 100644
--- a/man2/delete_module.2
+++ b/man2/delete_module.2
@@ -215,7 +215,7 @@ currently explained in this manual page.
.BR modprobe (8),
.BR rmmod (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/dup.2 b/man2/dup.2
index 78c777979..f8b142b8a 100644
--- a/man2/dup.2
+++ b/man2/dup.2
@@ -34,7 +34,7 @@
.\" details for dup2().
.\" 2008-10-09, mtk: add description of dup3()
.\"
-.TH DUP 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH DUP 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
dup, dup2, dup3 \- duplicate a file descriptor
.SH SYNOPSIS
@@ -249,23 +249,23 @@ Instead, code something like the following could be used:
.PP
.in +4n
.EX
-/* Obtain a duplicate of 'newfd' that can subsequently
+/* Obtain a duplicate of \(aqnewfd\(aq that can subsequently
be used to check for close() errors; an EBADF error
- means that 'newfd' was not open. */
+ means that \(aqnewfd\(aq was not open. */
tmpfd = dup(newfd);
if (tmpfd == \-1 && errno != EBADF) {
/* Handle unexpected dup() error */
}
-/* Atomically duplicate 'oldfd' on 'newfd' */
+/* Atomically duplicate \(aqoldfd\(aq on \(aqnewfd\(aq */
if (dup2(oldfd, newfd) == \-1) {
/* Handle dup2() error */
}
/* Now check for close() errors on the file originally
- referred to by 'newfd' */
+ referred to by \(aqnewfd\(aq */
if (tmpfd != \-1) {
if (close(tmpfd) == \-1) {
@@ -280,7 +280,7 @@ if (tmpfd != \-1) {
.BR open (2),
.BR pidfd_getfd (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/epoll_create.2 b/man2/epoll_create.2
index a01411c8f..0c40f60cd 100644
--- a/man2/epoll_create.2
+++ b/man2/epoll_create.2
@@ -151,7 +151,7 @@ applications are run on older kernels.
.BR epoll_wait (2),
.BR epoll (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/epoll_ctl.2 b/man2/epoll_ctl.2
index 3b778ca54..d6940487d 100644
--- a/man2/epoll_ctl.2
+++ b/man2/epoll_ctl.2
@@ -18,7 +18,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH EPOLL_CTL 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH EPOLL_CTL 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
epoll_ctl \- control interface for an epoll file descriptor
.SH SYNOPSIS
@@ -382,7 +382,8 @@ refers to an epoll instance.
refers to an epoll instance and this
.B EPOLL_CTL_ADD
operation would result in a circular loop of epoll instances
-monitoring one another.
+monitoring one another or a nesting depth of epoll instances
+greater than 5.
.TP
.B ENOENT
.I op
@@ -422,10 +423,10 @@ refers to, for example, a regular file or a directory.
was added to the kernel in version 2.6.
.\" To be precise: kernel 2.5.44.
.\" The interface should be finalized by Linux kernel 2.5.66.
+Library support is provided in glibc starting with version 2.3.2.
.SH CONFORMING TO
.BR epoll_ctl ()
is Linux-specific.
-Library support is provided in glibc starting with version 2.3.2.
.SH NOTES
The
.B epoll
@@ -478,7 +479,7 @@ flag.
.BR poll (2),
.BR epoll (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/epoll_wait.2 b/man2/epoll_wait.2
index c47b299e0..5ef3590b3 100644
--- a/man2/epoll_wait.2
+++ b/man2/epoll_wait.2
@@ -282,7 +282,7 @@ wrapper function specifies this argument as a fixed value
.BR epoll_ctl (2),
.BR epoll (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/eventfd.2 b/man2/eventfd.2
index 97bb09132..6bbddb6f5 100644
--- a/man2/eventfd.2
+++ b/man2/eventfd.2
@@ -19,7 +19,7 @@
.\"
.\" 2008-10-10, mtk: describe eventfd2(), and EFD_NONBLOCK and EFD_CLOEXEC
.\"
-.TH EVENTFD 2 2020-06-09 Linux "Linux Programmer's Manual"
+.TH EVENTFD 2 2020-11-01 Linux "Linux Programmer's Manual"
.SH NAME
eventfd \- create a file descriptor for event notification
.SH SYNOPSIS
@@ -386,6 +386,7 @@ Parent read 28 (0x1c) from efd
.EX
#include <sys/eventfd.h>
#include <unistd.h>
+#include <inttypes.h> /* Definition of PRIu64 & PRIx64 */
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h> /* Definition of uint64_t */
@@ -396,7 +397,7 @@ Parent read 28 (0x1c) from efd
int
main(int argc, char *argv[])
{
- int efd, j;
+ int efd;
uint64_t u;
ssize_t s;
@@ -411,7 +412,7 @@ main(int argc, char *argv[])
switch (fork()) {
case 0:
- for (j = 1; j < argc; j++) {
+ for (int j = 1; j < argc; j++) {
printf("Child writing %s to efd\en", argv[j]);
u = strtoull(argv[j], NULL, 0);
/* strtoull() allows various bases */
@@ -430,8 +431,7 @@ main(int argc, char *argv[])
s = read(efd, &u, sizeof(uint64_t));
if (s != sizeof(uint64_t))
handle_error("read");
- printf("Parent read %llu (0x%llx) from efd\en",
- (unsigned long long) u, (unsigned long long) u);
+ printf("Parent read %"PRIu64" (%#"PRIx64") from efd\en", u, u);
exit(EXIT_SUCCESS);
case \-1:
@@ -451,7 +451,7 @@ main(int argc, char *argv[])
.BR epoll (7),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/execve.2 b/man2/execve.2
index 92b37b96e..2343d7214 100644
--- a/man2/execve.2
+++ b/man2/execve.2
@@ -794,9 +794,7 @@ It just echoes its command-line arguments, one per line.
int
main(int argc, char *argv[])
{
- int j;
-
- for (j = 0; j < argc; j++)
+ for (int j = 0; j < argc; j++)
printf("argv[%d]: %s\en", j, argv[j]);
exit(EXIT_SUCCESS);
@@ -891,7 +889,7 @@ argv[4]: world
.BR path_resolution (7),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/execveat.2 b/man2/execveat.2
index 07f66949a..e1c86072e 100644
--- a/man2/execveat.2
+++ b/man2/execveat.2
@@ -231,7 +231,7 @@ where scripts recursively employ
.BR openat (2),
.BR fexecve (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/exit_group.2 b/man2/exit_group.2
index e086511fc..773085e1a 100644
--- a/man2/exit_group.2
+++ b/man2/exit_group.2
@@ -49,7 +49,7 @@ wrapper function is called.
.SH SEE ALSO
.BR exit (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/fallocate.2 b/man2/fallocate.2
index 6eab733a9..7e9e016fc 100644
--- a/man2/fallocate.2
+++ b/man2/fallocate.2
@@ -481,7 +481,7 @@ is Linux-specific.
.BR posix_fadvise (3),
.BR posix_fallocate (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/fanotify_init.2 b/man2/fanotify_init.2
index 4408aa384..2cbd86a87 100644
--- a/man2/fanotify_init.2
+++ b/man2/fanotify_init.2
@@ -1,4 +1,4 @@
-.\" Copyright (C) 2013, Heinrich Schuchardt <xypron.glpk@gmx.de>
+\" Copyright (C) 2013, Heinrich Schuchardt <xypron.glpk@gmx.de>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
@@ -21,7 +21,7 @@
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
-.TH FANOTIFY_INIT 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH FANOTIFY_INIT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
fanotify_init \- create and initialize fanotify group
.SH SYNOPSIS
@@ -159,22 +159,30 @@ supplied to
.\" commit a8b13aa20afb69161b5123b4f1acc7ea0a03d360
This value allows the receipt of events which contain additional information
about the underlying filesystem object correlated to an event.
-An additional structure encapsulates the information about the object and is
-included alongside the generic event metadata structure.
+An additional record of type
+.BR FAN_EVENT_INFO_TYPE_FID
+encapsulates the information about the object and is included alongside the
+generic event metadata structure.
The file descriptor that is used to represent the object correlated to an
event is instead substituted with a file handle.
It is intended for applications that may find the use of a file handle to
identify an object more suitable than a file descriptor.
-Additionally, it may be used for applications that are interested in
-directory entry events, such as
+Additionally, it may be used for applications monitoring a directory or a
+filesystem that are interested in the directory entry modification events
.BR FAN_CREATE ,
-.BR FAN_ATTRIB ,
+.BR FAN_DELETE ,
+and
.BR FAN_MOVE ,
+or in events such as
+.BR FAN_ATTRIB ,
+.BR FAN_DELETE_SELF ,
and
-.BR FAN_DELETE
-for example.
-Note that the use of directory modification events are not supported when
-monitoring a mount point.
+.BR FAN_MOVE_SELF .
+All the events above require an fanotify group that identifies filesystem
+objects by file handles.
+Note that for the directory entry modification events the reported file handle
+identifies the modified directory and not the created/deleted/moved child
+object.
The use of
.BR FAN_CLASS_CONTENT
or
@@ -183,7 +191,93 @@ is not permitted with this flag and will result in the error
.BR EINVAL .
See
.BR fanotify (7)
-for additional information.
+for additional details.
+.TP
+.BR FAN_REPORT_DIR_FID " (since Linux 5.9)"
+Events for fanotify groups initialized with this flag will contain
+(see exceptions below) additional information about a directory object
+correlated to an event.
+An additional record of type
+.BR FAN_EVENT_INFO_TYPE_DFID
+encapsulates the information about the directory object and is included
+alongside the generic event metadata structure.
+For events that occur on a non-directory object, the additional structure
+includes a file handle that identifies the parent directory filesystem object.
+Note that there is no guarantee that the directory filesystem object will be
+found at the location described by the file handle information at the time
+the event is received.
+When combined with the flag
+.BR FAN_REPORT_FID ,
+two records may be reported with events that occur on a non-directory object,
+one to identify the non-directory object itself and one to identify the parent
+directory object.
+Note that in some cases, a filesystem object does not have a parent,
+for example, when an event occurs on an unlinked but open file.
+In that case, with the
+.BR FAN_REPORT_FID
+flag, the event will be reported with only one record to identify the
+non-directory object itself, because there is no directory associated with
+the event.
+Without the
+.BR FAN_REPORT_FID
+flag, no event will be reported.
+See
+.BR fanotify (7)
+for additional details.
+.TP
+.BR FAN_REPORT_NAME " (since Linux 5.9)"
+Events for fanotify groups initialized with this flag will contain additional
+information about the name of the directory entry correlated to an event.
+This flag must be provided in conjunction with the flag
+.BR FAN_REPORT_DIR_FID .
+Providing this flag value without
+.BR FAN_REPORT_DIR_FID
+will result in the error
+.BR EINVAL .
+This flag may be combined with the flag
+.BR FAN_REPORT_FID .
+An additional record of type
+.BR FAN_EVENT_INFO_TYPE_DFID_NAME ,
+which encapsulates the information about the directory entry, is included
+alongside the generic event metadata structure and substitutes the additional
+information record of type
+.BR FAN_EVENT_INFO_TYPE_DFID .
+The additional record includes a file handle that identifies a directory
+filesystem object followed by a name that identifies an entry in that
+directory.
+For the directory entry modification events
+.BR FAN_CREATE ,
+.BR FAN_DELETE ,
+and
+.BR FAN_MOVE ,
+the reported name is that of the created/deleted/moved directory entry.
+For other events that occur on a directory object, the reported file handle
+is that of the directory object itself and the reported name is '.'.
+For other events that occur on a non-directory object, the reported file handle
+is that of the parent directory object and the reported name is the name of a
+directory entry where the object was located at the time of the event.
+The rationale behind this logic is that the reported directory file handle can
+be passed to
+.BR open_by_handle_at (2)
+to get an open directory file descriptor and that file descriptor along with
+the reported name can be used to call
+.BR fstatat (2).
+The same rule that applies to record type
+.BR FAN_EVENT_INFO_TYPE_DFID
+also applies to record type
+.BR FAN_EVENT_INFO_TYPE_DFID_NAME :
+if a non-directory object has no parent, either the event will not be reported
+or it will be reported without the directory entry information.
+Note that there is no guarantee that the filesystem object will be found at the
+location described by the directory entry information at the time the event is
+received.
+See
+.BR fanotify (7)
+for additional details.
+.TP
+.B FAN_REPORT_DFID_NAME
+This is a synonym for
+.RB ( FAN_REPORT_DIR_FID | FAN_REPORT_NAME ).
.PP
The
.I event_f_flags
@@ -308,7 +402,7 @@ returned when reading from the fanotify file descriptor.
.BR fanotify_mark (2),
.BR fanotify (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/fanotify_mark.2 b/man2/fanotify_mark.2
index 8428841a4..187ff16de 100644
--- a/man2/fanotify_mark.2
+++ b/man2/fanotify_mark.2
@@ -21,7 +21,7 @@
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
-.TH FANOTIFY_MARK 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH FANOTIFY_MARK 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
fanotify_mark \- add, remove, or modify an fanotify mark on a filesystem
object
@@ -126,10 +126,7 @@ is not itself a mount point, the mount point containing
will be marked.
All directories, subdirectories, and the contained files of the mount point
will be monitored.
-The events which require the
-.I fanotify_fd
-file descriptor to have been initialized with the flag
-.BR FAN_REPORT_FID ,
+The events which require that filesystem objects are identified by file handles,
such as
.BR FAN_CREATE ,
.BR FAN_ATTRIB ,
@@ -194,54 +191,47 @@ See NOTES for additional details.
.BR FAN_ATTRIB " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when the metadata for a file or directory has changed.
-An fanotify file descriptor created with
-.B FAN_REPORT_FID
+An fanotify group that identifies filesystem objects by file handles
is required.
.TP
.BR FAN_CREATE " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been created in a marked
parent directory.
-An fanotify file descriptor created with
-.B FAN_REPORT_FID
+An fanotify group that identifies filesystem objects by file handles
is required.
.TP
.BR FAN_DELETE " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been deleted in a marked
parent directory.
-An fanotify file descriptor created with
-.B FAN_REPORT_FID
+An fanotify group that identifies filesystem objects by file handles
is required.
.TP
.BR FAN_DELETE_SELF " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a marked file or directory itself is deleted.
-An fanotify file descriptor created with
-.B FAN_REPORT_FID
+An fanotify group that identifies filesystem objects by file handles
is required.
.TP
.BR FAN_MOVED_FROM " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been moved from a marked
parent directory.
-An fanotify file descriptor created with
-.B FAN_REPORT_FID
+An fanotify group that identifies filesystem objects by file handles
is required.
.TP
.BR FAN_MOVED_TO " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been moved to a marked parent
directory.
-An fanotify file descriptor created with
-.B FAN_REPORT_FID
+An fanotify group that identifies filesystem objects by file handles
is required.
.TP
.BR FAN_MOVE_SELF " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a marked file or directory itself has been moved.
-An fanotify file descriptor created with
-.B FAN_REPORT_FID
+An fanotify group that identifies filesystem objects by file handles
is required.
.TP
.B FAN_OPEN_PERM
@@ -393,8 +383,7 @@ was not an fanotify file descriptor.
.B EINVAL
The fanotify file descriptor was opened with
.B FAN_CLASS_NOTIF
-or
-.B FAN_REPORT_FID
+or the fanotify group identifies filesystem objects by file handles
and mask contains a flag for permission events
.RB ( FAN_OPEN_PERM
or
@@ -407,11 +396,8 @@ is not associated with a filesystem that supports
.I fsid
(e.g.,
.BR tmpfs (5)).
-This error can be returned only when an fanotify file descriptor returned
-by
-.BR fanotify_init (2)
-has been created with
-.BR FAN_REPORT_FID .
+This error can be returned only with an fanotify group that identifies
+filesystem objects by file handles.
.TP
.B ENOENT
The filesystem object indicated by
@@ -452,11 +438,8 @@ The object indicated by
.I pathname
is associated with a filesystem that does not support the encoding of file
handles.
-This error can be returned only when an fanotify file descriptor returned
-by
-.BR fanotify_init (2)
-has been created with
-.BR FAN_REPORT_FID .
+This error can be returned only with an fanotify group that identifies
+filesystem objects by file handles.
.TP
.B EXDEV
The filesystem object indicated by
@@ -466,11 +449,8 @@ resides within a filesystem subvolume (e.g.,
which uses a different
.I fsid
than its root superblock.
-This error can be returned only when an fanotify file descriptor returned
-by
-.BR fanotify_init (2)
-has been created with
-.BR FAN_REPORT_FID .
+This error can be returned only with an fanotify group that identifies
+filesystem objects by file handles.
.SH VERSIONS
.BR fanotify_mark ()
was introduced in version 2.6.36 of the Linux kernel and enabled in version
@@ -553,7 +533,7 @@ is not checked for invalid values.
.BR fanotify_init (2),
.BR fanotify (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/fcntl.2 b/man2/fcntl.2
index b251276cc..7f53a6107 100644
--- a/man2/fcntl.2
+++ b/man2/fcntl.2
@@ -2126,7 +2126,7 @@ directory, and
is called
.IR mandatory.txt )
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/flock.2 b/man2/flock.2
index e59d63bda..bf4e85d6f 100644
--- a/man2/flock.2
+++ b/man2/flock.2
@@ -253,7 +253,7 @@ in the Linux kernel source tree
.RI ( Documentation/locks.txt
in older kernels)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/fork.2 b/man2/fork.2
index 13ec83649..f35179b7a 100644
--- a/man2/fork.2
+++ b/man2/fork.2
@@ -326,7 +326,7 @@ and
.BR capabilities (7),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/fsync.2 b/man2/fsync.2
index 25d0cd0b3..ee35b088a 100644
--- a/man2/fsync.2
+++ b/man2/fsync.2
@@ -45,10 +45,10 @@ fsync, fdatasync \- synchronize a file's in-core state with storage device
.PP
.BI "int fdatasync(int " fd );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fsync ():
Glibc 2.16 and later:
@@ -199,7 +199,7 @@ to guarantee safe operation.
.BR hdparm (8),
.BR mount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/futex.2 b/man2/futex.2
index fc223cc40..d86771b8f 100644
--- a/man2/futex.2
+++ b/man2/futex.2
@@ -19,19 +19,20 @@
.\" FIXME Do we need to add some text regarding Torvald Riegel's 2015-01-24 mail
.\" http://thread.gmane.org/gmane.linux.kernel/1703405/focus=1873242
.\"
-.TH FUTEX 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH FUTEX 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
futex \- fast user-space locking
.SH SYNOPSIS
.nf
.PP
-.B "#include <linux/futex.h>"
-.B "#include <sys/time.h>"
+.B #include <linux/futex.h>
+.B #include <stdint.h>
+.B #include <sys/time.h>
.PP
-.BI "int futex(int *" uaddr ", int " futex_op ", int " val ,
+.BI "long futex(uint32_t *" uaddr ", int " futex_op ", uint32_t " val ,
.BI " const struct timespec *" timeout , \
" \fR /* or: \fBuint32_t \fIval2\fP */"
-.BI " int *" uaddr2 ", int " val3 );
+.BI " uint32_t *" uaddr2 ", uint32_t " val3 );
.fi
.PP
.IR Note :
@@ -199,7 +200,7 @@ The
.I futex_op
argument consists of two parts:
a command that specifies the operation to be performed,
-bit-wise ORed with zero or more options that
+bitwise ORed with zero or more options that
modify the behaviour of the operation.
The options that may be included in
.I futex_op
@@ -581,8 +582,8 @@ any of the two supplied futex words:
.IP
.in +4n
.EX
-int oldval = *(int *) uaddr2;
-*(int *) uaddr2 = oldval \fIop\fP \fIoparg\fP;
+uint32_t oldval = *(uint32_t *) uaddr2;
+*(uint32_t *) uaddr2 = oldval \fIop\fP \fIoparg\fP;
futex(uaddr, FUTEX_WAKE, val, 0, 0, 0);
if (oldval \fIcmp\fP \fIcmparg\fP)
futex(uaddr2, FUTEX_WAKE, val2, 0, 0, 0);
@@ -621,7 +622,7 @@ in the bits of the argument
.IR val3 .
Pictorially, the encoding is:
.IP
-.in +8n
+.in +4n
.EX
+---+---+-----------+-----------+
|op |cmp| oparg | cmparg |
@@ -667,7 +668,7 @@ FUTEX_OP_XOR 4 /* uaddr2 \(ha= oparg; */
.EE
.in
.IP
-In addition, bit-wise ORing the following value into
+In addition, bitwise ORing the following value into
.I op
causes
.IR "(1\ <<\ oparg)"
@@ -741,7 +742,7 @@ except that the
argument is used to provide a 32-bit bit mask to the kernel.
This bit mask, in which at least one bit must be set,
is used to select which waiters should be woken up.
-The selection is done by a bit-wise AND of the "wake" bit mask
+The selection is done by a bitwise AND of the "wake" bit mask
(i.e., the value in
.IR val3 )
and the bit mask which is stored in the kernel-internal
@@ -1753,6 +1754,7 @@ Child (18535) 4
#include <stdio.h>
#include <errno.h>
#include <stdatomic.h>
+#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
@@ -1764,11 +1766,11 @@ Child (18535) 4
#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \e
} while (0)
-static int *futex1, *futex2, *iaddr;
+static uint32_t *futex1, *futex2, *iaddr;
static int
-futex(int *uaddr, int futex_op, int val,
- const struct timespec *timeout, int *uaddr2, int val3)
+futex(uint32_t *uaddr, int futex_op, uint32_t val,
+ const struct timespec *timeout, uint32_t *uaddr2, uint32_t val3)
{
return syscall(SYS_futex, uaddr, futex_op, val,
timeout, uaddr2, val3);
@@ -1778,9 +1780,9 @@ futex(int *uaddr, int futex_op, int val,
become 1, and then set the value to 0. */
static void
-fwait(int *futexp)
+fwait(uint32_t *futexp)
{
- int s;
+ long s;
/* atomic_compare_exchange_strong(ptr, oldval, newval)
atomically performs the equivalent of:
@@ -1793,7 +1795,7 @@ fwait(int *futexp)
while (1) {
/* Is the futex available? */
- const int one = 1;
+ const uint32_t one = 1;
if (atomic_compare_exchange_strong(futexp, &one, 0))
break; /* Yes */
@@ -1810,13 +1812,14 @@ fwait(int *futexp)
so that if the peer is blocked in fpost(), it can proceed. */
static void
-fpost(int *futexp)
+fpost(uint32_t *futexp)
{
- int s;
+ long s;
- /* atomic_compare_exchange_strong() was described in comments above */
+ /* atomic_compare_exchange_strong() was described
+ in comments above */
- const int zero = 0;
+ const uint32_t zero = 0;
if (atomic_compare_exchange_strong(futexp, &zero, 1)) {
s = futex(futexp, FUTEX_WAKE, 1, NULL, NULL, 0);
if (s == \-1)
@@ -1828,7 +1831,7 @@ int
main(int argc, char *argv[])
{
pid_t childPid;
- int j, nloops;
+ int nloops;
setbuf(stdout, NULL);
@@ -1839,7 +1842,7 @@ main(int argc, char *argv[])
subsequently use the "shared" futex operations (i.e., not the
ones suffixed "_PRIVATE") */
- iaddr = mmap(NULL, sizeof(int) * 2, PROT_READ | PROT_WRITE,
+ iaddr = mmap(NULL, sizeof(*iaddr) * 2, PROT_READ | PROT_WRITE,
MAP_ANONYMOUS | MAP_SHARED, \-1, 0);
if (iaddr == MAP_FAILED)
errExit("mmap");
@@ -1858,9 +1861,9 @@ main(int argc, char *argv[])
errExit("fork");
if (childPid == 0) { /* Child */
- for (j = 0; j < nloops; j++) {
+ for (int j = 0; j < nloops; j++) {
fwait(futex1);
- printf("Child (%ld) %d\en", (long) getpid(), j);
+ printf("Child (%jd) %d\en", (intmax_t) getpid(), j);
fpost(futex2);
}
@@ -1869,9 +1872,9 @@ main(int argc, char *argv[])
/* Parent falls through to here */
- for (j = 0; j < nloops; j++) {
+ for (int j = 0; j < nloops; j++) {
fwait(futex2);
- printf("Parent (%ld) %d\en", (long) getpid(), j);
+ printf("Parent (%jd) %d\en", (intmax_t) getpid(), j);
fpost(futex1);
}
@@ -1931,7 +1934,7 @@ Futex example library, futex-*.tar.bz2 at
.\" WIP, and the generic pthread_mutex_t and perhaps condvar
.\" implementations.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/futimesat.2 b/man2/futimesat.2
index 62e23247d..f5f407e4e 100644
--- a/man2/futimesat.2
+++ b/man2/futimesat.2
@@ -35,10 +35,10 @@ directory file descriptor
.BI " const struct timeval " times [2]);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR futimesat ():
_GNU_SOURCE
@@ -132,7 +132,7 @@ wrapper function updates the times for the file referred to by
.BR futimes (3),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/get_kernel_syms.2 b/man2/get_kernel_syms.2
index 413d7f4d3..09a11b7d2 100644
--- a/man2/get_kernel_syms.2
+++ b/man2/get_kernel_syms.2
@@ -94,7 +94,7 @@ in favor of other interfaces described on its manual page).
.BR init_module (2),
.BR query_module (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/get_mempolicy.2 b/man2/get_mempolicy.2
index 3cf154535..bc0efe4fd 100644
--- a/man2/get_mempolicy.2
+++ b/man2/get_mempolicy.2
@@ -250,7 +250,7 @@ For information on library support, see
.BR numa (7),
.BR numactl (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/get_robust_list.2 b/man2/get_robust_list.2
index c75aedb92..dcc38771d 100644
--- a/man2/get_robust_list.2
+++ b/man2/get_robust_list.2
@@ -171,7 +171,7 @@ and
in the Linux kernel source tree
.\" http://lwn.net/Articles/172149/
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getcpu.2 b/man2/getcpu.2
index 3fa21d899..c89f8b025 100644
--- a/man2/getcpu.2
+++ b/man2/getcpu.2
@@ -141,7 +141,7 @@ migrating threads between CPUs, and so the argument is now ignored.
.BR cpuset (7),
.BR vdso (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getcwd.2 b/man2/getcwd.2
new file mode 100644
index 000000000..f080be0fc
--- /dev/null
+++ b/man2/getcwd.2
@@ -0,0 +1,2 @@
+.so man3/getcwd.3
+.\" Because getcwd(3) is layered on a system call of the same name
diff --git a/man2/getdents.2 b/man2/getdents.2
index e6df3ae57..3b1fe12a8 100644
--- a/man2/getdents.2
+++ b/man2/getdents.2
@@ -28,15 +28,18 @@
.\" Derived from 'readdir.2'.
.\" Modified Tue Oct 22 08:11:14 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
.\"
-.TH GETDENTS 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH GETDENTS 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
getdents, getdents64 \- get directory entries
.SH SYNOPSIS
.nf
-.BI "int getdents(unsigned int " fd ", struct linux_dirent *" dirp ,
-.BI " unsigned int " count );
-.BI "int getdents64(unsigned int " fd ", struct linux_dirent64 *" dirp ,
+.BI "long getdents(unsigned int " fd ", struct linux_dirent *" dirp ,
.BI " unsigned int " count );
+.PP
+.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
+.BR "#include <dirent.h>"
+.PP
+.BI "ssize_t getdents64(int " fd ", void *" dirp ", size_t " count );
.fi
.PP
.IR Note :
@@ -222,7 +225,7 @@ or
.I linux_dirent64
structure yourself.
.PP
-Probably, you probably want to use
+Probably, you want to use
.BR readdir (3)
instead of these system calls.
.PP
@@ -256,6 +259,7 @@ inode# file type d_reclen d_off d_name
#define _GNU_SOURCE
#include <dirent.h> /* Defines DT_* constants */
#include <fcntl.h>
+#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
@@ -277,17 +281,17 @@ struct linux_dirent {
int
main(int argc, char *argv[])
{
- int fd, nread;
+ int fd;
+ long nread;
char buf[BUF_SIZE];
struct linux_dirent *d;
- int bpos;
char d_type;
fd = open(argc > 1 ? argv[1] : ".", O_RDONLY | O_DIRECTORY);
if (fd == \-1)
handle_error("open");
- for ( ; ; ) {
+ for (;;) {
nread = syscall(SYS_getdents, fd, buf, BUF_SIZE);
if (nread == \-1)
handle_error("getdents");
@@ -297,7 +301,7 @@ main(int argc, char *argv[])
printf("\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- nread=%d \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\en", nread);
printf("inode# file type d_reclen d_off d_name\en");
- for (bpos = 0; bpos < nread;) {
+ for (long bpos = 0; bpos < nread;) {
d = (struct linux_dirent *) (buf + bpos);
printf("%8ld ", d\->d_ino);
d_type = *(buf + bpos + d\->d_reclen \- 1);
@@ -308,8 +312,8 @@ main(int argc, char *argv[])
(d_type == DT_LNK) ? "symlink" :
(d_type == DT_BLK) ? "block dev" :
(d_type == DT_CHR) ? "char dev" : "???");
- printf("%4d %10lld %s\en", d\->d_reclen,
- (long long) d\->d_off, d\->d_name);
+ printf("%4d %10jd %s\en", d\->d_reclen,
+ (intmax_t) d\->d_off, d\->d_name);
bpos += d\->d_reclen;
}
}
@@ -322,7 +326,7 @@ main(int argc, char *argv[])
.BR readdir (3),
.BR inode (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getdomainname.2 b/man2/getdomainname.2
index 10c8885d4..4776f446f 100644
--- a/man2/getdomainname.2
+++ b/man2/getdomainname.2
@@ -36,10 +36,10 @@ getdomainname, setdomainname \- get/set NIS domain name
.br
.BI "int setdomainname(const char *" name ", size_t " len );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR getdomainname (),
@@ -139,7 +139,7 @@ field returned from a call to
.BR uname (2),
.BR uts_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getgid.2 b/man2/getgid.2
index f923c11b9..f58742dc2 100644
--- a/man2/getgid.2
+++ b/man2/getgid.2
@@ -81,7 +81,7 @@ for details regarding register mapping.
.BR setregid (2),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getgroups.2 b/man2/getgroups.2
index a83adf5c6..578c47abe 100644
--- a/man2/getgroups.2
+++ b/man2/getgroups.2
@@ -43,10 +43,10 @@ getgroups, setgroups \- get/set list of supplementary group IDs
.PP
.BI "int setgroups(size_t " size ", const gid_t *" list );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR setgroups ():
Since glibc 2.19:
@@ -225,7 +225,7 @@ For details, see
.BR capabilities (7),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/gethostname.2 b/man2/gethostname.2
index 8984f9107..82652bd18 100644
--- a/man2/gethostname.2
+++ b/man2/gethostname.2
@@ -39,10 +39,10 @@ gethostname, sethostname \- get/set hostname
.br
.BI "int sethostname(const char *" name ", size_t " len );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.PD 0
@@ -188,7 +188,7 @@ set to
.BR uname (2),
.BR uts_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getitimer.2 b/man2/getitimer.2
index 89983a2e9..8421836c2 100644
--- a/man2/getitimer.2
+++ b/man2/getitimer.2
@@ -264,7 +264,7 @@ error.
.BR timerfd_create (2),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getpagesize.2 b/man2/getpagesize.2
index 5c76f0c7e..be58aa7da 100644
--- a/man2/getpagesize.2
+++ b/man2/getpagesize.2
@@ -30,10 +30,10 @@ getpagesize \- get memory page size
.PP
.B int getpagesize(void);
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getpagesize ():
.ad l
@@ -113,7 +113,7 @@ Things are OK in glibc 2.1.
.BR mmap (2),
.BR sysconf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getpeername.2 b/man2/getpeername.2
index 9edc6b5bb..9fe094e4d 100644
--- a/man2/getpeername.2
+++ b/man2/getpeername.2
@@ -142,7 +142,7 @@ the address of the sender when using
.BR socket (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getpid.2 b/man2/getpid.2
index 4c8e143f3..f985559fe 100644
--- a/man2/getpid.2
+++ b/man2/getpid.2
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH GETPID 2 2019-03-06 "Linux" "Linux Programmer's Manual"
+.TH GETPID 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
getpid, getppid \- get process identification
.SH SYNOPSIS
@@ -97,6 +97,7 @@ in the child would return the wrong value
.\" #define _GNU_SOURCE
.\" #include <sys/syscall.h>
.\" #include <sys/wait.h>
+.\" #include <stdint.h>
.\" #include <stdio.h>
.\" #include <stdlib.h>
.\" #include <unistd.h>
@@ -106,13 +107,13 @@ in the child would return the wrong value
.\" {
.\" /* The following statement fills the getpid() cache */
.\"
-.\" printf("parent PID = %ld\n", (long) getpid());
+.\" printf("parent PID = %ld\n", (intmax_t) getpid());
.\"
.\" if (syscall(SYS_fork) == 0) {
.\" if (getpid() != syscall(SYS_getpid))
-.\" printf("child getpid() mismatch: getpid()=%ld; "
+.\" printf("child getpid() mismatch: getpid()=%jd; "
.\" "syscall(SYS_getpid)=%ld\n",
-.\" (long) getpid(), (long) syscall(SYS_getpid));
+.\" (intmax_t) getpid(), (long) syscall(SYS_getpid));
.\" exit(EXIT_SUCCESS);
.\" }
.\" wait(NULL);
@@ -165,7 +166,7 @@ for details regarding register mapping.
.BR credentials (7),
.BR pid_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getpriority.2 b/man2/getpriority.2
index 370159ed2..94b16d1dd 100644
--- a/man2/getpriority.2
+++ b/man2/getpriority.2
@@ -251,7 +251,7 @@ which may be made standards conformant in the future.
.I Documentation/scheduler/sched-nice-design.txt
in the Linux kernel source tree (since Linux 2.6.23)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getrandom.2 b/man2/getrandom.2
index 0459ca436..6a01625e5 100644
--- a/man2/getrandom.2
+++ b/man2/getrandom.2
@@ -309,7 +309,7 @@ does not react to interrupts before reading all bytes requested.
.BR random (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getresuid.2 b/man2/getresuid.2
index d08b64e33..e8a9c90c1 100644
--- a/man2/getresuid.2
+++ b/man2/getresuid.2
@@ -90,7 +90,7 @@ wrapper functions transparently deal with the variations across kernel versions.
.BR setuid (2),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getrlimit.2 b/man2/getrlimit.2
index 5fda72cdc..b1282902d 100644
--- a/man2/getrlimit.2
+++ b/man2/getrlimit.2
@@ -61,7 +61,7 @@
.\" 2008-05-07, mtk / Peter Zijlstra, Added description of RLIMIT_RTTIME
.\" 2010-11-06, mtk: Added documentation of prlimit()
.\"
-.TH GETRLIMIT 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH GETRLIMIT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
getrlimit, setrlimit, prlimit \- get/set resource limits
.SH SYNOPSIS
@@ -78,10 +78,10 @@ getrlimit, setrlimit, prlimit \- get/set resource limits
.br
.BI " struct rlimit *" old_limit );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR prlimit ():
_GNU_SOURCE
@@ -783,6 +783,7 @@ The program below demonstrates the use of
.EX
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
+#include <stdint.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
@@ -819,15 +820,15 @@ main(int argc, char *argv[])
if (prlimit(pid, RLIMIT_CPU, newp, &old) == \-1)
errExit("prlimit\-1");
- printf("Previous limits: soft=%lld; hard=%lld\en",
- (long long) old.rlim_cur, (long long) old.rlim_max);
+ printf("Previous limits: soft=%jd; hard=%jd\en",
+ (intmax_t) old.rlim_cur, (intmax_t) old.rlim_max);
/* Retrieve and display new CPU time limit */
if (prlimit(pid, RLIMIT_CPU, NULL, &old) == \-1)
errExit("prlimit\-2");
- printf("New limits: soft=%lld; hard=%lld\en",
- (long long) old.rlim_cur, (long long) old.rlim_max);
+ printf("New limits: soft=%jd; hard=%jd\en",
+ (intmax_t) old.rlim_cur, (intmax_t) old.rlim_max);
exit(EXIT_SUCCESS);
}
@@ -853,7 +854,7 @@ main(int argc, char *argv[])
.BR credentials (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getrusage.2 b/man2/getrusage.2
index 344988f6d..bc53b4489 100644
--- a/man2/getrusage.2
+++ b/man2/getrusage.2
@@ -269,7 +269,7 @@ in
.BR wait4 (2),
.BR clock (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getsid.2 b/man2/getsid.2
index 9253eb262..2da6aa4e0 100644
--- a/man2/getsid.2
+++ b/man2/getsid.2
@@ -34,10 +34,10 @@ getsid \- get session ID
.PP
.BI "pid_t getsid(pid_t" " pid" );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.PD 0
@@ -95,7 +95,7 @@ for a description of sessions and session IDs.
.BR setsid (2),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getsockname.2 b/man2/getsockname.2
index 3304f6105..7c4e9194f 100644
--- a/man2/getsockname.2
+++ b/man2/getsockname.2
@@ -113,7 +113,7 @@ type, see
.BR socket (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getsockopt.2 b/man2/getsockopt.2
index 444488f0c..2bf4d8271 100644
--- a/man2/getsockopt.2
+++ b/man2/getsockopt.2
@@ -204,7 +204,7 @@ system.
.BR udp (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/gettid.2 b/man2/gettid.2
index 7115ab8f7..f6cd99ffc 100644
--- a/man2/gettid.2
+++ b/man2/gettid.2
@@ -98,7 +98,7 @@ is the same as its thread ID (the value returned by
.BR tgkill (2),
.BR timer_create (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/gettimeofday.2 b/man2/gettimeofday.2
index 1a49c45da..bf51cb2d8 100644
--- a/man2/gettimeofday.2
+++ b/man2/gettimeofday.2
@@ -50,10 +50,10 @@ gettimeofday, settimeofday \- get / set time
", const struct timezone *" tz );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR settimeofday ():
Since glibc 2.19:
@@ -291,7 +291,7 @@ has been abandoned.
.BR vdso (7),
.BR hwclock (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getuid.2 b/man2/getuid.2
index 25a275178..473da6fb7 100644
--- a/man2/getuid.2
+++ b/man2/getuid.2
@@ -92,7 +92,7 @@ for details regarding register mapping.
.BR setuid (2),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getunwind.2 b/man2/getunwind.2
index 4a2603c93..ff326880a 100644
--- a/man2/getunwind.2
+++ b/man2/getunwind.2
@@ -109,7 +109,7 @@ in the unlikely event that you want to call it, use
.SH SEE ALSO
.BR getauxval (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/getxattr.2 b/man2/getxattr.2
index ee9801a02..ec57c09bc 100644
--- a/man2/getxattr.2
+++ b/man2/getxattr.2
@@ -162,7 +162,7 @@ See
.BR symlink (7),
.BR xattr (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/idle.2 b/man2/idle.2
index c9311d90b..5e14bc1da 100644
--- a/man2/idle.2
+++ b/man2/idle.2
@@ -62,7 +62,7 @@ Since Linux 2.3.13, this system call does not exist anymore.
This function is Linux-specific, and should not be used in programs
intended to be portable.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/init_module.2 b/man2/init_module.2
index 6f7e02a21..5576d5208 100644
--- a/man2/init_module.2
+++ b/man2/init_module.2
@@ -357,7 +357,7 @@ the rest of the module.
.BR lsmod (8),
.BR modprobe (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/inotify_add_watch.2 b/man2/inotify_add_watch.2
index fcfc77af6..993401ec1 100644
--- a/man2/inotify_add_watch.2
+++ b/man2/inotify_add_watch.2
@@ -148,7 +148,7 @@ See
.BR inotify_rm_watch (2),
.BR inotify (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/inotify_init.2 b/man2/inotify_init.2
index 84e2b795e..05a31262a 100644
--- a/man2/inotify_init.2
+++ b/man2/inotify_init.2
@@ -110,7 +110,7 @@ These system calls are Linux-specific.
.BR inotify_rm_watch (2),
.BR inotify (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/inotify_rm_watch.2 b/man2/inotify_rm_watch.2
index 24ed37a09..603b62e25 100644
--- a/man2/inotify_rm_watch.2
+++ b/man2/inotify_rm_watch.2
@@ -73,7 +73,7 @@ This system call is Linux-specific.
.BR inotify_init (2),
.BR inotify (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/intro.2 b/man2/intro.2
index 9afe91dc1..3ec87d2ed 100644
--- a/man2/intro.2
+++ b/man2/intro.2
@@ -26,7 +26,7 @@
.\" new _syscall(2) page, and substantially enhanced and rewrote
.\" the remaining material on this page.
.\"
-.TH INTRO 2 2019-08-02 "Linux" "Linux Programmer's Manual"
+.TH INTRO 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
intro \- introduction to system calls
.SH DESCRIPTION
@@ -129,11 +129,12 @@ Note that these can be different from page to page!
.BR signal (7),
.BR socket (7),
.BR standards (7),
+.BR system_data_types (7),
.BR symlink (7),
.BR sysvipc (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/io_cancel.2 b/man2/io_cancel.2
index d54d71790..203eab168 100644
--- a/man2/io_cancel.2
+++ b/man2/io_cancel.2
@@ -97,7 +97,7 @@ set to a (positive) value that indicates the error.
.\" .SH AUTHOR
.\" Kent Yoder.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/io_destroy.2 b/man2/io_destroy.2
index 38c59c71e..09b734e71 100644
--- a/man2/io_destroy.2
+++ b/man2/io_destroy.2
@@ -86,7 +86,7 @@ set to a (positive) value that indicates the error.
.\" .SH AUTHOR
.\" Kent Yoder.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/io_getevents.2 b/man2/io_getevents.2
index d9db7e847..49e26ce09 100644
--- a/man2/io_getevents.2
+++ b/man2/io_getevents.2
@@ -129,7 +129,7 @@ may cause a segmentation fault instead of generating the error
.\" .SH AUTHOR
.\" Kent Yoder.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/io_setup.2 b/man2/io_setup.2
index 0e8a4e4df..8caa8a745 100644
--- a/man2/io_setup.2
+++ b/man2/io_setup.2
@@ -101,7 +101,7 @@ set to a (positive) value that indicates the error.
.\" .SH AUTHOR
.\" Kent Yoder.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/io_submit.2 b/man2/io_submit.2
index 853198dd3..dba7308da 100644
--- a/man2/io_submit.2
+++ b/man2/io_submit.2
@@ -136,7 +136,7 @@ The
valid values are defined by the enum defined in
.IR linux/aio_abi.h :
.IP
-.in +4
+.in +4n
.EX
enum {
IOCB_CMD_PREAD = 0,
@@ -276,7 +276,7 @@ set to a (positive) value that indicates the error.
.\" .SH AUTHOR
.\" Kent Yoder.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl.2 b/man2/ioctl.2
index 4ae05d50d..5e2833c74 100644
--- a/man2/ioctl.2
+++ b/man2/ioctl.2
@@ -207,7 +207,7 @@ for the various architectures.
.BR sd (4),
.BR tty (4)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_console.2 b/man2/ioctl_console.2
index 89ba73b53..8ced4b524 100644
--- a/man2/ioctl_console.2
+++ b/man2/ioctl_console.2
@@ -872,7 +872,7 @@ Use POSIX functions.
.IR /usr/include/linux/kd.h ,
.I /usr/include/linux/vt.h
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_fat.2 b/man2/ioctl_fat.2
index 2ddda0628..5ea9f4f1a 100644
--- a/man2/ioctl_fat.2
+++ b/man2/ioctl_fat.2
@@ -21,7 +21,7 @@
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
-.TH IOCTL_FAT 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH IOCTL_FAT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
ioctl_fat \- manipulating the FAT filesystem
.SH SYNOPSIS
@@ -422,11 +422,11 @@ The following was recorded when applying the program to the directory
.in +4n
.EX
$ \fB./fat_dir /mnt/user\fP
-\[char46] -> ''
-\[char46]. -> ''
-ALONGF\(ti1.TXT -> 'a long filename.txt'
-UPPER.TXT -> ''
-LOWER.TXT -> 'lower.txt'
+\[char46] -> \(aq\(aq
+\[char46]. -> \(aq\(aq
+ALONGF\(ti1.TXT -> \(aqa long filename.txt\(aq
+UPPER.TXT -> \(aq\(aq
+LOWER.TXT -> \(aqlower.txt\(aq
.EE
.in
.\"
@@ -481,7 +481,7 @@ main(int argc, char *argv[])
/*
* Write both the short name and the long name.
*/
- printf("%s \-> '%s'\en", entry[0].d_name, entry[1].d_name);
+ printf("%s \-> \(aq%s\(aq\en", entry[0].d_name, entry[1].d_name);
}
if (ret == \-1) {
@@ -501,7 +501,7 @@ main(int argc, char *argv[])
.SH SEE ALSO
.BR ioctl (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_ficlonerange.2 b/man2/ioctl_ficlonerange.2
index 237939814..d7e4ea390 100644
--- a/man2/ioctl_ficlonerange.2
+++ b/man2/ioctl_ficlonerange.2
@@ -142,7 +142,7 @@ not fail because of lack of disk space.
.SH SEE ALSO
.BR ioctl (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_fideduperange.2 b/man2/ioctl_fideduperange.2
index f8a22819c..75e16d8a2 100644
--- a/man2/ioctl_fideduperange.2
+++ b/man2/ioctl_fideduperange.2
@@ -210,7 +210,7 @@ single call.
.SH SEE ALSO
.BR ioctl (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_fslabel.2 b/man2/ioctl_fslabel.2
index d905c5f3f..b108252ef 100644
--- a/man2/ioctl_fslabel.2
+++ b/man2/ioctl_fslabel.2
@@ -27,7 +27,7 @@ ioctl_fslabel \- get or set a filesystem label
.B #include <sys/ioctl.h>
.br
.B #include <linux/fs.h>
-.sp
+.PP
.BI "int ioctl(int " fd ", FS_IOC_GETFSLABEL, char " label [FSLABEL_MAX]);
.br
.BI "int ioctl(int " fd ", FS_IOC_SETFSLABEL, char " label [FSLABEL_MAX]);
@@ -86,7 +86,7 @@ will always be null-terminated.
.BR ioctl (2),
.BR blkid (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_getfsmap.2 b/man2/ioctl_getfsmap.2
index 528d4ce53..58062b547 100644
--- a/man2/ioctl_getfsmap.2
+++ b/man2/ioctl_getfsmap.2
@@ -367,7 +367,7 @@ distribution for a sample program.
.SH SEE ALSO
.BR ioctl (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_iflags.2 b/man2/ioctl_iflags.2
index dacde6f45..d1a1c5ef9 100644
--- a/man2/ioctl_iflags.2
+++ b/man2/ioctl_iflags.2
@@ -221,7 +221,7 @@ that the argument is
.BR xattr (7),
.BR mount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_ns.2 b/man2/ioctl_ns.2
index b4cecbb22..2bb19ae87 100644
--- a/man2/ioctl_ns.2
+++ b/man2/ioctl_ns.2
@@ -23,7 +23,7 @@
.\" %%%LICENSE_END
.\"
.\"
-.TH IOCTL_NS 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH IOCTL_NS 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
ioctl_ns \- ioctl() operations for Linux namespaces
.SH DESCRIPTION
@@ -113,7 +113,7 @@ operation can fail with the following error:
.I fd
refers to a nonhierarchical namespace.
.PP
-See the EXAMPLE section for an example of the use of these operations.
+See the EXAMPLES section for an example of the use of these operations.
.\" ============================================================
.\"
.SS Discovering the namespace type
@@ -254,6 +254,7 @@ The owning user namespace is outside your namespace scope
Licensed under the GNU General Public License v2 or later.
*/
+#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
@@ -316,9 +317,10 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
printf("Device/Inode of owning user namespace is: "
- "[%lx,%lx] / %ld\en",
- (long) major(sb.st_dev), (long) minor(sb.st_dev),
- (long) sb.st_ino);
+ "[%jx,%jx] / %ju\en",
+ (uintmax_t) major(sb.st_dev),
+ (uintmax_t) minor(sb.st_dev),
+ (uintmax_t) sb.st_ino);
close(userns_fd);
}
@@ -345,9 +347,10 @@ main(int argc, char *argv[])
perror("fstat\-parentns");
exit(EXIT_FAILURE);
}
- printf("Device/Inode of parent namespace is: [%lx,%lx] / %ld\en",
- (long) major(sb.st_dev), (long) minor(sb.st_dev),
- (long) sb.st_ino);
+ printf("Device/Inode of parent namespace is: [%jx,%jx] / %ju\en",
+ (uintmax_t) major(sb.st_dev),
+ (uintmax_t) minor(sb.st_dev),
+ (uintmax_t) sb.st_ino);
close(parent_fd);
}
@@ -361,7 +364,7 @@ main(int argc, char *argv[])
.BR proc (5),
.BR namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_tty.2 b/man2/ioctl_tty.2
index 811b3a771..3eb4ab0f2 100644
--- a/man2/ioctl_tty.2
+++ b/man2/ioctl_tty.2
@@ -592,7 +592,7 @@ main(void)
.\" TIOCSERSETMULTI const struct serial_multiport_struct *
.\" TIOCGSERIAL, TIOCSSERIAL (see above)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2
index 4bdc73bfb..9f570794b 100644
--- a/man2/ioctl_userfaultfd.2
+++ b/man2/ioctl_userfaultfd.2
@@ -111,7 +111,7 @@ operations available.
For Linux kernel versions before 4.11, the
.I features
field must be initialized to zero before the call to
-.IR UFFDIO_API ,
+.BR UFFDIO_API ,
and zero (i.e., no feature bits) is placed in the
.I features
field by the kernel upon return from
@@ -500,17 +500,17 @@ field.
.BR ENOENT " (since Linux 4.11)"
The faulting process has changed
its virtual memory layout simultaneously with an outstanding
-.I UFFDIO_COPY
+.B UFFDIO_COPY
operation.
.TP
.BR ENOSPC " (from Linux 4.11 until Linux 4.13)"
The faulting process has exited at the time of a
-.I UFFDIO_COPY
+.B UFFDIO_COPY
operation.
.TP
.BR ESRCH " (since Linux 4.13)"
The faulting process has exited at the time of a
-.I UFFDIO_COPY
+.B UFFDIO_COPY
operation.
.\"
.SS UFFDIO_ZEROPAGE
@@ -597,7 +597,7 @@ field.
.TP
.BR ESRCH " (since Linux 4.13)"
The faulting process has exited at the time of a
-.I UFFDIO_ZEROPAGE
+.B UFFDIO_ZEROPAGE
operation.
.\"
.SS UFFDIO_WAKE
@@ -690,7 +690,7 @@ See
.IR Documentation/admin-guide/mm/userfaultfd.rst
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioperm.2 b/man2/ioperm.2
index 38d4dcbd1..23deb3d34 100644
--- a/man2/ioperm.2
+++ b/man2/ioperm.2
@@ -121,7 +121,7 @@ Avoid the latter, it is available on i386 only.
.BR outb (2),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/iopl.2 b/man2/iopl.2
index a919a87f3..2ec2f3b58 100644
--- a/man2/iopl.2
+++ b/man2/iopl.2
@@ -108,7 +108,7 @@ and won't be reinstated.
.BR outb (2),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ioprio_set.2 b/man2/ioprio_set.2
index d8de47b39..e1ae5e56a 100644
--- a/man2/ioprio_set.2
+++ b/man2/ioprio_set.2
@@ -370,7 +370,7 @@ Suitable definitions can be found in
.I Documentation/block/ioprio.txt
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ipc.2 b/man2/ipc.2
index 0407c75a9..57f94be47 100644
--- a/man2/ipc.2
+++ b/man2/ipc.2
@@ -69,7 +69,7 @@ and so on really are implemented as separate system calls.
.BR shmget (2),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/kcmp.2 b/man2/kcmp.2
index 7d4b2ed40..0ae60ca46 100644
--- a/man2/kcmp.2
+++ b/man2/kcmp.2
@@ -25,7 +25,7 @@
.\"
.\" Kernel commit d97b46a64674a267bc41c9e16132ee2a98c3347d
.\"
-.TH KCMP 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH KCMP 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
kcmp \- compare two processes to determine if they share a kernel resource
.SH SYNOPSIS
@@ -352,6 +352,7 @@ Child duplicated FD 3 to create FD 5
#include <sys/syscall.h>
#include <sys/wait.h>
#include <sys/stat.h>
+#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
@@ -369,11 +370,11 @@ kcmp(pid_t pid1, pid_t pid2, int type,
}
static void
-test_kcmp(char *msg, id_t pid1, pid_t pid2, int fd_a, int fd_b)
+test_kcmp(char *msg, pid_t pid1, pid_t pid2, int fd_a, int fd_b)
{
printf("\et%s\en", msg);
- printf("\et\etkcmp(%ld, %ld, KCMP_FILE, %d, %d) ==> %s\en",
- (long) pid1, (long) pid2, fd_a, fd_b,
+ printf("\et\etkcmp(%jd, %jd, KCMP_FILE, %d, %d) ==> %s\en",
+ (intmax_t) pid1, (intmax_t) pid2, fd_a, fd_b,
(kcmp(pid1, pid2, KCMP_FILE, fd_a, fd_b) == 0) ?
"same" : "different");
}
@@ -388,7 +389,7 @@ main(int argc, char *argv[])
if (fd1 == \-1)
errExit("open");
- printf("Parent PID is %ld\en", (long) getpid());
+ printf("Parent PID is %jd\en", (intmax_t) getpid());
printf("Parent opened file on FD %d\en\en", fd1);
switch (fork()) {
@@ -396,7 +397,7 @@ main(int argc, char *argv[])
errExit("fork");
case 0:
- printf("PID of child of fork() is %ld\en", (long) getpid());
+ printf("PID of child of fork() is %jd\en", (intmax_t) getpid());
test_kcmp("Compare duplicate FDs from different processes:",
getpid(), getppid(), fd1, fd1);
@@ -429,7 +430,7 @@ main(int argc, char *argv[])
.BR clone (2),
.BR unshare (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/kexec_load.2 b/man2/kexec_load.2
index 4fcf14f5c..bfea3584a 100644
--- a/man2/kexec_load.2
+++ b/man2/kexec_load.2
@@ -348,7 +348,7 @@ The kernel source files
and
.IR Documentation/admin-guide/kernel-parameters.txt
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/keyctl.2 b/man2/keyctl.2
index a68e9d437..c938487bd 100644
--- a/man2/keyctl.2
+++ b/man2/keyctl.2
@@ -25,7 +25,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH KEYCTL 2 2020-06-09 Linux "Linux Key Management Calls"
+.TH KEYCTL 2 2020-11-01 Linux "Linux Key Management Calls"
.SH NAME
keyctl \- manipulate the kernel's key management facility
.SH SYNOPSIS
@@ -2080,6 +2080,7 @@ $ \fBcat /proc/keys | egrep \(aqmykey|256e6a6\(aq\fP
#include <keyutils.h>
#include <time.h>
#include <fcntl.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -2129,13 +2130,16 @@ main(int argc, char *argv[])
fprintf(fp, "Command line arguments:\en");
fprintf(fp, " argv[0]: %s\en", argv[0]);
fprintf(fp, " operation: %s\en", operation);
- fprintf(fp, " key_to_instantiate: %lx\en",
- (long) key_to_instantiate);
- fprintf(fp, " UID: %ld\en", (long) uid);
- fprintf(fp, " GID: %ld\en", (long) gid);
- fprintf(fp, " thread_keyring: %lx\en", (long) thread_keyring);
- fprintf(fp, " process_keyring: %lx\en", (long) process_keyring);
- fprintf(fp, " session_keyring: %lx\en", (long) session_keyring);
+ fprintf(fp, " key_to_instantiate: %jx\en",
+ (uintmax_t) key_to_instantiate);
+ fprintf(fp, " UID: %jd\en", (intmax_t) uid);
+ fprintf(fp, " GID: %jd\en", (intmax_t) gid);
+ fprintf(fp, " thread_keyring: %jx\en",
+ (uintmax_t) thread_keyring);
+ fprintf(fp, " process_keyring: %jx\en",
+ (uintmax_t) process_keyring);
+ fprintf(fp, " session_keyring: %jx\en",
+ (uintmax_t) session_keyring);
fprintf(fp, "\en");
/*
@@ -2184,7 +2188,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- fprintf(fp, "Auth key ID: %lx\en", (long) auth_key);
+ fprintf(fp, "Auth key ID: %jx\en", (uintmax_t) auth_key);
/*
* Fetch key ID for the request_key(2) destination keyring.
@@ -2197,7 +2201,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- fprintf(fp, "Destination keyring: %lx\en", (long) dest_keyring);
+ fprintf(fp, "Destination keyring: %jx\en", (uintmax_t) dest_keyring);
/*
* Fetch the description of the authorization key. This
@@ -2285,7 +2289,7 @@ The kernel source files under
(or, before Linux 4.13, in the file
.IR Documentation/security/keys.txt ).
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/kill.2 b/man2/kill.2
index fc76b831c..507906634 100644
--- a/man2/kill.2
+++ b/man2/kill.2
@@ -52,10 +52,10 @@ kill \- send signal to a process
.BI "int kill(pid_t " pid ", int " sig );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR kill ():
@@ -180,7 +180,7 @@ to all of the processes for which the caller had permission to signal.
.BR credentials (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/link.2 b/man2/link.2
index 7a90eb59b..d63d18b65 100644
--- a/man2/link.2
+++ b/man2/link.2
@@ -45,10 +45,10 @@ link, linkat \- make a new name for a file
.BI " int " newdirfd ", const char *" newpath ", int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR linkat ():
.PD 0
@@ -310,7 +310,11 @@ An attempt was made to link to the
.I /proc/self/fd/NN
file corresponding to a file descriptor created with
.IP
- open(path, O_TMPFILE | O_EXCL, mode);
+.in +4n
+.EX
+open(path, O_TMPFILE | O_EXCL, mode);
+.EE
+.in
.IP
See
.BR open (2).
@@ -431,7 +435,7 @@ to find out if the link got created.
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/listen.2 b/man2/listen.2
index 5c5013fca..b570c0d65 100644
--- a/man2/listen.2
+++ b/man2/listen.2
@@ -185,7 +185,7 @@ See
.BR socket (2),
.BR socket (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/listxattr.2 b/man2/listxattr.2
index 6cba358d4..805749aec 100644
--- a/man2/listxattr.2
+++ b/man2/listxattr.2
@@ -338,7 +338,7 @@ main(int argc, char *argv[])
.BR symlink (7),
.BR xattr (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/llseek.2 b/man2/llseek.2
index 0277cea31..d9cd6fe0d 100644
--- a/man2/llseek.2
+++ b/man2/llseek.2
@@ -96,7 +96,7 @@ wrapper function instead.
.BR open (2),
.BR lseek64 (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/lookup_dcookie.2 b/man2/lookup_dcookie.2
index 576cae8a7..1f021b484 100644
--- a/man2/lookup_dcookie.2
+++ b/man2/lookup_dcookie.2
@@ -90,7 +90,7 @@ entry has been removed.
.SH SEE ALSO
.BR oprofile (1)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/lseek.2 b/man2/lseek.2
index 8ceb6ab9e..5d14c3069 100644
--- a/man2/lseek.2
+++ b/man2/lseek.2
@@ -278,7 +278,7 @@ on a terminal device fails with the error
.BR lseek64 (3),
.BR posix_fallocate (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/madvise.2 b/man2/madvise.2
index c960ef53a..ae282a824 100644
--- a/man2/madvise.2
+++ b/man2/madvise.2
@@ -40,10 +40,10 @@ madvise \- give advice about use of memory
.PP
.BI "int madvise(void *" addr ", size_t " length ", int " advice );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR madvise ():
.PD 0
@@ -594,7 +594,7 @@ from the system call, as it should).
.BR posix_madvise (3),
.BR core (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mbind.2 b/man2/mbind.2
index f2fd0933e..dd649f754 100644
--- a/man2/mbind.2
+++ b/man2/mbind.2
@@ -492,7 +492,7 @@ are available only on Linux 2.6.16 and later.
.BR numa (7),
.BR numactl (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/membarrier.2 b/man2/membarrier.2
index 929c9db0e..e38650c05 100644
--- a/man2/membarrier.2
+++ b/man2/membarrier.2
@@ -22,13 +22,19 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH MEMBARRIER 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH MEMBARRIER 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
membarrier \- issue memory barriers on a set of threads
.SH SYNOPSIS
+.nf
+.PP
.B #include <linux/membarrier.h>
.PP
.BI "int membarrier(int " cmd ", int " flags ");"
+.fi
+.PP
+.IR Note :
+There is no glibc wrapper for this system call; see NOTES.
.SH DESCRIPTION
The
.BR membarrier ()
@@ -255,7 +261,7 @@ is Linux-specific.
.\" .BR rseq (2)
.SH NOTES
A memory barrier instruction is part of the instruction set of
-architectures with weakly-ordered memory models.
+architectures with weakly ordered memory models.
It orders memory
accesses prior to the barrier and after the barrier with respect to
matching barriers on other cores.
@@ -270,6 +276,9 @@ Examples where
.BR membarrier ()
can be useful include implementations
of Read-Copy-Update libraries and garbage collectors.
+.PP
+Glibc does not provide a wrapper for this system call; call it using
+.BR syscall (2).
.SH EXAMPLES
Assuming a multithreaded application where "fast_path()" is executed
very frequently, and where "slow_path()" is executed infrequently, the
@@ -414,7 +423,7 @@ main(int argc, char **argv)
.EE
.in
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/memfd_create.2 b/man2/memfd_create.2
index 523beeeca..742ee5bf9 100644
--- a/man2/memfd_create.2
+++ b/man2/memfd_create.2
@@ -18,7 +18,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH MEMFD_CREATE 2 2020-06-09 Linux "Linux Programmer's Manual"
+.TH MEMFD_CREATE 2 2020-11-01 Linux "Linux Programmer's Manual"
.SH NAME
memfd_create \- create an anonymous file
.SH SYNOPSIS
@@ -407,6 +407,7 @@ Existing seals: WRITE SHRINK
\&
.EX
#define _GNU_SOURCE
+#include <stdint.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdlib.h>
@@ -454,8 +455,8 @@ main(int argc, char *argv[])
if (ftruncate(fd, len) == \-1)
errExit("truncate");
- printf("PID: %ld; fd: %d; /proc/%ld/fd/%d\en",
- (long) getpid(), fd, (long) getpid(), fd);
+ printf("PID: %jd; fd: %d; /proc/%jd/fd/%d\en",
+ (intmax_t) getpid(), fd, (intmax_t) getpid(), fd);
/* Code to map the file and populate the mapping with data
omitted */
@@ -548,7 +549,7 @@ main(int argc, char *argv[])
.BR shmget (2),
.BR shm_open (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/migrate_pages.2 b/man2/migrate_pages.2
index 3c80f9bdb..3c5f10f4a 100644
--- a/man2/migrate_pages.2
+++ b/man2/migrate_pages.2
@@ -183,7 +183,7 @@ or a similar package.
.IR Documentation/vm/page_migration.rst
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mincore.2 b/man2/mincore.2
index 39c6165a8..c26d9a51c 100644
--- a/man2/mincore.2
+++ b/man2/mincore.2
@@ -41,10 +41,10 @@ mincore \- determine whether pages are resident in memory
.PP
.BI "int mincore(void *" addr ", size_t " length ", unsigned char *" vec );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mincore ():
Since glibc 2.19:
@@ -174,7 +174,7 @@ mappings, or for nonlinear mappings (established using
.BR posix_fadvise (2),
.BR posix_madvise (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mkdir.2 b/man2/mkdir.2
index ccf6b0bd6..9f50d7232 100644
--- a/man2/mkdir.2
+++ b/man2/mkdir.2
@@ -25,10 +25,10 @@ mkdir, mkdirat \- create a directory
.BI "int mkdirat(int " dirfd ", const char *" pathname ", mode_t " mode );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mkdirat ():
.PD 0
@@ -252,7 +252,7 @@ argument.
.BR acl (5),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mknod.2 b/man2/mknod.2
index 6817269b0..92deb8798 100644
--- a/man2/mknod.2
+++ b/man2/mknod.2
@@ -31,10 +31,10 @@ mknod, mknodat \- create a special or ordinary file
", dev_t " dev );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mknod ():
.ad l
@@ -301,7 +301,7 @@ and
.BR acl (5),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mlock.2 b/man2/mlock.2
index 0340966a6..9b816f2ef 100644
--- a/man2/mlock.2
+++ b/man2/mlock.2
@@ -497,7 +497,7 @@ resource limit is encountered.
.BR proc (5),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mmap.2 b/man2/mmap.2
index b1fb9f031..136b45876 100644
--- a/man2/mmap.2
+++ b/man2/mmap.2
@@ -437,7 +437,7 @@ For other files, creating a mapping with this flag results in an
error.
.IP
Shared file mappings with this flag provide the guarantee that while
-some memory is writably mapped in the address space of the process,
+some memory is mapped writable in the address space of the process,
it will be visible in the same file at the same offset even after
the system crashes or is rebooted.
In conjunction with the use of appropriate CPU instructions,
@@ -1016,7 +1016,7 @@ B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128\(en129 and 389\(en391.
.\" Repeat after me: private read-only mappings are 100% equivalent to
.\" shared read-only mappings. No ifs, buts, or maybes. -- Linus
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mmap2.2 b/man2/mmap2.2
index 81d0f1a45..ca74ea7a3 100644
--- a/man2/mmap2.2
+++ b/man2/mmap2.2
@@ -99,7 +99,7 @@ is actually the system page size, rather than 4096 bytes.
.BR msync (2),
.BR shm_open (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/modify_ldt.2 b/man2/modify_ldt.2
index 6983dc8b5..1d8054994 100644
--- a/man2/modify_ldt.2
+++ b/man2/modify_ldt.2
@@ -209,7 +209,7 @@ will still notice the bit even when set in a 32-bit process.
.BR set_thread_area (2),
.BR vm86 (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mount.2 b/man2/mount.2
index d347ede95..6f1c92375 100644
--- a/man2/mount.2
+++ b/man2/mount.2
@@ -293,12 +293,12 @@ Since Linux 2.4:
.BR MS_NODEV ", " MS_NOEXEC ", and " MS_NOSUID
flags are settable on a per-mount-point basis.
.IP *
-Since Linux 2.6.16:
+Additionally, since Linux 2.6.16:
.B MS_NOATIME
and
.BR MS_NODIRATIME .
.IP *
-Since Linux 2.6.20:
+Additionally, since Linux 2.6.20:
.BR MS_RELATIME .
.PP
The following flags are per-superblock:
@@ -950,7 +950,7 @@ for details of this file.
.BR mount (8),
.BR umount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/move_pages.2 b/man2/move_pages.2
index 47cbffaf7..d071bba3b 100644
--- a/man2/move_pages.2
+++ b/man2/move_pages.2
@@ -258,7 +258,7 @@ or a similar package.
.BR migratepages (8),
.BR numastat (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mprotect.2 b/man2/mprotect.2
index aba6dbb99..243f0eb62 100644
--- a/man2/mprotect.2
+++ b/man2/mprotect.2
@@ -30,7 +30,7 @@
.\" 2007-06-02, mtk: Fairly substantial rewrites and additions, and
.\" a much improved example program.
.\"
-.TH MPROTECT 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH MPROTECT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
mprotect, pkey_mprotect \- set protection on a region of memory
.SH SYNOPSIS
@@ -326,15 +326,13 @@ handler(int sig, siginfo_t *si, void *unused)
Nevertheless, we use printf() here as a simple way of
showing that the handler was called. */
- printf("Got SIGSEGV at address: 0x%lx\en",
- (long) si\->si_addr);
+ printf("Got SIGSEGV at address: %p\en", si\->si_addr);
exit(EXIT_FAILURE);
}
int
main(int argc, char *argv[])
{
- char *p;
int pagesize;
struct sigaction sa;
@@ -355,13 +353,13 @@ main(int argc, char *argv[])
if (buffer == NULL)
handle_error("memalign");
- printf("Start of region: 0x%lx\en", (long) buffer);
+ printf("Start of region: %p\en", buffer);
if (mprotect(buffer + pagesize * 2, pagesize,
PROT_READ) == \-1)
handle_error("mprotect");
- for (p = buffer ; ; )
+ for (char *p = buffer ; ; )
*(p++) = \(aqa\(aq;
printf("Loop completed\en"); /* Should never happen */
@@ -373,7 +371,7 @@ main(int argc, char *argv[])
.BR sysconf (3),
.BR pkeys (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mq_getsetattr.2 b/man2/mq_getsetattr.2
index 96626362d..556c3be9f 100644
--- a/man2/mq_getsetattr.2
+++ b/man2/mq_getsetattr.2
@@ -30,7 +30,7 @@ mq_getsetattr \- get/set message queue attributes
.B #include <sys/types.h>
.B #include <mqueue.h>
.PP
-.BI "int mq_getsetattr(mqd_t " mqdes ", struct mq_attr *" newattr ","
+.BI "int mq_getsetattr(mqd_t " mqdes ", const struct mq_attr *" newattr ,
.BI " struct mq_attr *" oldattr );
.fi
.PP
@@ -56,7 +56,7 @@ Glibc does not provide a wrapper for this system call; call it using
.BR mq_getattr (3),
.BR mq_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/mq_notify.2 b/man2/mq_notify.2
new file mode 100644
index 000000000..505a45e2e
--- /dev/null
+++ b/man2/mq_notify.2
@@ -0,0 +1,2 @@
+.so man3/mq_notify.3
+.\" Because mq_notify(3) is layered on a system call of the same name
diff --git a/man2/mq_open.2 b/man2/mq_open.2
new file mode 100644
index 000000000..ce82835e6
--- /dev/null
+++ b/man2/mq_open.2
@@ -0,0 +1,2 @@
+.so man3/mq_open.3
+.\" Because mq_open(3) is layered on a system call of the same name
diff --git a/man2/mq_timedreceive.2 b/man2/mq_timedreceive.2
new file mode 100644
index 000000000..b4184f8c2
--- /dev/null
+++ b/man2/mq_timedreceive.2
@@ -0,0 +1,2 @@
+.so man3/mq_timedreceive.3
+.\" Because mq_timedreceive(3) is layered on a system call of the same name
diff --git a/man2/mq_timedsend.2 b/man2/mq_timedsend.2
new file mode 100644
index 000000000..db95863ad
--- /dev/null
+++ b/man2/mq_timedsend.2
@@ -0,0 +1,2 @@
+.so man3/mq_timedsend.3
+.\" Because mq_timedsend(3) is layered on a system call of the same name
diff --git a/man2/mq_unlink.2 b/man2/mq_unlink.2
new file mode 100644
index 000000000..c5f276826
--- /dev/null
+++ b/man2/mq_unlink.2
@@ -0,0 +1,2 @@
+.so man3/mq_unlink.3
+.\" Because mq_unlink(3) is layered on a system call of the same name
diff --git a/man2/mremap.2 b/man2/mremap.2
index 4edac2390..f80f5f0a1 100644
--- a/man2/mremap.2
+++ b/man2/mremap.2
@@ -367,7 +367,7 @@ for more information on paged memory
\fIInside Linux\fP by Randolph Bentson,
\fIThe Design of the UNIX Operating System\fP by Maurice J.\& Bach)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/msgctl.2 b/man2/msgctl.2
index b2538e1a9..bfdc7f25d 100644
--- a/man2/msgctl.2
+++ b/man2/msgctl.2
@@ -35,7 +35,7 @@
.\" 2005-08-02, mtk: Added IPC_INFO, MSG_INFO, MSG_STAT descriptions
.\" 2018-03-20, dbueso: Added MSG_STAT_ANY description.
.\"
-.TH MSGCTL 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH MSGCTL 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
msgctl \- System V message control operations
.SH SYNOPSIS
@@ -244,7 +244,7 @@ struct msginfo {
unused within kernel */
int msgtql; /* Maximum number of messages on all queues
in system; unused within kernel */
- unsigned short int msgseg;
+ unsigned short msgseg;
/* Maximum number of segments;
unused within kernel */
};
@@ -452,7 +452,7 @@ flag in
.BR mq_overview (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/msgget.2 b/man2/msgget.2
index 1511c6c34..a2577e4bb 100644
--- a/man2/msgget.2
+++ b/man2/msgget.2
@@ -248,7 +248,7 @@ would more clearly show its function.
.BR mq_overview (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/msgop.2 b/man2/msgop.2
index 9a8a2937c..874dd2fa1 100644
--- a/man2/msgop.2
+++ b/man2/msgop.2
@@ -37,7 +37,7 @@
.\" Language and formatting clean-ups
.\" Added notes on /proc files
.\"
-.TH MSGOP 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH MSGOP 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
msgrcv, msgsnd \- System V message queue operations
.SH SYNOPSIS
@@ -467,8 +467,11 @@ and the queue contains less than
messages.
.TP
.BR ENOSYS " (since Linux 3.8)"
-.I MSG_COPY
-was specified in
+Both
+.B MSG_COPY
+and
+.B IPC_NOWAIT
+were specified in
.IR msgflg ,
and this kernel was configured without
.BR CONFIG_CHECKPOINT_RESTORE .
@@ -637,7 +640,7 @@ send_msg(int qid, int msgtype)
snprintf(msg.mtext, sizeof(msg.mtext), "a message at %s",
ctime(&t));
- if (msgsnd(qid, (void *) &msg, sizeof(msg.mtext),
+ if (msgsnd(qid, &msg, sizeof(msg.mtext),
IPC_NOWAIT) == \-1) {
perror("msgsnd error");
exit(EXIT_FAILURE);
@@ -650,7 +653,7 @@ get_msg(int qid, int msgtype)
{
struct msgbuf msg;
- if (msgrcv(qid, (void *) &msg, sizeof(msg.mtext), msgtype,
+ if (msgrcv(qid, &msg, sizeof(msg.mtext), msgtype,
MSG_NOERROR | IPC_NOWAIT) == \-1) {
if (errno != ENOMSG) {
perror("msgrcv");
@@ -715,7 +718,7 @@ main(int argc, char *argv[])
.BR mq_overview (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/msync.2 b/man2/msync.2
index 5b5f96a54..9fdd0a26a 100644
--- a/man2/msync.2
+++ b/man2/msync.2
@@ -152,7 +152,7 @@ in
.PP
B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128\(en129 and 389\(en391.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/nanosleep.2 b/man2/nanosleep.2
index 9fe5ecc3e..5f9ac7892 100644
--- a/man2/nanosleep.2
+++ b/man2/nanosleep.2
@@ -39,10 +39,10 @@ nanosleep \- high-resolution sleep
.PP
.BI "int nanosleep(const struct timespec *" req ", struct timespec *" rem );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR nanosleep ():
_POSIX_C_SOURCE\ >=\ 199309L
@@ -236,7 +236,7 @@ This problem is fixed in Linux 2.6.0 and later kernels.
.BR usleep (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/nfsservctl.2 b/man2/nfsservctl.2
index 5f8e199ab..a090becfa 100644
--- a/man2/nfsservctl.2
+++ b/man2/nfsservctl.2
@@ -2,7 +2,7 @@
.\" This text is in the public domain.
.\" %%%LICENSE_END
.\"
-.TH NFSSERVCTL 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH NFSSERVCTL 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
nfsservctl \- syscall interface to kernel nfs daemon
.SH SYNOPSIS
@@ -30,7 +30,7 @@ filesystem; see
#define NFSCTL_DELCLIENT 2 /* Remove an NFS client. */
#define NFSCTL_EXPORT 3 /* Export a filesystem. */
#define NFSCTL_UNEXPORT 4 /* Unexport a filesystem. */
-#define NFSCTL_UGIDUPDATE 5 /* Update a client's UID/GID map
+#define NFSCTL_UGIDUPDATE 5 /* Update a client\(aqs UID/GID map
(only in Linux 2.4.x and earlier). */
#define NFSCTL_GETFH 6 /* Get a file handle (used by mountd)
(only in Linux 2.4.x and earlier). */
@@ -66,7 +66,7 @@ This call is Linux-specific.
.SH SEE ALSO
.BR nfsd (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/nice.2 b/man2/nice.2
index 6f4be0d4a..e3382545e 100644
--- a/man2/nice.2
+++ b/man2/nice.2
@@ -36,10 +36,10 @@ nice \- change process priority
.PP
.BI "int nice(int " inc );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR nice ():
_XOPEN_SOURCE
@@ -130,7 +130,7 @@ to obtain the new nice value, which is then returned to the caller.
.BR capabilities (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/open.2 b/man2/open.2
index fc3a5c96f..5a4a464b7 100644
--- a/man2/open.2
+++ b/man2/open.2
@@ -48,7 +48,7 @@
.\" FIXME . Apr 08: The next POSIX revision has O_EXEC, O_SEARCH, and
.\" O_TTYINIT. Eventually these may need to be documented. --mtk
.\"
-.TH OPEN 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH OPEN 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
open, openat, creat \- open and possibly create a file
.SH SYNOPSIS
@@ -71,10 +71,10 @@ open, openat, creat \- open and possibly create a file
.BI " const struct open_how *" how ", size_t " size ");"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR openat ():
.PD 0
@@ -827,11 +827,11 @@ char path[PATH_MAX];
fd = open("/path/to/dir", O_TMPFILE | O_RDWR,
S_IRUSR | S_IWUSR);
-/* File I/O on 'fd'... */
+/* File I/O on \(aqfd\(aq... */
linkat(fd, NULL, AT_FDCWD, "/path/for/file", AT_EMPTY_PATH);
-/* If the caller doesn't have the CAP_DAC_READ_SEARCH
+/* If the caller doesn\(aqt have the CAP_DAC_READ_SEARCH
capability (needed to use AT_EMPTY_PATH with linkat(2)),
and there is a proc(5) filesystem mounted, then the
linkat(2) call above can be replaced with:
@@ -1014,6 +1014,14 @@ and
in
.BR proc (5).
.TP
+.B EBUSY
+.B O_EXCL
+was specified in
+.I flags
+and
+.I pathname
+refers to a block device that is in use by the system (e.g., it is mounted).
+.TP
.B EDQUOT
Where
.B O_CREAT
@@ -1891,7 +1899,7 @@ is ignored).
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/open_by_handle_at.2 b/man2/open_by_handle_at.2
index 2bb819f03..abd8b3b3d 100644
--- a/man2/open_by_handle_at.2
+++ b/man2/open_by_handle_at.2
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH OPEN_BY_HANDLE_AT 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH OPEN_BY_HANDLE_AT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
name_to_handle_at, open_by_handle_at \- obtain handle
for a pathname and open file via a handle
@@ -110,7 +110,7 @@ and
.IR handle->handle_bytes
is set to indicate the required size;
the caller can then use this information to allocate a structure
-of the correct size (see EXAMPLE below).
+of the correct size (see EXAMPLES below).
Some care is needed here as
.BR EOVERFLOW
can also indicate that no file handle is available for this particular
@@ -504,7 +504,7 @@ The following shell session demonstrates the use of these two programs:
.PP
.in +4n
.EX
-$ \fBecho 'Can you please think about it?' > cecilia.txt\fP
+$ \fBecho \(aqCan you please think about it?\(aq > cecilia.txt\fP
$ \fB./t_name_to_handle_at cecilia.txt > fh\fP
$ \fB./t_open_by_handle_at < fh\fP
open_by_handle_at: Operation not permitted
@@ -528,7 +528,7 @@ no longer exists.
$ \fBstat \-\-printf="%i\en" cecilia.txt\fP # Display inode number
4072121
$ \fBrm cecilia.txt\fP
-$ \fBecho 'Can you please think about it?' > cecilia.txt\fP
+$ \fBecho \(aqCan you please think about it?\(aq > cecilia.txt\fP
$ \fBstat \-\-printf="%i\en" cecilia.txt\fP # Check inode number
4072121
$ \fBsudo ./t_open_by_handle_at < fh\fP
@@ -555,7 +555,7 @@ int
main(int argc, char *argv[])
{
struct file_handle *fhp;
- int mount_id, fhsize, flags, dirfd, j;
+ int mount_id, fhsize, flags, dirfd;
char *pathname;
if (argc != 2) {
@@ -586,7 +586,7 @@ main(int argc, char *argv[])
/* Reallocate file_handle structure with correct size */
- fhsize = sizeof(struct file_handle) + fhp\->handle_bytes;
+ fhsize = sizeof(*fhp) + fhp\->handle_bytes;
fhp = realloc(fhp, fhsize); /* Copies fhp\->handle_bytes */
if (fhp == NULL)
errExit("realloc");
@@ -600,8 +600,8 @@ main(int argc, char *argv[])
for later reuse by t_open_by_handle_at.c */
printf("%d\en", mount_id);
- printf("%d %d ", fhp\->handle_bytes, fhp\->handle_type);
- for (j = 0; j < fhp\->handle_bytes; j++)
+ printf("%u %d ", fhp\->handle_bytes, fhp\->handle_type);
+ for (int j = 0; j < fhp\->handle_bytes; j++)
printf(" %02x", fhp\->f_handle[j]);
printf("\en");
@@ -677,7 +677,7 @@ int
main(int argc, char *argv[])
{
struct file_handle *fhp;
- int mount_id, fd, mount_fd, handle_bytes, j;
+ int mount_id, fd, mount_fd, handle_bytes;
ssize_t nread;
char buf[1000];
#define LINE_SIZE 100
@@ -707,7 +707,7 @@ main(int argc, char *argv[])
/* Given handle_bytes, we can now allocate file_handle structure */
- fhp = malloc(sizeof(struct file_handle) + handle_bytes);
+ fhp = malloc(sizeof(*fhp) + handle_bytes);
if (fhp == NULL)
errExit("malloc");
@@ -715,7 +715,7 @@ main(int argc, char *argv[])
fhp\->handle_type = strtoul(nextp, &nextp, 0);
- for (j = 0; j < fhp\->handle_bytes; j++)
+ for (int j = 0; j < fhp\->handle_bytes; j++)
fhp\->f_handle[j] = strtoul(nextp, &nextp, 16);
/* Obtain file descriptor for mount point, either by opening
@@ -765,7 +765,7 @@ release at
.UR https://www.kernel.org/pub/linux/utils/util\-linux/
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/openat2.2 b/man2/openat2.2
index be2f574a9..3601c4d99 100644
--- a/man2/openat2.2
+++ b/man2/openat2.2
@@ -21,7 +21,7 @@
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
-.TH OPENAT2 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH OPENAT2 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
openat2 \- open and possibly create a file (extended)
.SH SYNOPSIS
@@ -31,8 +31,8 @@ openat2 \- open and possibly create a file (extended)
.B #include <fcntl.h>
.B #include <openat2.h>
.PP
-.BI "int openat2(int " dirfd ", const char *" pathname ,
-.BI " struct open_how *" how ", size_t " size ");"
+.BI "long openat2(int " dirfd ", const char *" pathname ,
+.BI " struct open_how *" how ", size_t " size );
.fi
.PP
.IR Note :
@@ -169,7 +169,7 @@ contains bits other than
.IR 07777 .
Similarly, an error is returned if
.BR openat2 ()
-is called with a non-zero
+is called with a nonzero
.IR how.mode
and
.IR how.flags
@@ -353,7 +353,7 @@ as symbolic links are very widely used by end-users.
Setting this flag indiscriminately\(emi.e.,
for purposes not specifically related to security\(emfor all uses of
.BR openat2 ()
-may result in spurious errors on previously-functional systems.
+may result in spurious errors on previously functional systems.
This may occur if, for example,
a system pathname that is used by an application is modified
(e.g., in a new distribution release)
@@ -380,7 +380,7 @@ as bind mounts are widely used by end-users.
Setting this flag indiscriminately\(emi.e.,
for purposes not specifically related to security\(emfor all uses of
.BR openat2 ()
-may result in spurious errors on previously-functional systems.
+may result in spurious errors on previously functional systems.
This may occur if, for example,
a system pathname that is used by an application is modified
(e.g., in a new distribution release)
@@ -427,7 +427,7 @@ An unknown flag or invalid value was specified in
.TP
.B EINVAL
.I mode
-is non-zero, but
+is nonzero, but
.I how.flags
does not contain
.BR O_CREAT
@@ -493,7 +493,7 @@ acting as an implicit version number.
(Because new extension fields will always
be appended, the structure size will always increase.)
This extensibility design is very similar to other system calls such as
-.BR perf_setattr (2),
+.BR sched_setattr (2),
.BR perf_event_open (2),
and
.BR clone3 (2).
@@ -535,7 +535,7 @@ is aware of but which the kernel does not support.
Because any extension field must have its zero values signify a no-op,
the kernel can
safely ignore the unsupported extension fields if they are all-zero.
-If any unsupported extension fields are non-zero, then \-1 is returned and
+If any unsupported extension fields are nonzero, then \-1 is returned and
.I errno
is set to
.BR E2BIG .
@@ -582,7 +582,7 @@ which doesn't produce an error of
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/outb.2 b/man2/outb.2
index 617d90579..59f12b66c 100644
--- a/man2/outb.2
+++ b/man2/outb.2
@@ -23,7 +23,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH OUTB 2 2017-09-15 "Linux" "Linux Programmer's Manual"
+.TH OUTB 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
outb, outw, outl, outsb, outsw, outsl,
inb, inw, inl, insb, insw, insl,
@@ -32,32 +32,32 @@ outb_p, outw_p, outl_p, inb_p, inw_p, inl_p \- port I/O
.nf
.B #include <sys/io.h>
.PP
-.BI "unsigned char inb(unsigned short int " port );
-.BI "unsigned char inb_p(unsigned short int " port );
-.BI "unsigned short int inw(unsigned short int " port );
-.BI "unsigned short int inw_p(unsigned short int " port );
-.BI "unsigned int inl(unsigned short int " port );
-.BI "unsigned int inl_p(unsigned short int " port );
+.BI "unsigned char inb(unsigned short " port );
+.BI "unsigned char inb_p(unsigned short " port );
+.BI "unsigned short inw(unsigned short " port );
+.BI "unsigned short inw_p(unsigned short " port );
+.BI "unsigned int inl(unsigned short " port );
+.BI "unsigned int inl_p(unsigned short " port );
.PP
-.BI "void outb(unsigned char " value ", unsigned short int " port );
-.BI "void outb_p(unsigned char " value ", unsigned short int " port );
-.BI "void outw(unsigned short int " value ", unsigned short int " port );
-.BI "void outw_p(unsigned short int " value ", unsigned short int " port );
-.BI "void outl(unsigned int " value ", unsigned short int " port );
-.BI "void outl_p(unsigned int " value ", unsigned short int " port );
+.BI "void outb(unsigned char " value ", unsigned short " port );
+.BI "void outb_p(unsigned char " value ", unsigned short " port );
+.BI "void outw(unsigned short " value ", unsigned short " port );
+.BI "void outw_p(unsigned short " value ", unsigned short " port );
+.BI "void outl(unsigned int " value ", unsigned short " port );
+.BI "void outl_p(unsigned int " value ", unsigned short " port );
.PP
-.BI "void insb(unsigned short int " port ", void *" addr ,
-.BI " unsigned long int " count );
-.BI "void insw(unsigned short int " port ", void *" addr ,
-.BI " unsigned long int " count );
-.BI "void insl(unsigned short int " port ", void *" addr ,
-.BI " unsigned long int " count );
-.BI "void outsb(unsigned short int " port ", const void *" addr ,
-.BI " unsigned long int " count );
-.BI "void outsw(unsigned short int " port ", const void *" addr ,
-.BI " unsigned long int " count );
-.BI "void outsl(unsigned short int " port ", const void *" addr ,
-.BI " unsigned long int " count );
+.BI "void insb(unsigned short " port ", void *" addr ,
+.BI " unsigned long " count );
+.BI "void insw(unsigned short " port ", void *" addr ,
+.BI " unsigned long " count );
+.BI "void insl(unsigned short " port ", void *" addr ,
+.BI " unsigned long " count );
+.BI "void outsb(unsigned short " port ", const void *" addr ,
+.BI " unsigned long " count );
+.BI "void outsw(unsigned short " port ", const void *" addr ,
+.BI " unsigned long " count );
+.BI "void outsl(unsigned short " port ", const void *" addr ,
+.BI " unsigned long " count );
.fi
.SH DESCRIPTION
This family of functions is used to do low-level port input and output.
@@ -97,7 +97,7 @@ which is the opposite order from most DOS implementations.
.BR ioperm (2),
.BR iopl (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pause.2 b/man2/pause.2
index 3f89449fa..8f97fb4b4 100644
--- a/man2/pause.2
+++ b/man2/pause.2
@@ -62,7 +62,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.BR signal (2),
.BR sigsuspend (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pciconfig_read.2 b/man2/pciconfig_read.2
index 0399fe483..5803b5d6a 100644
--- a/man2/pciconfig_read.2
+++ b/man2/pciconfig_read.2
@@ -113,7 +113,7 @@ These calls are Linux-specific, available since Linux 2.0.26/2.1.11.
.SH SEE ALSO
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2
index b72a2b6ed..8a8102db0 100644
--- a/man2/perf_event_open.2
+++ b/man2/perf_event_open.2
@@ -24,7 +24,7 @@
.\" This document is based on the perf_event.h header file, the
.\" tools/perf/design.txt file, and a lot of bitter experience.
.\"
-.TH PERF_EVENT_OPEN 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PERF_EVENT_OPEN 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
perf_event_open \- set up performance monitoring
.SH SYNOPSIS
@@ -97,6 +97,8 @@ when running on the specified CPU.
.BR "pid == \-1" " and " "cpu >= 0"
This measures all processes/threads on the specified CPU.
This requires
+.B CAP_PERFMON
+(since Linux 5.8) or
.B CAP_SYS_ADMIN
capability or a
.I /proc/sys/kernel/perf_event_paranoid
@@ -108,9 +110,11 @@ This setting is invalid and will return an error.
When
.I pid
is greater than zero, permission to perform this system call
-is governed by a ptrace access mode
+is governed by
+.B CAP_PERFMON
+(since Linux 5.9) and a ptrace access mode
.B PTRACE_MODE_READ_REALCREDS
-check; see
+check on older Linux versions; see
.BR ptrace (2).
.PP
The
@@ -218,10 +222,10 @@ struct perf_event_attr {
inherit : 1, /* children inherit it */
pinned : 1, /* must always be on PMU */
exclusive : 1, /* only group on PMU */
- exclude_user : 1, /* don't count user */
- exclude_kernel : 1, /* don't count kernel */
- exclude_hv : 1, /* don't count hypervisor */
- exclude_idle : 1, /* don't count when idle */
+ exclude_user : 1, /* don\(aqt count user */
+ exclude_kernel : 1, /* don\(aqt count kernel */
+ exclude_hv : 1, /* don\(aqt count hypervisor */
+ exclude_idle : 1, /* don\(aqt count when idle */
mmap : 1, /* include mmap data */
comm : 1, /* include comm data */
freq : 1, /* use freq, not period */
@@ -232,8 +236,8 @@ struct perf_event_attr {
precise_ip : 2, /* skid constraint */
mmap_data : 1, /* non-exec mmap data */
sample_id_all : 1, /* sample_type all events */
- exclude_host : 1, /* don't count in host */
- exclude_guest : 1, /* don't count in guest */
+ exclude_host : 1, /* don\(aqt count in host */
+ exclude_guest : 1, /* don\(aqt count in guest */
exclude_callchain_kernel : 1,
/* exclude kernel callchains */
exclude_callchain_user : 1,
@@ -1760,7 +1764,9 @@ the mmap buffer.
.TP
.IR aux_head ", " aux_tail ", " aux_offset ", " aux_size " (since Linux 4.1)"
.\" commit 45bfb2e50471abbbfd83d40d28c986078b0d24ff
-The AUX region allows mmaping a separate sample buffer for
+The AUX region allows
+.BR mmap (2)-ing
+a separate sample buffer for
high-bandwidth data streams (separate from the main perf sample buffer).
An example of a high-bandwidth stream is instruction tracing support,
as is found in newer Intel processors.
@@ -2114,6 +2120,7 @@ struct {
/* if PERF_SAMPLE_REGS_INTR */
};
.EE
+.in
.RS 4
.TP 4
.I sample_id
@@ -2561,6 +2568,7 @@ struct {
struct sample_id sample_id;
};
.EE
+.in
.RS
.TP
.I pid
@@ -2615,6 +2623,7 @@ struct {
struct sample_id sample_id;
};
.EE
+.in
.RS
.TP
.I aux_offset
@@ -2651,6 +2660,7 @@ struct {
u32 tid;
};
.EE
+.in
.RS
.TP
.I pid
@@ -2673,6 +2683,7 @@ struct {
struct sample_id sample_id;
};
.EE
+.in
.RS
.TP
.I lost
@@ -2696,6 +2707,7 @@ struct {
struct sample_id sample_id;
};
.EE
+.in
.TP
.BR PERF_RECORD_SWITCH_CPU_WIDE " (since Linux 4.3)"
.\" commit 45ac1403f564f411c6a383a2448688ba8dd705a4
@@ -2721,6 +2733,7 @@ struct {
struct sample_id sample_id;
};
.EE
+.in
.RS
.TP
.I next_prev_pid
@@ -2918,6 +2931,8 @@ to hold the result.
This allows attaching a Berkeley Packet Filter (BPF)
program to an existing kprobe tracepoint event.
You need
+.B CAP_PERFMON
+(since Linux 5.8) or
.B CAP_SYS_ADMIN
privileges to use this ioctl.
.IP
@@ -2960,6 +2975,8 @@ have multiple events attached to a tracepoint.
Querying this value on one tracepoint event returns the id
of all BPF programs in all events attached to the tracepoint.
You need
+.B CAP_PERFMON
+(since Linux 5.8) or
.B CAP_SYS_ADMIN
privileges to use this ioctl.
.IP
@@ -2972,6 +2989,7 @@ struct perf_event_query_bpf {
__u32 ids[0];
};
.EE
+.in
.IP
The
.I ids_len
@@ -3167,6 +3185,8 @@ it was expecting.
.TP
.B EACCES
Returned when the requested event requires
+.B CAP_PERFMON
+(since Linux 5.8) or
.B CAP_SYS_ADMIN
permissions (or a more permissive perf_event paranoid setting).
Some common cases where an unprivileged process
@@ -3288,6 +3308,8 @@ setting is specified.
It can also happen, as with
.BR EACCES ,
when the requested event requires
+.B CAP_PERFMON
+(since Linux 5.8) or
.B CAP_SYS_ADMIN
permissions (or a more permissive perf_event paranoid setting).
This includes setting a breakpoint on a kernel address,
@@ -3318,6 +3340,22 @@ The official way of knowing if
support is enabled is checking
for the existence of the file
.IR /proc/sys/kernel/perf_event_paranoid .
+.PP
+.B CAP_PERFMON
+capability (since Linux 5.8) provides secure approach to
+performance monitoring and observability operations in a system
+according to the principal of least privilege (POSIX IEEE 1003.1e).
+Accessing system performance monitoring and observability operations
+using
+.B CAP_PERFMON
+rather than the much more powerful
+.B CAP_SYS_ADMIN
+excludes chances to misuse credentials and makes operations more secure.
+.B CAP_SYS_ADMIN
+usage for secure system performance monitoring and observability
+is discouraged in favor of the
+.B CAP_PERFMON
+capability.
.SH BUGS
The
.B F_SETOWN_EX
@@ -3419,9 +3457,9 @@ main(int argc, char **argv)
long long count;
int fd;
- memset(&pe, 0, sizeof(struct perf_event_attr));
+ memset(&pe, 0, sizeof(pe));
pe.type = PERF_TYPE_HARDWARE;
- pe.size = sizeof(struct perf_event_attr);
+ pe.size = sizeof(pe);
pe.config = PERF_COUNT_HW_INSTRUCTIONS;
pe.disabled = 1;
pe.exclude_kernel = 1;
@@ -3439,7 +3477,7 @@ main(int argc, char **argv)
printf("Measuring instruction count for this printf\en");
ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);
- read(fd, &count, sizeof(long long));
+ read(fd, &count, sizeof(count));
printf("Used %lld instructions\en", count);
@@ -3457,7 +3495,7 @@ main(int argc, char **argv)
.IR Documentation/admin-guide/perf-security.rst
in the kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/perfmonctl.2 b/man2/perfmonctl.2
index c095f8b22..b514bb52e 100644
--- a/man2/perfmonctl.2
+++ b/man2/perfmonctl.2
@@ -207,7 +207,7 @@ Glibc does not provide a wrapper for this system call; call it using
.PP
The perfmon2 interface specification
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/personality.2 b/man2/personality.2
index 9ae2688c8..19d1bfb75 100644
--- a/man2/personality.2
+++ b/man2/personality.2
@@ -270,7 +270,7 @@ be portable.
.SH SEE ALSO
.BR setarch (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pidfd_getfd.2 b/man2/pidfd_getfd.2
index 56d78113a..a12e4a10c 100644
--- a/man2/pidfd_getfd.2
+++ b/man2/pidfd_getfd.2
@@ -155,7 +155,7 @@ ptrace access mode check.
.BR kcmp (2),
.BR pidfd_open (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pidfd_open.2 b/man2/pidfd_open.2
index dde17d70d..b14d31294 100644
--- a/man2/pidfd_open.2
+++ b/man2/pidfd_open.2
@@ -253,7 +253,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- printf("Events (0x%x): POLLIN is %sset\en", pollfd.revents,
+ printf("Events (%#x): POLLIN is %sset\en", pollfd.revents,
(pollfd.revents & POLLIN) ? "" : "not ");
close(pidfd);
@@ -271,7 +271,7 @@ main(int argc, char *argv[])
.BR waitid (2),
.BR epoll (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pidfd_send_signal.2 b/man2/pidfd_send_signal.2
index 4d2e50692..c44cf25ef 100644
--- a/man2/pidfd_send_signal.2
+++ b/man2/pidfd_send_signal.2
@@ -254,7 +254,7 @@ main(int argc, char *argv[])
.BR pid_namespaces (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pipe.2 b/man2/pipe.2
index 90418cdc5..6aa18b212 100644
--- a/man2/pipe.2
+++ b/man2/pipe.2
@@ -294,7 +294,7 @@ main(int argc, char *argv[])
.BR popen (3),
.BR pipe (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pivot_root.2 b/man2/pivot_root.2
index 4bf110faa..925294740 100644
--- a/man2/pivot_root.2
+++ b/man2/pivot_root.2
@@ -24,7 +24,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PIVOT_ROOT 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PIVOT_ROOT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pivot_root \- change the root mount
.SH SYNOPSIS
@@ -294,7 +294,7 @@ $ \fBmkdir /tmp/rootfs\fP
$ \fBls \-id /tmp/rootfs\fP # Show inode number of new root directory
319459 /tmp/rootfs
$ \fBcp $(which busybox) /tmp/rootfs\fP
-$ \fBPS1='bbsh$ ' sudo ./pivot_root_demo /tmp/rootfs /busybox sh\fP
+$ \fBPS1=\(aqbbsh$ \(aq sudo ./pivot_root_demo /tmp/rootfs /busybox sh\fP
bbsh$ \fBPATH=/\fP
bbsh$ \fBbusybox ln busybox ln\fP
bbsh$ \fBln busybox echo\fP
@@ -418,7 +418,7 @@ main(int argc, char *argv[])
.BR pivot_root (8),
.BR switch_root (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pkey_alloc.2 b/man2/pkey_alloc.2
index 0a68c98ba..4e7f6d20f 100644
--- a/man2/pkey_alloc.2
+++ b/man2/pkey_alloc.2
@@ -138,7 +138,7 @@ See
.BR pkey_mprotect (2),
.BR pkeys (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/poll.2 b/man2/poll.2
index 07f13079d..2bb631419 100644
--- a/man2/poll.2
+++ b/man2/poll.2
@@ -663,7 +663,7 @@ main(int argc, char *argv[])
.BR epoll (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/posix_fadvise.2 b/man2/posix_fadvise.2
index 3815c7821..75835b0df 100644
--- a/man2/posix_fadvise.2
+++ b/man2/posix_fadvise.2
@@ -38,10 +38,10 @@ posix_fadvise \- predeclare an access pattern for file data
.fi
.PP
.ad l
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR posix_fadvise ():
.RS 4
@@ -241,7 +241,7 @@ rather than as meaning "all bytes through to the end of the file".
.BR posix_fallocate (3),
.BR posix_madvise (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/prctl.2 b/man2/prctl.2
index eb3e0fcd9..a595830a7 100644
--- a/man2/prctl.2
+++ b/man2/prctl.2
@@ -2378,7 +2378,7 @@ get or set the maximum stack size, and so on.
.BR signal (2),
.BR core (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/pread.2 b/man2/pread.2
index 567eef97f..4233a403c 100644
--- a/man2/pread.2
+++ b/man2/pread.2
@@ -34,10 +34,10 @@ pread, pwrite \- read from or write to a file descriptor at a given offset
.BI "ssize_t pwrite(int " fd ", const void *" buf ", size_t " count \
", off_t " offset );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.PD 0
.ad l
@@ -170,7 +170,7 @@ appends data to the end of the file, regardless of the value of
.BR readv (2),
.BR write (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/process_vm_readv.2 b/man2/process_vm_readv.2
index 161a4e2b6..2e1271d49 100644
--- a/man2/process_vm_readv.2
+++ b/man2/process_vm_readv.2
@@ -48,10 +48,10 @@ process_vm_readv, process_vm_writev \- transfer data between process address spa
.BI " unsigned long " flags ");"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR process_vm_readv (),
.BR process_vm_writev ():
@@ -339,7 +339,7 @@ main(void)
.BR readv (2),
.BR writev (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ptrace.2 b/man2/ptrace.2
index 83b3b0c52..5f0e23e20 100644
--- a/man2/ptrace.2
+++ b/man2/ptrace.2
@@ -1050,31 +1050,31 @@ The
.I ptrace_syscall_info
structure contains the following fields:
.IP
-.in +2n
+.in +4n
.EX
-struct ptrace_syscall_info {
- __u8 op; /* Type of system call stop */
- __u32 arch; /* AUDIT_ARCH_* value; see seccomp(2) */
+struct ptrace_syscal_info {
+ __u8 op; /* Type of system call stop */
+ __u32 arch; /* AUDIT_ARCH_* value; see seccomp(2) */
__u64 instruction_pointer; /* CPU instruction pointer */
- __u64 stack_pointer; /* CPU stack pointer */
+ __u64 stack_pointer; /* CPU stack pointer */
union {
- struct { /* op == PTRACE_SYSCALL_INFO_ENTRY */
- __u64 nr; /* System call number */
- __u64 args[6]; /* System call arguments */
+ struct { /* op == PTRACE_SYSCALL_INFO_ENTRY */
+ __u64 nr; /* System call number */
+ __u64 args[6]; /* System call arguments */
} entry;
- struct { /* op == PTRACE_SYSCALL_INFO_EXIT */
- __s64 rval; /* System call return value */
- __u8 is_error; /* System call error flag;
- Boolean: does rval contain
- an error value (\-ERRCODE) or
- a nonerror return value? */
+ struct { /* op == PTRACE_SYSCALL_INFO_EXIT */
+ __s64 rval; /* System call return value */
+ __u8 is_error; /* System call error flag;
+ Boolean: does rval contain
+ an error value (\-ERRCODE) or
+ a nonerror return value? */
} exit;
- struct { /* op == PTRACE_SYSCALL_INFO_SECCOMP */
- __u64 nr; /* System call number */
- __u64 args[6]; /* System call arguments */
- __u32 ret_data; /* SECCOMP_RET_DATA portion
- of SECCOMP_RET_TRACE
- return value */
+ struct { /* op == PTRACE_SYSCALL_INFO_SECCOMP */
+ __u64 nr; /* System call number */
+ __u64 args[6]; /* System call arguments */
+ __u32 ret_data; /* SECCOMP_RET_DATA portion
+ of SECCOMP_RET_TRACE
+ return value */
} seccomp;
};
};
@@ -2919,7 +2919,7 @@ to zero.
.BR capabilities (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/query_module.2 b/man2/query_module.2
index ecfcbc395..982a6262a 100644
--- a/man2/query_module.2
+++ b/man2/query_module.2
@@ -198,7 +198,7 @@ alternatively, you can invoke the system call using
.BR lsmod (8),
.BR modinfo (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/quotactl.2 b/man2/quotactl.2
index 598d1bf5c..9f27597a3 100644
--- a/man2/quotactl.2
+++ b/man2/quotactl.2
@@ -407,7 +407,7 @@ Therefore, XFS expects
.I addr
to be a pointer to an
.I "unsigned int"
-that contains a bit-wise combination of the following flags (defined in
+that contains a bitwise combination of the following flags (defined in
.IR <xfs/xqm.h> ):
.IP
.in +4n
@@ -820,7 +820,7 @@ prefix.
.BR quotacheck (8),
.BR quotaon (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/read.2 b/man2/read.2
index e1e13bbcc..a447da1bd 100644
--- a/man2/read.2
+++ b/man2/read.2
@@ -266,7 +266,7 @@ This problem was fixed in Linux 3.14.
.BR write (2),
.BR fread (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/readahead.2 b/man2/readahead.2
index 2fc48bcfc..073c20624 100644
--- a/man2/readahead.2
+++ b/man2/readahead.2
@@ -111,7 +111,7 @@ been read.
.BR posix_fadvise (2),
.BR read (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/readdir.2 b/man2/readdir.2
index aa915bceb..da619f6f4 100644
--- a/man2/readdir.2
+++ b/man2/readdir.2
@@ -130,7 +130,7 @@ This system call does not exist on x86-64.
.BR getdents (2),
.BR readdir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/readlink.2 b/man2/readlink.2
index f0fea5dcd..7b187ca8d 100644
--- a/man2/readlink.2
+++ b/man2/readlink.2
@@ -58,10 +58,10 @@ readlink, readlinkat \- read value of a symbolic link
.BI " char *" buf ", size_t " bufsiz );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR readlink ():
@@ -255,7 +255,7 @@ Dynamically allocating the buffer for
and
.BR readlinkat ()
also addresses a common portability problem when using
-.I PATH_MAX
+.B PATH_MAX
for the buffer size,
as this constant is not guaranteed to be defined per POSIX
if the system does not have such limit.
@@ -356,7 +356,7 @@ main(int argc, char *argv[])
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/readv.2 b/man2/readv.2
index 0dbd35db5..b6a7a0171 100644
--- a/man2/readv.2
+++ b/man2/readv.2
@@ -53,10 +53,10 @@ readv, writev, preadv, pwritev, preadv2, pwritev2 \- read or write data into mul
.BI " off_t " offset ", int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR preadv (),
.BR pwritev ():
@@ -431,7 +431,7 @@ nwritten = writev(STDOUT_FILENO, iov, 2);
.BR read (2),
.BR write (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/reboot.2 b/man2/reboot.2
index 99d50beec..4c36cd1f3 100644
--- a/man2/reboot.2
+++ b/man2/reboot.2
@@ -252,7 +252,7 @@ and should not be used in programs intended to be portable.
.BR halt (8),
.BR shutdown (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/recv.2 b/man2/recv.2
index 9e271939b..f28a46b55 100644
--- a/man2/recv.2
+++ b/man2/recv.2
@@ -38,7 +38,7 @@
.\" Modified 1998,1999 by Andi Kleen
.\" 2001-06-19 corrected SO_EE_OFFENDER, bug report by James Hawtin
.\"
-.TH RECV 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH RECV 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
recv, recvfrom, recvmsg \- receive a message from a socket
.SH SYNOPSIS
@@ -46,7 +46,6 @@ recv, recvfrom, recvmsg \- receive a message from a socket
.\" .br
.nf
.B #include <sys/types.h>
-.br
.B #include <sys/socket.h>
.PP
.BI "ssize_t recv(int " sockfd ", void *" buf ", size_t " len ", int " flags );
@@ -399,6 +398,11 @@ Ancillary data should be accessed only by the macros defined in
.PP
As an example, Linux uses this ancillary data mechanism to pass extended
errors, IP options, or file descriptors over UNIX domain sockets.
+For further information on the use of ancillary data in various
+socket domains, see
+.BR unix (7)
+and
+.BR ip (7).
.PP
The
.I msg_flags
@@ -572,7 +576,7 @@ is shown in
.BR udp (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/recvmmsg.2 b/man2/recvmmsg.2
index d50084f12..8bf56615e 100644
--- a/man2/recvmmsg.2
+++ b/man2/recvmmsg.2
@@ -28,7 +28,7 @@
.\" Author: Arnaldo Carvalho de Melo <acme@redhat.com>
.\" Date: Mon Oct 12 23:40:10 2009 -0700
.\"
-.TH RECVMMSG 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH RECVMMSG 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
recvmmsg \- receive multiple messages on a socket
.SH SYNOPSIS
@@ -237,7 +237,7 @@ main(void)
#define VLEN 10
#define BUFSIZE 200
#define TIMEOUT 1
- int sockfd, retval, i;
+ int sockfd, retval;
struct sockaddr_in addr;
struct mmsghdr msgs[VLEN];
struct iovec iovecs[VLEN];
@@ -259,7 +259,7 @@ main(void)
}
memset(msgs, 0, sizeof(msgs));
- for (i = 0; i < VLEN; i++) {
+ for (int i = 0; i < VLEN; i++) {
iovecs[i].iov_base = bufs[i];
iovecs[i].iov_len = BUFSIZE;
msgs[i].msg_hdr.msg_iov = &iovecs[i];
@@ -276,7 +276,7 @@ main(void)
}
printf("%d messages received\en", retval);
- for (i = 0; i < retval; i++) {
+ for (int i = 0; i < retval; i++) {
bufs[i][msgs[i].msg_len] = 0;
printf("%d %s", i+1, bufs[i]);
}
@@ -291,7 +291,7 @@ main(void)
.BR socket (2),
.BR socket (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/remap_file_pages.2 b/man2/remap_file_pages.2
index d6618be00..dc5f0fc8d 100644
--- a/man2/remap_file_pages.2
+++ b/man2/remap_file_pages.2
@@ -189,7 +189,7 @@ to adjust which parts of the file are mapped to which addresses.
.BR mremap (2),
.BR msync (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/removexattr.2 b/man2/removexattr.2
index 848510d9b..f5f98c4c0 100644
--- a/man2/removexattr.2
+++ b/man2/removexattr.2
@@ -118,7 +118,7 @@ These system calls are Linux-specific.
.BR symlink (7),
.BR xattr (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/rename.2 b/man2/rename.2
index df02e63ec..941e8f67e 100644
--- a/man2/rename.2
+++ b/man2/rename.2
@@ -50,10 +50,10 @@ rename, renameat, renameat2 \- change the name or location of a file
", unsigned int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR renameat ():
.PD 0
@@ -569,7 +569,7 @@ for a similar problem.
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/request_key.2 b/man2/request_key.2
index f79d5c3e9..823e9b0db 100644
--- a/man2/request_key.2
+++ b/man2/request_key.2
@@ -9,7 +9,7 @@
.\" 2 of the License, or (at your option) any later version.
.\" %%%LICENSE_END
.\"
-.TH REQUEST_KEY 2 2020-06-09 Linux "Linux Key Management Calls"
+.TH REQUEST_KEY 2 2020-11-01 Linux "Linux Key Management Calls"
.SH NAME
request_key \- request a key from the kernel's key management facility
.SH SYNOPSIS
@@ -463,7 +463,7 @@ we first create a suitable entry in the file
.in +4n
.EX
$ sudo sh
-# \fBecho 'create user mtk:* * /bin/keyctl instantiate %k %c %S' \e\fP
+# \fBecho \(aqcreate user mtk:* * /bin/keyctl instantiate %k %c %S\(aq \e\fP
\fB> /etc/request\-key.conf\fP
# \fBexit\fP
.EE
@@ -515,6 +515,7 @@ For another example of the use of this program, see
#include <sys/types.h>
#include <keyutils.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -537,7 +538,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- printf("Key ID is %lx\en", (long) key);
+ printf("Key ID is %jx\en", (uintmax_t) key);
exit(EXIT_SUCCESS);
}
@@ -571,7 +572,7 @@ and
.\" commit 3db38ed76890565772fcca3279cc8d454ea6176b
.IR Documentation/security/keys\-request\-key.txt ).
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/restart_syscall.2 b/man2/restart_syscall.2
index 63dcacf54..fa2422339 100644
--- a/man2/restart_syscall.2
+++ b/man2/restart_syscall.2
@@ -142,7 +142,7 @@ returned in the usual fashion.
.\" spent suspended is *not* deducted when the select() is restarted.
.\" FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/rmdir.2 b/man2/rmdir.2
index e6faaa35c..6739a0457 100644
--- a/man2/rmdir.2
+++ b/man2/rmdir.2
@@ -140,7 +140,7 @@ disappearance of directories which are still being used.
.BR unlink (2),
.BR unlinkat (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/rt_sigqueueinfo.2 b/man2/rt_sigqueueinfo.2
index 881a707a6..9050b3cfd 100644
--- a/man2/rt_sigqueueinfo.2
+++ b/man2/rt_sigqueueinfo.2
@@ -207,7 +207,7 @@ or thread exists.
.BR sigqueue (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/s390_guarded_storage.2 b/man2/s390_guarded_storage.2
index a789f20f0..f16c04ac8 100644
--- a/man2/s390_guarded_storage.2
+++ b/man2/s390_guarded_storage.2
@@ -173,7 +173,7 @@ header.
.SH SEE ALSO
.BR syscall (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/s390_pci_mmio_write.2 b/man2/s390_pci_mmio_write.2
index 73414a6bb..059eac8f3 100644
--- a/man2/s390_pci_mmio_write.2
+++ b/man2/s390_pci_mmio_write.2
@@ -106,7 +106,7 @@ to call it.
.SH SEE ALSO
.BR syscall (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/s390_runtime_instr.2 b/man2/s390_runtime_instr.2
index 598da21c8..decacc4d2 100644
--- a/man2/s390_runtime_instr.2
+++ b/man2/s390_runtime_instr.2
@@ -116,7 +116,7 @@ and install a handler for that signal.
.BR syscall (2),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/s390_sthyi.2 b/man2/s390_sthyi.2
index 95686610e..c2bfa95ab 100644
--- a/man2/s390_sthyi.2
+++ b/man2/s390_sthyi.2
@@ -141,7 +141,7 @@ Subsequent system call invocations may return the cached response.
.SH SEE ALSO
.BR syscall (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sched_get_priority_max.2 b/man2/sched_get_priority_max.2
index 1ca33c742..b4dff5aaf 100644
--- a/man2/sched_get_priority_max.2
+++ b/man2/sched_get_priority_max.2
@@ -124,7 +124,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR sched_setscheduler (2),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sched_rr_get_interval.2 b/man2/sched_rr_get_interval.2
index 661a41d66..12588ceb4 100644
--- a/man2/sched_rr_get_interval.2
+++ b/man2/sched_rr_get_interval.2
@@ -132,7 +132,7 @@ Writing 0 to this file resets the quantum to the default value.
.SH SEE ALSO
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sched_setaffinity.2 b/man2/sched_setaffinity.2
index 878621227..2e34dc1c6 100644
--- a/man2/sched_setaffinity.2
+++ b/man2/sched_setaffinity.2
@@ -31,7 +31,7 @@
.\" 2008-11-12, mtk, removed CPU_*() macro descriptions to a
.\" separate CPU_SET(3) page.
.\"
-.TH SCHED_SETAFFINITY 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH SCHED_SETAFFINITY 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
sched_setaffinity, sched_getaffinity \- \
set and get a thread's CPU affinity mask
@@ -324,7 +324,7 @@ system has two cores, each with two CPUs:
.PP
.in +4n
.EX
-$ \fBlscpu | egrep \-i 'core.*:|socket'\fP
+$ \fBlscpu | egrep \-i \(aqcore.*:|socket\(aq\fP
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
@@ -370,7 +370,7 @@ main(int argc, char *argv[])
{
cpu_set_t set;
int parentCPU, childCPU;
- int nloops, j;
+ int nloops;
if (argc != 4) {
fprintf(stderr, "Usage: %s parent\-cpu child\-cpu num\-loops\en",
@@ -394,7 +394,7 @@ main(int argc, char *argv[])
if (sched_setaffinity(getpid(), sizeof(set), &set) == \-1)
errExit("sched_setaffinity");
- for (j = 0; j < nloops; j++)
+ for (int j = 0; j < nloops; j++)
getppid();
exit(EXIT_SUCCESS);
@@ -405,7 +405,7 @@ main(int argc, char *argv[])
if (sched_setaffinity(getpid(), sizeof(set), &set) == \-1)
errExit("sched_setaffinity");
- for (j = 0; j < nloops; j++)
+ for (int j = 0; j < nloops; j++)
getppid();
wait(NULL); /* Wait for child to terminate */
@@ -438,7 +438,7 @@ main(int argc, char *argv[])
.BR sched (7),
.BR numactl (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sched_setattr.2 b/man2/sched_setattr.2
index 422a643d1..008a965b6 100644
--- a/man2/sched_setattr.2
+++ b/man2/sched_setattr.2
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH SCHED_SETATTR 2 2019-03-06 "Linux" "Linux Programmer's Manual"
+.TH SCHED_SETATTR 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
sched_setattr, sched_getattr \-
set and get scheduling policy and attributes
@@ -286,10 +286,8 @@ structure,
the additional bytes in the user-space structure are not touched.
If the caller-provided structure is smaller than the kernel
.I sched_attr
-structure and the kernel needs to return values outside the provided space,
-.BR sched_getattr ()
-fails with the error
-.BR E2BIG .
+structure, the kernel will silently not return any values which would be stored
+outside the provided space.
As with
.BR sched_setattr (),
these semantics allow for future extensibility of the interface.
@@ -416,6 +414,16 @@ failed with the error
instead of
.BR E2BIG
for the case described in ERRORS.
+.PP
+In Linux versions up to 5.3,
+.BR sched_getattr ()
+failed with the error
+.BR EFBIG
+if the in-kernel
+.IR sched_attr
+structure was larger than the
+.IR size
+passed by user space.
.\" In Linux versions up to up 3.15,
.\" FIXME . patch from Peter Zijlstra pending
.\" .BR sched_setattr ()
@@ -446,7 +454,7 @@ for the case described in ERRORS.
.BR sched (7)
.ad
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sched_setparam.2 b/man2/sched_setparam.2
index 38ad641f9..9fee19785 100644
--- a/man2/sched_setparam.2
+++ b/man2/sched_setparam.2
@@ -135,7 +135,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR capabilities (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sched_setscheduler.2 b/man2/sched_setscheduler.2
index 4c1db7284..75f2d0557 100644
--- a/man2/sched_setscheduler.2
+++ b/man2/sched_setscheduler.2
@@ -243,7 +243,7 @@ since it always returns 0 on success.
.BR sched (7)
.ad
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sched_yield.2 b/man2/sched_yield.2
index 92f2936d2..23ab999a6 100644
--- a/man2/sched_yield.2
+++ b/man2/sched_yield.2
@@ -90,7 +90,7 @@ is unspecified and very likely means your application design is broken.
.SH SEE ALSO
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/seccomp.2 b/man2/seccomp.2
index c9deeeb04..aef57dea6 100644
--- a/man2/seccomp.2
+++ b/man2/seccomp.2
@@ -25,7 +25,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH SECCOMP 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH SECCOMP 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
seccomp \- operate on Secure Computing state of the process
.SH SYNOPSIS
@@ -393,7 +393,7 @@ and
system calls to prevent the program from subverting such checks.)
.PP
When checking values from
-.IR args,
+.IR args ,
keep in mind that arguments are often
silently truncated before being processed, but after the seccomp check.
For example, this happens if the i386 ABI is used on an
@@ -509,6 +509,12 @@ in Linux 4.14,
was added as a synonym for
.BR SECCOMP_RET_KILL ,
in order to more clearly distinguish the two actions.
+.IP
+.BR Note :
+the use of
+.BR SECCOMP_RET_KILL_THREAD
+to kill a single thread in a multithreaded process is likely to leave the
+process in a permanently inconsistent and possibly corrupt state.
.TP
.BR SECCOMP_RET_TRAP
This value results in the kernel sending a thread-directed
@@ -600,6 +606,10 @@ allow use of
of other
sandboxed processes\(emwithout extreme care;
ptracers can use this mechanism to escape from the seccomp sandbox.)
+.IP
+Note that a tracer process will not be notified
+if another filter returns an action value with a precedence greater than
+.BR SECCOMP_RET_TRACE .
.TP
.BR SECCOMP_RET_LOG " (since Linux 4.14)"
.\" commit 59f5cf44a38284eb9e76270c786fb6cc62ef8ac4
@@ -969,7 +979,7 @@ $ \fBuname \-m\fP
x86_64
$ \fBsyscall_nr() {
cat /usr/src/linux/arch/x86/syscalls/syscall_64.tbl | \e
- awk '$2 != "x32" && $3 == "'$1'" { print $1 }'
+ awk \(aq$2 != "x32" && $3 == "\(aq$1\(aq" { print $1 }\(aq
}\fP
.EE
.in
@@ -1045,6 +1055,7 @@ cecilia
#include <sys/prctl.h>
#define X32_SYSCALL_BIT 0x40000000
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
static int
install_filter(int syscall_nr, int t_arch, int f_errno)
@@ -1053,21 +1064,21 @@ install_filter(int syscall_nr, int t_arch, int f_errno)
/* Assume that AUDIT_ARCH_X86_64 means the normal x86-64 ABI
(in the x32 ABI, all system calls have bit 30 set in the
- 'nr' field, meaning the numbers are >= X32_SYSCALL_BIT) */
+ \(aqnr\(aq field, meaning the numbers are >= X32_SYSCALL_BIT) */
if (t_arch == AUDIT_ARCH_X86_64)
upper_nr_limit = X32_SYSCALL_BIT - 1;
struct sock_filter filter[] = {
- /* [0] Load architecture from 'seccomp_data' buffer into
+ /* [0] Load architecture from \(aqseccomp_data\(aq buffer into
accumulator */
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
(offsetof(struct seccomp_data, arch))),
/* [1] Jump forward 5 instructions if architecture does not
- match 't_arch' */
+ match \(aqt_arch\(aq */
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, t_arch, 0, 5),
- /* [2] Load system call number from 'seccomp_data' buffer into
+ /* [2] Load system call number from \(aqseccomp_data\(aq buffer into
accumulator */
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
(offsetof(struct seccomp_data, nr))),
@@ -1078,11 +1089,11 @@ install_filter(int syscall_nr, int t_arch, int f_errno)
BPF_JUMP(BPF_JMP | BPF_JGT | BPF_K, upper_nr_limit, 3, 0),
/* [4] Jump forward 1 instruction if system call number
- does not match 'syscall_nr' */
+ does not match \(aqsyscall_nr\(aq */
BPF_JUMP(BPF_JMP | BPF_JEQ | BPF_K, syscall_nr, 0, 1),
- /* [5] Matching architecture and system call: don't execute
- the system call, and return 'f_errno' in 'errno' */
+ /* [5] Matching architecture and system call: don\(aqt execute
+ the system call, and return \(aqf_errno\(aq in \(aqerrno\(aq */
BPF_STMT(BPF_RET | BPF_K,
SECCOMP_RET_ERRNO | (f_errno & SECCOMP_RET_DATA)),
@@ -1090,12 +1101,12 @@ install_filter(int syscall_nr, int t_arch, int f_errno)
system calls */
BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_ALLOW),
- /* [7] Destination of architecture mismatch: kill task */
- BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_KILL),
+ /* [7] Destination of architecture mismatch: kill process */
+ BPF_STMT(BPF_RET | BPF_K, SECCOMP_RET_KILL_PROCESS),
};
struct sock_fprog prog = {
- .len = (unsigned short) (sizeof(filter) / sizeof(filter[0])),
+ .len = ARRAY_SIZE(filter),
.filter = filter,
};
@@ -1170,7 +1181,7 @@ Proceedings of the USENIX Winter 1993 Conference
.UR http://www.tcpdump.org/papers/bpf\-usenix93.pdf
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/select.2 b/man2/select.2
index 921f1d3cb..1917e93dd 100644
--- a/man2/select.2
+++ b/man2/select.2
@@ -37,7 +37,7 @@
.\" 2005-03-11, mtk, modified pselect() text (it is now a system
.\" call in 2.6.16.
.\"
-.TH SELECT 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH SELECT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO \-
synchronous I/O multiplexing
@@ -58,10 +58,10 @@ synchronous I/O multiplexing
.BI " const sigset_t *" sigmask );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR pselect ():
_POSIX_C_SOURCE\ >=\ 200112L
@@ -599,12 +599,12 @@ system call is not a
.I "sigset_t\ *"
pointer, but is instead a structure of the form:
.PP
-.in +4
+.in +4n
.EX
struct {
const kernel_sigset_t *ss; /* Pointer to signal set */
size_t ss_len; /* Size (in bytes) of object
- pointed to by 'ss' */
+ pointed to by \(aqss\(aq */
};
.EE
.in
@@ -730,7 +730,7 @@ main(void)
tv.tv_usec = 0;
retval = select(1, &rfds, NULL, NULL, &tv);
- /* Don't rely on the value of tv now! */
+ /* Don\(aqt rely on the value of tv now! */
if (retval == \-1)
perror("select()");
@@ -759,7 +759,7 @@ main(void)
For a tutorial with discussion and examples, see
.BR select_tut (2).
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/select_tut.2 b/man2/select_tut.2
index 44ad0c303..a347f69b9 100644
--- a/man2/select_tut.2
+++ b/man2/select_tut.2
@@ -650,7 +650,7 @@ connections cause the current connection to be dropped.
.\" .SH AUTHORS
.\" This man page was written by Paul Sheer.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/semctl.2 b/man2/semctl.2
index a97ac32f3..9504bd45b 100644
--- a/man2/semctl.2
+++ b/man2/semctl.2
@@ -650,7 +650,7 @@ See
.BR sem_overview (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/semget.2 b/man2/semget.2
index 835156985..8526ea699 100644
--- a/man2/semget.2
+++ b/man2/semget.2
@@ -465,7 +465,7 @@ main(int argc, char *argv[])
.BR sem_overview (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/semop.2 b/man2/semop.2
index 4616ba620..e2fab343f 100644
--- a/man2/semop.2
+++ b/man2/semop.2
@@ -47,10 +47,10 @@ semop, semtimedop \- System V semaphore operations
.BI " const struct timespec *" timeout );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR semtimedop ():
_GNU_SOURCE
@@ -64,8 +64,8 @@ unsigned short semval; /* semaphore value */
unsigned short semzcnt; /* # waiting for zero */
unsigned short semncnt; /* # waiting for increase */
pid_t sempid; /* PID of process that last
-.in
.EE
+.in
.PP
.BR semop ()
performs operations on selected semaphores in the set indicated by
@@ -559,7 +559,7 @@ can be found in
.BR sysvipc (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/send.2 b/man2/send.2
index e891c95a9..c3d0e9743 100644
--- a/man2/send.2
+++ b/man2/send.2
@@ -37,7 +37,7 @@
.\" Modified Oct 2003 by aeb
.\" Modified 2004-07-01 by mtk
.\"
-.TH SEND 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH SEND 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
send, sendto, sendmsg \- send a message on a socket
.SH SYNOPSIS
@@ -293,7 +293,7 @@ and
fields specify scatter-gather locations, as for
.BR writev (2).
.PP
-You may send control information using the
+You may send control information (ancillary data) using the
.I msg_control
and
.I msg_controllen
@@ -303,6 +303,11 @@ per socket by the value in
.IR /proc/sys/net/core/optmem_max ;
see
.BR socket (7).
+For further information on the use of ancillary data in various
+socket domains, see
+.BR unix (7)
+and
+.BR ip (7).
.PP
The
.I msg_flags
@@ -486,7 +491,7 @@ is shown in
.BR udp (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sendfile.2 b/man2/sendfile.2
index 88c8e6a3c..f4828abb9 100644
--- a/man2/sendfile.2
+++ b/man2/sendfile.2
@@ -242,7 +242,7 @@ provided one (or both) of them is a pipe.
.BR socket (2),
.BR splice (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sendmmsg.2 b/man2/sendmmsg.2
index 70f7552ce..11b0ef1bd 100644
--- a/man2/sendmmsg.2
+++ b/man2/sendmmsg.2
@@ -248,7 +248,7 @@ main(void)
.BR socket (2),
.BR socket (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/set_mempolicy.2 b/man2/set_mempolicy.2
index 2b66a2ed7..7fb009160 100644
--- a/man2/set_mempolicy.2
+++ b/man2/set_mempolicy.2
@@ -320,7 +320,7 @@ For information on library support, see
.BR numa (7),
.BR numactl (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/set_thread_area.2 b/man2/set_thread_area.2
index 02cfb4c02..6a0e60578 100644
--- a/man2/set_thread_area.2
+++ b/man2/set_thread_area.2
@@ -229,7 +229,7 @@ TLS entries.
.BR ptrace (2)
.RB ( PTRACE_GET_THREAD_AREA " and " PTRACE_SET_THREAD_AREA )
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/set_tid_address.2 b/man2/set_tid_address.2
index f52df8d8d..a4a687cfa 100644
--- a/man2/set_tid_address.2
+++ b/man2/set_tid_address.2
@@ -107,7 +107,7 @@ Glibc does not provide a wrapper for this system call; call it using
.BR futex (2),
.BR gettid (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/seteuid.2 b/man2/seteuid.2
index 8adfcfc7b..170fb7ef0 100644
--- a/man2/seteuid.2
+++ b/man2/seteuid.2
@@ -38,10 +38,10 @@ seteuid, setegid \- set effective user or group ID
.br
.BI "int setegid(gid_t " egid );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR seteuid (),
@@ -151,7 +151,7 @@ and
.BR credentials (7),
.BR user_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setfsgid.2 b/man2/setfsgid.2
index 3390d9282..2c96f3d6f 100644
--- a/man2/setfsgid.2
+++ b/man2/setfsgid.2
@@ -125,7 +125,7 @@ capability).
.BR capabilities (7),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setfsuid.2 b/man2/setfsuid.2
index b656a24d8..a0b6cd0e7 100644
--- a/man2/setfsuid.2
+++ b/man2/setfsuid.2
@@ -143,7 +143,7 @@ capability).
.BR capabilities (7),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setgid.2 b/man2/setgid.2
index 66652be7d..7ac5347d5 100644
--- a/man2/setgid.2
+++ b/man2/setgid.2
@@ -106,7 +106,7 @@ For details, see
.BR credentials (7),
.BR user_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setns.2 b/man2/setns.2
index 094f083c8..2cc7b4c93 100644
--- a/man2/setns.2
+++ b/man2/setns.2
@@ -80,7 +80,8 @@ must refer to a mount namespace.
.I fd
must refer to a descendant PID namespace.
.TP
-.BR CLONE_NEWTIME " (since Linux 5.6)"
+.BR CLONE_NEWTIME " (since Linux 5.8)"
+.\" commit 76c12881a38aaa83e1eb4ce2fada36c3a732bad4
.I fd
must refer to a time namespace.
.TP
@@ -420,7 +421,7 @@ main(int argc, char *argv[])
.BR namespaces (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setpgid.2 b/man2/setpgid.2
index d634ad3c5..19947f42b 100644
--- a/man2/setpgid.2
+++ b/man2/setpgid.2
@@ -65,10 +65,10 @@ setpgid, getpgid, setpgrp, getpgrp \- set/get process group
.br
.BI "int setpgrp(pid_t " pid ", pid_t " pgid ");\fR /* BSD version */"
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR getpgid ():
@@ -335,7 +335,7 @@ in a different session (see also
.BR termios (3),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setresuid.2 b/man2/setresuid.2
index 762d81c1d..e920fa5cd 100644
--- a/man2/setresuid.2
+++ b/man2/setresuid.2
@@ -166,7 +166,7 @@ For details, see
.BR credentials (7),
.BR user_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setreuid.2 b/man2/setreuid.2
index 436ec9b2d..d60f806ce 100644
--- a/man2/setreuid.2
+++ b/man2/setreuid.2
@@ -55,10 +55,10 @@ setreuid, setregid \- set real and/or effective user or group ID
.br
.BI "int setregid(gid_t " rgid ", gid_t " egid );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR setreuid (),
.BR setregid ():
@@ -222,7 +222,7 @@ For details, see
.BR credentials (7),
.BR user_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setsid.2 b/man2/setsid.2
index c8158c273..4b735c205 100644
--- a/man2/setsid.2
+++ b/man2/setsid.2
@@ -116,7 +116,7 @@ process group of the controlling terminal.
.BR credentials (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setuid.2 b/man2/setuid.2
index 79d91aa71..0a522228a 100644
--- a/man2/setuid.2
+++ b/man2/setuid.2
@@ -169,7 +169,7 @@ For details, see
.BR credentials (7),
.BR user_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setup.2 b/man2/setup.2
index bc4cb9d5e..b98363c5e 100644
--- a/man2/setup.2
+++ b/man2/setup.2
@@ -70,7 +70,7 @@ has had a single argument
and at other times a single argument
.IR "int magic" .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/setxattr.2 b/man2/setxattr.2
index 6758543c2..dce6e6eaf 100644
--- a/man2/setxattr.2
+++ b/man2/setxattr.2
@@ -178,7 +178,7 @@ These system calls are Linux-specific.
.BR symlink (7),
.BR xattr (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sgetmask.2 b/man2/sgetmask.2
index 0a5d3cd6f..abd133661 100644
--- a/man2/sgetmask.2
+++ b/man2/sgetmask.2
@@ -89,7 +89,7 @@ or
.BR sigprocmask (2),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/shmctl.2 b/man2/shmctl.2
index 2060474d1..a108e14c8 100644
--- a/man2/shmctl.2
+++ b/man2/shmctl.2
@@ -516,7 +516,7 @@ flag in
.BR capabilities (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/shmget.2 b/man2/shmget.2
index 123fc52f6..90e95db8f 100644
--- a/man2/shmget.2
+++ b/man2/shmget.2
@@ -133,7 +133,7 @@ the base-2 logarithm of the desired page size in the six bits at the offset
.BR SHM_HUGE_SHIFT .
Thus, the above two constants are defined as:
.IP
-.in +4
+.in +4n
.EX
#define SHM_HUGE_2MB (21 << SHM_HUGE_SHIFT)
#define SHM_HUGE_1GB (30 << SHM_HUGE_SHIFT)
@@ -424,7 +424,7 @@ See
.BR shm_overview (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/shmop.2 b/man2/shmop.2
index 12e361db4..c7704f37e 100644
--- a/man2/shmop.2
+++ b/man2/shmop.2
@@ -506,7 +506,7 @@ main(int argc, char *argv[])
.BR shm_overview (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/shutdown.2 b/man2/shutdown.2
index 2a59d4f53..c71c4e495 100644
--- a/man2/shutdown.2
+++ b/man2/shutdown.2
@@ -119,7 +119,7 @@ in Linux 3.7.
.BR socket (2),
.BR socket (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sigaction.2 b/man2/sigaction.2
index e0aaa787e..2abe30ccc 100644
--- a/man2/sigaction.2
+++ b/man2/sigaction.2
@@ -56,10 +56,10 @@ sigaction, rt_sigaction \- examine and change a signal action
.BI " struct sigaction *" oldact );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sigaction ():
@@ -317,7 +317,7 @@ siginfo_t {
int si_status; /* Exit value or signal */
clock_t si_utime; /* User time consumed */
clock_t si_stime; /* System time consumed */
- sigval_t si_value; /* Signal value */
+ union sigval si_value; /* Signal value */
int si_int; /* POSIX.1b signal */
void *si_ptr; /* POSIX.1b signal */
int si_overrun; /* Timer overrun count;
@@ -1061,7 +1061,7 @@ See
.BR core (5),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sigaltstack.2 b/man2/sigaltstack.2
index 232700712..cc7b45357 100644
--- a/man2/sigaltstack.2
+++ b/man2/sigaltstack.2
@@ -31,10 +31,10 @@ sigaltstack \- set and/or get signal stack context
.PP
.BI "int sigaltstack(const stack_t *" ss ", stack_t *" old_ss );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR sigaltstack ():
.ad l
@@ -367,7 +367,7 @@ if (sigaction(SIGSEGV, &sa, NULL) == -1) {
.BR sigsetjmp (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/signal.2 b/man2/signal.2
index a5ab11b00..99c42f368 100644
--- a/man2/signal.2
+++ b/man2/signal.2
@@ -291,7 +291,7 @@ provides System\ V semantics.
.BR sysv_signal (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/signalfd.2 b/man2/signalfd.2
index d38bc005f..275e8828d 100644
--- a/man2/signalfd.2
+++ b/man2/signalfd.2
@@ -17,7 +17,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH SIGNALFD 2 2020-06-09 Linux "Linux Programmer's Manual"
+.TH SIGNALFD 2 2020-11-01 Linux "Linux Programmer's Manual"
.SH NAME
signalfd \- create a file descriptor for accepting signals
.SH SYNOPSIS
@@ -502,8 +502,8 @@ main(int argc, char *argv[])
handle_error("signalfd");
for (;;) {
- s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));
- if (s != sizeof(struct signalfd_siginfo))
+ s = read(sfd, &fdsi, sizeof(fdsi));
+ if (s != sizeof(fdsi))
handle_error("read");
if (fdsi.ssi_signo == SIGINT) {
@@ -531,7 +531,7 @@ main(int argc, char *argv[])
.BR epoll (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sigpending.2 b/man2/sigpending.2
index 45b2fcd5f..ce1f19945 100644
--- a/man2/sigpending.2
+++ b/man2/sigpending.2
@@ -34,10 +34,10 @@ sigpending, rt_sigpending \- examine pending signals
.PP
.BI "int sigpending(sigset_t *" set );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sigpending ():
@@ -124,7 +124,7 @@ is not correctly returned.
.BR sigsetops (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sigprocmask.2 b/man2/sigprocmask.2
index a3befd5eb..89ed450dc 100644
--- a/man2/sigprocmask.2
+++ b/man2/sigprocmask.2
@@ -45,10 +45,10 @@ sigprocmask, rt_sigprocmask \- examine and change blocked signals
.BI " old_kernel_sigset_t *" oldset );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sigprocmask ():
@@ -230,7 +230,7 @@ when the kernel provides it.
.BR sigsetops (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sigreturn.2 b/man2/sigreturn.2
index 5c2038cb3..795d186c2 100644
--- a/man2/sigreturn.2
+++ b/man2/sigreturn.2
@@ -163,7 +163,7 @@ when the kernel provides it.
.BR signal (7),
.BR vdso (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sigsuspend.2 b/man2/sigsuspend.2
index 70fb79823..76456a6fa 100644
--- a/man2/sigsuspend.2
+++ b/man2/sigsuspend.2
@@ -34,10 +34,10 @@ sigsuspend, rt_sigsuspend \- wait for a signal
.PP
.BI "int sigsuspend(const sigset_t *" mask );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sigsuspend ():
@@ -144,7 +144,7 @@ when the kernel provides it.
.BR sigwait (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sigwaitinfo.2 b/man2/sigwaitinfo.2
index 9e7734691..e38e883b4 100644
--- a/man2/sigwaitinfo.2
+++ b/man2/sigwaitinfo.2
@@ -36,10 +36,10 @@ for queued signals
.BI " const struct timespec *" timeout ");"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR sigwaitinfo (),
.BR sigtimedwait ():
@@ -248,7 +248,7 @@ when the kernel provides it.
.BR signal (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/socket.2 b/man2/socket.2
index 2b58880ea..80f277791 100644
--- a/man2/socket.2
+++ b/man2/socket.2
@@ -521,7 +521,7 @@ and
reprinted in
.I UNIX Programmer's Supplementary Documents Volume 1.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/socketcall.2 b/man2/socketcall.2
index c6762eecb..6a789a2a6 100644
--- a/man2/socketcall.2
+++ b/man2/socketcall.2
@@ -190,7 +190,7 @@ and also provides a (very) small performance improvement.
.BR socket (2),
.BR socketpair (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/socketpair.2 b/man2/socketpair.2
index 47084cd06..5d75ddba8 100644
--- a/man2/socketpair.2
+++ b/man2/socketpair.2
@@ -143,7 +143,7 @@ file, and portable applications are probably wise to include it.
.BR socket (7),
.BR unix (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/splice.2 b/man2/splice.2
index 1cfd48387..4f93eb534 100644
--- a/man2/splice.2
+++ b/man2/splice.2
@@ -271,7 +271,7 @@ See
.BR vmsplice (2),
.BR pipe (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/spu_create.2 b/man2/spu_create.2
index 5031f7b51..2196e9111 100644
--- a/man2/spu_create.2
+++ b/man2/spu_create.2
@@ -233,7 +233,7 @@ is not a directory.
.TP
.B EPERM
The
-.I SPU_CREATE_NOSCHED
+.B SPU_CREATE_NOSCHED
flag has been given, but the user does not have the
.B CAP_SYS_NICE
capability.
@@ -273,7 +273,7 @@ for an example of the use of
.BR capabilities (7),
.BR spufs (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/spu_run.2 b/man2/spu_run.2
index db9dd4f61..c736925dc 100644
--- a/man2/spu_run.2
+++ b/man2/spu_run.2
@@ -23,7 +23,7 @@
.\" 2007-09-28, updates for newer kernels, added example
.\" by Jeremy Kerr <jk@ozlabs.org>
.\"
-.TH SPU_RUN 2 2020-06-09 Linux "Linux Programmer's Manual"
+.TH SPU_RUN 2 2020-11-01 Linux "Linux Programmer's Manual"
.SH NAME
spu_run \- execute an SPU context
.SH SYNOPSIS
@@ -254,7 +254,7 @@ int main(void)
* 0x00000002 (spu was stopped due to stop\-and\-signal)
* | 0x12340000 (the stop\-and\-signal code)
*/
- printf("SPU Status: 0x%08x\en", spu_status);
+ printf("SPU Status: %#08x\en", spu_status);
exit(EXIT_SUCCESS);
}
@@ -267,7 +267,7 @@ int main(void)
.BR capabilities (7),
.BR spufs (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/stat.2 b/man2/stat.2
index d182ec663..a59b6e903 100644
--- a/man2/stat.2
+++ b/man2/stat.2
@@ -57,10 +57,10 @@ statbuf ,
.BI " int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR lstat ():
@@ -644,6 +644,7 @@ structure.
.EX
#include <sys/types.h>
#include <sys/stat.h>
+#include <stdint.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
@@ -664,8 +665,9 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- printf("ID of containing device: [%lx,%lx]\en",
- (long) major(sb.st_dev), (long) minor(sb.st_dev));
+ printf("ID of containing device: [%jx,%jx]\en",
+ (uintmax_t) major(sb.st_dev),
+ (uintmax_t) minor(sb.st_dev));
printf("File type: ");
@@ -680,21 +682,21 @@ main(int argc, char *argv[])
default: printf("unknown?\en"); break;
}
- printf("I\-node number: %ld\en", (long) sb.st_ino);
+ printf("I\-node number: %ju\en", (uintmax_t) sb.st_ino);
- printf("Mode: %lo (octal)\en",
- (unsigned long) sb.st_mode);
+ printf("Mode: %jo (octal)\en",
+ (uintmax_t) sb.st_mode);
- printf("Link count: %ld\en", (long) sb.st_nlink);
- printf("Ownership: UID=%ld GID=%ld\en",
- (long) sb.st_uid, (long) sb.st_gid);
+ printf("Link count: %ju\en", (uintmax_t) sb.st_nlink);
+ printf("Ownership: UID=%ju GID=%ju\en",
+ (uintmax_t) sb.st_uid, (uintmax_t) sb.st_gid);
- printf("Preferred I/O block size: %ld bytes\en",
- (long) sb.st_blksize);
- printf("File size: %lld bytes\en",
- (long long) sb.st_size);
- printf("Blocks allocated: %lld\en",
- (long long) sb.st_blocks);
+ printf("Preferred I/O block size: %jd bytes\en",
+ (intmax_t) sb.st_blksize);
+ printf("File size: %jd bytes\en",
+ (intmax_t) sb.st_size);
+ printf("Blocks allocated: %jd\en",
+ (intmax_t) sb.st_blocks);
printf("Last status change: %s", ctime(&sb.st_ctime));
printf("Last file access: %s", ctime(&sb.st_atime));
@@ -716,7 +718,7 @@ main(int argc, char *argv[])
.BR inode (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/statfs.2 b/man2/statfs.2
index 9f9214c28..f71de8e04 100644
--- a/man2/statfs.2
+++ b/man2/statfs.2
@@ -391,7 +391,7 @@ for file descriptors created by
.BR statvfs (3),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/statx.2 b/man2/statx.2
index c893fd0a6..94e9eb4c5 100644
--- a/man2/statx.2
+++ b/man2/statx.2
@@ -61,7 +61,7 @@ struct statx {
__u64 stx_size; /* Total size in bytes */
__u64 stx_blocks; /* Number of 512B blocks allocated */
__u64 stx_attributes_mask;
- /* Mask to show what's supported
+ /* Mask to show what\(aqs supported
in stx_attributes */
/* The following fields are file timestamps */
@@ -462,6 +462,36 @@ The file has fs-verity enabled.
It cannot be written to, and all reads from it will be verified
against a cryptographic hash that covers the
entire file (e.g., via a Merkle tree).
+.TP
+.BR STATX_ATTR_DAX " (since Linux 5.8)"
+The file is in the DAX (cpu direct access) state.
+DAX state attempts to
+minimize software cache effects for both I/O and memory mappings of this file.
+It requires a file system which has been configured to support DAX.
+.IP
+DAX generally assumes all accesses are via CPU load / store instructions
+which can minimize overhead for small accesses,
+but may adversely affect CPU utilization for large transfers.
+.IP
+File I/O is done directly to/from user-space buffers and memory mapped I/O may
+be performed with direct memory mappings that bypass the kernel page cache.
+.IP
+While the DAX property tends to result in data being transferred synchronously,
+it does not give the same guarantees as the
+.B O_SYNC
+flag (see
+.BR open (2)),
+where data and the necessary metadata are transferred together.
+.IP
+A DAX file may support being mapped with the
+.B MAP_SYNC
+flag, which enables a
+program to use CPU cache flush instructions to persist CPU store operations
+without an explicit
+.BR fsync (2).
+See
+.BR mmap (2)
+for more information.
.SH RETURN VALUE
On success, zero is returned.
On error, \-1 is returned, and
@@ -545,7 +575,7 @@ is Linux-specific.
.BR inode (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/stime.2 b/man2/stime.2
index d21f4eff1..d72dcb895 100644
--- a/man2/stime.2
+++ b/man2/stime.2
@@ -35,10 +35,10 @@ stime \- set time
.PP
.BI "int stime(const time_t *" t );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR stime ():
Since glibc 2.19:
@@ -86,7 +86,7 @@ and is no longer declared in
.BR settimeofday (2),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/subpage_prot.2 b/man2/subpage_prot.2
index 85a0be837..8be1e6fc8 100644
--- a/man2/subpage_prot.2
+++ b/man2/subpage_prot.2
@@ -132,7 +132,7 @@ hardware pages (on machines with hardware 64-kB page support).
.IR Documentation/admin-guide/mm/hugetlbpage.rst
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/swapon.2 b/man2/swapon.2
index 45d008a12..82041eabe 100644
--- a/man2/swapon.2
+++ b/man2/swapon.2
@@ -207,7 +207,7 @@ is called, even if that flag bit is not set.
.BR swapoff (8),
.BR swapon (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/symlink.2 b/man2/symlink.2
index ee26629ac..ddc365048 100644
--- a/man2/symlink.2
+++ b/man2/symlink.2
@@ -46,10 +46,10 @@ symlink, symlinkat \- make a new name for a file
", const char *" linkpath );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR symlink ():
@@ -273,7 +273,7 @@ argument.
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sync.2 b/man2/sync.2
index 272901820..642a8c943 100644
--- a/man2/sync.2
+++ b/man2/sync.2
@@ -43,10 +43,10 @@ sync, syncfs \- commit filesystem caches to disk
.PP
.BI "int syncfs(int " fd );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR sync ():
.ad l
@@ -159,7 +159,7 @@ before returning.
.BR fdatasync (2),
.BR fsync (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sync_file_range.2 b/man2/sync_file_range.2
index da0bb81ec..310b4f696 100644
--- a/man2/sync_file_range.2
+++ b/man2/sync_file_range.2
@@ -222,7 +222,7 @@ under the name
.BR msync (2),
.BR sync (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/syscall.2 b/man2/syscall.2
index 181e463db..e7fd13d98 100644
--- a/man2/syscall.2
+++ b/man2/syscall.2
@@ -50,10 +50,10 @@ syscall \- indirect system call
.BI "long syscall(long " number ", ...);"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.BR syscall ():
.PD 0
.ad l
@@ -392,7 +392,7 @@ main(int argc, char *argv[])
.BR errno (3),
.BR vdso (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/syscalls.2 b/man2/syscalls.2
index 139822676..5eda88641 100644
--- a/man2/syscalls.2
+++ b/man2/syscalls.2
@@ -147,7 +147,7 @@ into a 2.4.x release after 2.4.15.
When this is so, the version where the system call appeared
in both of the major kernel series is listed.
.PP
-The list of system calls that are available as at kernel 4.19
+The list of system calls that are available as at kernel 5.9
(or in a few cases only on older kernels) is as follows:
.\"
.\" Looking at scripts/checksyscalls.sh in the kernel source is
@@ -186,11 +186,6 @@ Deprecated (does nothing)
.br
since 2.6
T}
-\fBbfin_spinlock\fP(2) 2.6.22 T{
-Blackfin only (port removed
-.br
-in Linux 4.17)
-T}
\fBbind\fP(2) 2.0 See notes on \fBsocketcall\fP(2)
\fBbpf\fP(2) 3.18
\fBbrk\fP(2) 1.0
@@ -220,6 +215,7 @@ T}
\fBclone\fP(2) 1.0
\fBclone3\fP(2) 5.3
\fBclose\fP(2) 1.0
+\fBclose_range\fP(2) 5.9
.\" .\" dcef1f634657dabe7905af3ccda12cf7f0b6fcc1
.\" .\" cc20d42986d5807cbe4f5c7c8e3dab2e59ea0db3
.\" .\" db695c0509d6ec9046ee5e4c520a19fa17d9fce2
@@ -234,11 +230,6 @@ T}
.\" T}
.\" 867e359b97c970a60626d5d76bbe2a8fadbf38fb
.\" bb9d812643d8a121df7d614a2b9c60193a92deb0
-\fBcmpxchg_badaddr\fP(2) 2.6.36 T{
-Tile only (port removed
-.br
-in Linux 4.17)
-T}
\fBconnect\fP(2) 2.0 See notes on \fBsocketcall\fP(2)
\fBcopy_file_range\fP(2) 4.5
\fBcreat\fP(2) 1.0
@@ -246,11 +237,6 @@ T}
\fBdelete_module\fP(2) 1.0
.\" 1394f03221790a988afc3e4b3cb79f2e477246a9
.\" 4ba66a9760722ccbb691b8f7116cad2f791cca7b
-\fBdma_memcpy\fP(2) 2.6.22 T{
-Blackfin only (port removed
-.br
-in Linux 4.17)
-T}
\fBdup\fP(2) 1.0
\fBdup2\fP(2) 1.0
\fBdup3\fP(2) 2.6.27
@@ -436,26 +422,6 @@ T}
\fBmemory_ordering\fP(2) 2.2 SPARC64 only
.\" 26025bbfbba33a9425be1b89eccb4664ea4c17b6
.\" bb6fb6dfcc17cddac11ac295861f7608194447a7
-\fBmetag_get_tls\fP(2) 3.9 T{
-Metag only (port removed
-.br
-in Linux 4.17)
-T}
-\fBmetag_set_fpu_flags\fP(2) 3.9 T{
-Metag only (port removed
-.br
-in Linux 4.17)
-T}
-\fBmetag_set_tls\fP(2) 3.9 T{
-Metag only (port removed
-.br
-in Linux 4.17)
-T}
-\fBmetag_setglobalbit\fP(2) 3.9 T{
-Metag only (port removed
-.br
-in Linux 4.17)
-T}
\fBmembarrier\fP(2) 3.17
\fBmemfd_create\fP(2) 3.17
\fBmigrate_pages\fP(2) 2.6.16
@@ -551,15 +517,6 @@ T}
\fBpoll\fP(2) 2.0.36; 2.2
\fBppoll\fP(2) 2.6.16
\fBprctl\fP(2) 2.2
-\fBpread\fP(2) T{
-Used for \fBpread64\fP(2) on AVR32
-.br
-(port removed in Linux 4.12)
-.br
-and Blackfin (port removed
-.br
-in Linux 4.17)
-T}
\fBpread64\fP(2) T{
Added as "pread" in 2.2;
.br
@@ -573,17 +530,6 @@ T}
\fBpselect6\fP(2) 2.6.16
.\" Implements \fBpselect\fP(2)
\fBptrace\fP(2) 1.0
-\fBpwrite\fP(2) T{
-Used for \fBpwrite64\fP(2)
-.br
-on AVR32
-(port removed
-.br
-in Linux 4.12)
-and Blackfin
-.br
-(port removed in Linux 4.17)
-T}
\fBpwrite64\fP(2) T{
Added as "pwrite" in 2.2;
.br
@@ -743,16 +689,6 @@ T}
\fBsplice\fP(2) 2.6.17
\fBspu_create\fP(2) 2.6.16 PowerPC/PowerPC64 only
\fBspu_run\fP(2) 2.6.16 PowerPC/PowerPC64 only
-\fBsram_alloc\fP(2) 2.6.22 T{
-Blackfin (port removed
-.br
-in Linux 4.17)
-T}
-\fBsram_free\fP(2) 2.6.22 T{
-Blackfin (port removed
-.br
-in Linux 4.17)
-T}
\fBssetmask\fP(2) 1.0
\fBstat\fP(2) 1.0
\fBstat64\fP(2) 2.4
@@ -764,7 +700,6 @@ T}
\fBswapcontext\fP(2) 2.6.3 PowerPC/PowerPC64 only
.\" 529d235a0e190ded1d21ccc80a73e625ebcad09b
\fBswitch_endian\fP(2) 4.1 PowerPC64 only
-\fBswapcontext\fP(2) 2.6.3 PowerPC only
\fBswapoff\fP(2) 1.0
\fBswapon\fP(2) 1.0
\fBsymlink\fP(2) 1.0
@@ -903,6 +838,71 @@ There was briefly
.BR set_zone_reclaim (2),
added in Linux 2.6.13, and removed in 2.6.16;
this system call was never available to user space.
+.\"
+.SS System calls on removed ports
+Some system calls only ever existed on Linux architectures that have
+since been removed from the kernel:
+.TP
+AVR32 (port removed in Linux 4.12)
+.RS
+.PD 0
+.IP * 2
+.BR pread (2)
+.IP *
+.BR pwrite (2)
+.PD
+.RE
+.TP
+Blackfin (port removed in Linux 4.17)
+.RS
+.PD 0
+.IP * 2
+.BR bfin_spinlock (2)
+(added in Linux 2.6.22)
+.IP *
+.BR dma_memcpy (2)
+(added in Linux 2.6.22)
+.IP *
+.BR pread (2)
+(added in Linux 2.6.22)
+.IP *
+.BR pwrite (2)
+(added in Linux 2.6.22)
+.IP *
+.BR sram_alloc (2)
+(added in Linux 2.6.22)
+.IP *
+.BR sram_free (2)
+(added in Linux 2.6.22)
+.PD
+.RE
+.TP
+Metag (port removed in Linux 4.17)
+.RS
+.PD 0
+.IP * 2
+.BR metag_get_tls (2)
+(add in Linux 3.9)
+.IP *
+.BR metag_set_fpu_flags (2)
+(add in Linux 3.9)
+.IP *
+.BR metag_set_tls (2)
+(add in Linux 3.9)
+.IP *
+.BR metag_setglobalbit (2)
+(add in Linux 3.9)
+.PD
+.RE
+.TP
+Tile (port removed in Linux 4.17)
+.RS
+.PD 0
+.IP * 2
+.BR cmpxchg_badaddr (2)
+(added in Linux 2.6.36)
+.PD
+.RE
.SH NOTES
Roughly speaking, the code belonging to the system call
with number __NR_xxx defined in
@@ -1116,7 +1116,7 @@ low-cost Alphas in order to access address space beyond first 27 bits.
.BR libc (7),
.BR vdso (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sysctl.2 b/man2/sysctl.2
index 0b3c2ff33..9f0fdfcd6 100644
--- a/man2/sysctl.2
+++ b/man2/sysctl.2
@@ -27,7 +27,7 @@
.\" Modified Tue Oct 22 22:28:41 1996 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified Mon Jan 5 20:31:04 1998 by aeb.
.\"
-.TH SYSCTL 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH SYSCTL 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
sysctl \- read/write system parameters
.SH SYNOPSIS
@@ -154,7 +154,7 @@ main(void)
size_t osnamelth;
int name[] = { CTL_KERN, KERN_OSTYPE };
- memset(&args, 0, sizeof(struct __sysctl_args));
+ memset(&args, 0, sizeof(args));
args.name = name;
args.nlen = sizeof(name)/sizeof(name[0]);
args.oldval = osname;
@@ -173,7 +173,7 @@ main(void)
.SH SEE ALSO
.BR proc (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sysfs.2 b/man2/sysfs.2
index 565a6b0ae..0f9d8ec27 100644
--- a/man2/sysfs.2
+++ b/man2/sysfs.2
@@ -114,7 +114,7 @@ There is no way to guess how large \fIbuf\fP should be.
.BR proc (5),
.BR sysfs (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/sysinfo.2 b/man2/sysinfo.2
index bded2ebf1..d7e632b99 100644
--- a/man2/sysinfo.2
+++ b/man2/sysinfo.2
@@ -122,7 +122,7 @@ and
.SH SEE ALSO
.BR proc (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/syslog.2 b/man2/syslog.2
index f30e2552e..29b54fc46 100644
--- a/man2/syslog.2
+++ b/man2/syslog.2
@@ -387,7 +387,7 @@ different animals.
.BR syslog (3),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/tee.2 b/man2/tee.2
index ec885db93..50355f797 100644
--- a/man2/tee.2
+++ b/man2/tee.2
@@ -216,7 +216,7 @@ main(int argc, char *argv[])
.BR vmsplice (2),
.BR pipe (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/time.2 b/man2/time.2
index 9096c3855..e738c0e98 100644
--- a/man2/time.2
+++ b/man2/time.2
@@ -130,7 +130,7 @@ is provided in the
.BR time (7),
.BR vdso (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/timer_create.2 b/man2/timer_create.2
index 3495109f4..f343f0c46 100644
--- a/man2/timer_create.2
+++ b/man2/timer_create.2
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH TIMER_CREATE 2 2020-04-11 Linux "Linux Programmer's Manual"
+.TH TIMER_CREATE 2 2020-11-01 Linux "Linux Programmer's Manual"
.SH NAME
timer_create \- create a POSIX per-process timer
.SH SYNOPSIS
@@ -37,10 +37,10 @@ timer_create \- create a POSIX per-process timer
.PP
Link with \fI\-lrt\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR timer_create ():
_POSIX_C_SOURCE\ >=\ 199309L
@@ -369,6 +369,7 @@ Caught signal 34
.SS Program source
\&
.EX
+#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
@@ -390,7 +391,7 @@ print_siginfo(siginfo_t *si)
tidp = si\->si_value.sival_ptr;
printf(" sival_ptr = %p; ", si\->si_value.sival_ptr);
- printf(" *sival_ptr = 0x%lx\en", (long) *tidp);
+ printf(" *sival_ptr = %#jx\en", (uintmax_t) *tidp);
or = timer_getoverrun(*tidp);
if (or == \-1)
@@ -454,7 +455,7 @@ main(int argc, char *argv[])
if (timer_create(CLOCKID, &sev, &timerid) == \-1)
errExit("timer_create");
- printf("timer ID is 0x%lx\en", (long) timerid);
+ printf("timer ID is %#jx\en", (uintmax_t) timerid);
/* Start the timer */
@@ -499,7 +500,7 @@ main(int argc, char *argv[])
.BR signal (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/timer_delete.2 b/man2/timer_delete.2
index 1e01c51e5..17a1df06d 100644
--- a/man2/timer_delete.2
+++ b/man2/timer_delete.2
@@ -35,10 +35,10 @@ timer_delete \- delete a POSIX per-process timer
.PP
Link with \fI\-lrt\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR timer_delete ():
_POSIX_C_SOURCE\ >=\ 199309L
@@ -73,7 +73,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR timer_settime (2),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/timer_getoverrun.2 b/man2/timer_getoverrun.2
index 977b76452..a0a3e50fc 100644
--- a/man2/timer_getoverrun.2
+++ b/man2/timer_getoverrun.2
@@ -35,10 +35,10 @@ timer_getoverrun \- get overrun count for a POSIX per-process timer
.PP
Link with \fI\-lrt\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR timer_getoverrun ():
_POSIX_C_SOURCE\ >=\ 199309L
@@ -140,7 +140,7 @@ See
.BR signal (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/timer_settime.2 b/man2/timer_settime.2
index dd368b582..835ef5bc7 100644
--- a/man2/timer_settime.2
+++ b/man2/timer_settime.2
@@ -39,10 +39,10 @@ state of POSIX per-process timer
.PP
Link with \fI\-lrt\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR timer_settime (),
.BR timer_gettime ():
@@ -214,7 +214,7 @@ See
.BR timer_getoverrun (2),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/timerfd_create.2 b/man2/timerfd_create.2
index 70be76618..f57c121e6 100644
--- a/man2/timerfd_create.2
+++ b/man2/timerfd_create.2
@@ -624,6 +624,7 @@ a.out 3 1 100
#include <sys/timerfd.h>
#include <time.h>
#include <unistd.h>
+#include <inttypes.h> /* Definition of PRIu64 */
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h> /* Definition of uint64_t */
@@ -706,9 +707,7 @@ main(int argc, char *argv[])
tot_exp += exp;
print_elapsed_time();
- printf("read: %llu; total=%llu\en",
- (unsigned long long) exp,
- (unsigned long long) tot_exp);
+ printf("read: %" PRIu64 "; total=%" PRIu64 "\en", exp, tot_exp);
}
exit(EXIT_SUCCESS);
@@ -727,7 +726,7 @@ main(int argc, char *argv[])
.BR epoll (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/times.2 b/man2/times.2
index 8601ccfd2..c74623e77 100644
--- a/man2/times.2
+++ b/man2/times.2
@@ -216,7 +216,7 @@ the maximum value that can be stored in
.BR sysconf (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/tkill.2 b/man2/tkill.2
index 3ada1af53..970856eb0 100644
--- a/man2/tkill.2
+++ b/man2/tkill.2
@@ -151,7 +151,7 @@ Before glibc 2.30, there was also no wrapper function for
.BR kill (2),
.BR rt_sigqueueinfo (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/truncate.2 b/man2/truncate.2
index b39ae495b..83351df5d 100644
--- a/man2/truncate.2
+++ b/man2/truncate.2
@@ -52,10 +52,10 @@ truncate, ftruncate \- truncate a file to a specified length
.br
.BI "int ftruncate(int " fd ", off_t " length );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
.BR truncate ():
@@ -276,7 +276,7 @@ This has been fixed in later glibc versions.
.BR stat (2),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/umask.2 b/man2/umask.2
index cfa954b21..7dc49e1d0 100644
--- a/man2/umask.2
+++ b/man2/umask.2
@@ -159,7 +159,7 @@ to System\ V IPC objects created by the process (using
.BR stat (2),
.BR acl (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/umount.2 b/man2/umount.2
index 94e93563c..eb6d2b82e 100644
--- a/man2/umount.2
+++ b/man2/umount.2
@@ -227,7 +227,7 @@ in more than one place, so specifying the device does not suffice).
.BR mount (8),
.BR umount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/uname.2 b/man2/uname.2
index 765daae42..9a4bad88c 100644
--- a/man2/uname.2
+++ b/man2/uname.2
@@ -169,7 +169,7 @@ invoking the most recent version of the system call provided by the kernel.
.BR gethostname (2),
.BR uts_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/unimplemented.2 b/man2/unimplemented.2
index 142e8a395..5183a413c 100644
--- a/man2/unimplemented.2
+++ b/man2/unimplemented.2
@@ -64,7 +64,7 @@ exist only when the Linux kernel was built with support for them.
.SH SEE ALSO
.BR syscalls (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/unlink.2 b/man2/unlink.2
index 743d4c11f..90ddcaa0f 100644
--- a/man2/unlink.2
+++ b/man2/unlink.2
@@ -45,10 +45,10 @@ unlink, unlinkat \- delete a name and possibly the file it refers to
.BI "int unlinkat(int " dirfd ", const char *" pathname ", int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR unlinkat ():
.PD 0
@@ -316,7 +316,7 @@ disappearance of files which are still being used.
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/unshare.2 b/man2/unshare.2
index fcbb44f3e..436a87ace 100644
--- a/man2/unshare.2
+++ b/man2/unshare.2
@@ -566,7 +566,7 @@ in the Linux kernel source tree
.I Documentation/unshare.txt
before Linux 4.12)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/uselib.2 b/man2/uselib.2
index 74f2fd41d..1da0a3b6a 100644
--- a/man2/uselib.2
+++ b/man2/uselib.2
@@ -128,7 +128,7 @@ option.
.BR capabilities (7),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/userfaultfd.2 b/man2/userfaultfd.2
index 8c9499a62..74bfa5042 100644
--- a/man2/userfaultfd.2
+++ b/man2/userfaultfd.2
@@ -24,7 +24,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH USERFAULTFD 2 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH USERFAULTFD 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
userfaultfd \- create a file descriptor for handling page faults in user space
.SH SYNOPSIS
@@ -566,6 +566,7 @@ Read address 0x7fd30106ec0f in main(): C
Licensed under the GNU General Public License version 2 or later.
*/
#define _GNU_SOURCE
+#include <inttypes.h>
#include <sys/types.h>
#include <stdio.h>
#include <linux/userfaultfd.h>
@@ -650,8 +651,8 @@ fault_handler_thread(void *arg)
/* Display info about the page\-fault event */
printf(" UFFD_EVENT_PAGEFAULT event: ");
- printf("flags = %llx; ", msg.arg.pagefault.flags);
- printf("address = %llx\en", msg.arg.pagefault.address);
+ printf("flags = %"PRIx64"; ", msg.arg.pagefault.flags);
+ printf("address = %"PRIx64"\en", msg.arg.pagefault.address);
/* Copy the page pointed to by \(aqpage\(aq into the faulting
region. Vary the contents that are copied in, so that it
@@ -673,7 +674,7 @@ fault_handler_thread(void *arg)
if (ioctl(uffd, UFFDIO_COPY, &uffdio_copy) == \-1)
errExit("ioctl\-UFFDIO_COPY");
- printf(" (uffdio_copy.copy returned %lld)\en",
+ printf(" (uffdio_copy.copy returned %"PRId64")\en",
uffdio_copy.copy);
}
}
@@ -683,7 +684,7 @@ main(int argc, char *argv[])
{
long uffd; /* userfaultfd file descriptor */
char *addr; /* Start of region handled by userfaultfd */
- unsigned long len; /* Length of region handled by userfaultfd */
+ uint64_t len; /* Length of region handled by userfaultfd */
pthread_t thr; /* ID of thread that handles page faults */
struct uffdio_api uffdio_api;
struct uffdio_register uffdio_register;
@@ -695,7 +696,7 @@ main(int argc, char *argv[])
}
page_size = sysconf(_SC_PAGE_SIZE);
- len = strtoul(argv[1], NULL, 0) * page_size;
+ len = strtoull(argv[1], NULL, 0) * page_size;
/* Create and enable userfaultfd object */
@@ -767,7 +768,7 @@ main(int argc, char *argv[])
.IR Documentation/admin-guide/mm/userfaultfd.rst
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/ustat.2 b/man2/ustat.2
index defdeb37b..5a5504afb 100644
--- a/man2/ustat.2
+++ b/man2/ustat.2
@@ -119,7 +119,7 @@ Such filesystems will return the current number of free inodes.
.BR stat (2),
.BR statfs (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/utime.2 b/man2/utime.2
index 2fc0984aa..55c40d92b 100644
--- a/man2/utime.2
+++ b/man2/utime.2
@@ -191,7 +191,7 @@ on an append-only file.
.BR futimes (3),
.BR inode (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/utimensat.2 b/man2/utimensat.2
index b6826d2f2..b9c92d84e 100644
--- a/man2/utimensat.2
+++ b/man2/utimensat.2
@@ -37,10 +37,10 @@ utimensat, futimens \- change file timestamps with nanosecond precision
.BI "int futimens(int " fd ", const struct timespec " times [2]);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.PD 0
@@ -638,7 +638,7 @@ instead checks whether the
.BR path_resolution (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/vfork.2 b/man2/vfork.2
index e84e24662..5215afa12 100644
--- a/man2/vfork.2
+++ b/man2/vfork.2
@@ -36,10 +36,10 @@ vfork \- create a child process and block parent
.PP
.B pid_t vfork(void);
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR vfork ():
.ad l
@@ -334,7 +334,7 @@ are allowed and input attempts result in an end-of-file indication."
.BR unshare (2),
.BR wait (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/vhangup.2 b/man2/vhangup.2
index 6ae25a054..9d93e25ca 100644
--- a/man2/vhangup.2
+++ b/man2/vhangup.2
@@ -33,10 +33,10 @@ vhangup \- virtually hangup the current terminal
.PP
.B int vhangup(void);
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR vhangup ():
@@ -75,7 +75,7 @@ intended to be portable.
.BR init (1),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/vm86.2 b/man2/vm86.2
index 56653a0e7..610ade72b 100644
--- a/man2/vm86.2
+++ b/man2/vm86.2
@@ -74,7 +74,7 @@ stack should exist only within vm86 mode itself.)
This call is specific to Linux on 32-bit Intel processors,
and should not be used in programs intended to be portable.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/vmsplice.2 b/man2/vmsplice.2
index 6e821d589..cb974326d 100644
--- a/man2/vmsplice.2
+++ b/man2/vmsplice.2
@@ -190,7 +190,7 @@ with room for future improvement in performance.
.BR tee (2),
.BR pipe (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/wait.2 b/man2/wait.2
index 8a2ab2c8c..fbe97357f 100644
--- a/man2/wait.2
+++ b/man2/wait.2
@@ -46,7 +46,7 @@
.\" 2005-05-10, mtk, __W* flags can't be used with waitid()
.\" 2008-07-04, mtk, removed erroneous text about SA_NOCLDSTOP
.\"
-.TH WAIT 2 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH WAIT 2 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
wait, waitpid, waitid \- wait for process to change state
.SH SYNOPSIS
@@ -63,10 +63,10 @@ wait, waitpid, waitid \- wait for process to change state
/* This is the glibc and POSIX interface; see
NOTES for information on the raw system call. */
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.PD 0
@@ -657,6 +657,7 @@ $
\&
.EX
#include <sys/wait.h>
+#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
@@ -674,7 +675,7 @@ main(int argc, char *argv[])
}
if (cpid == 0) { /* Code executed by child */
- printf("Child PID is %ld\en", (long) getpid());
+ printf("Child PID is %jd\en", (intmax_t) getpid());
if (argc == 1)
pause(); /* Wait for signals */
_exit(atoi(argv[1]));
@@ -715,7 +716,7 @@ main(int argc, char *argv[])
.BR credentials (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/wait4.2 b/man2/wait4.2
index 7aa8b2306..d1d9ccdc7 100644
--- a/man2/wait4.2
+++ b/man2/wait4.2
@@ -47,10 +47,10 @@ wait3, wait4 \- wait for process to change state, BSD style
.BI " struct rusage *" rusage );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR wait3 ():
@@ -184,7 +184,7 @@ system call.
.BR wait (2),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man2/write.2 b/man2/write.2
index d0c1c9700..2ae1abb3f 100644
--- a/man2/write.2
+++ b/man2/write.2
@@ -347,7 +347,7 @@ This problem was fixed in Linux 3.14.
.BR writev (2),
.BR fwrite (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/CIRCLEQ_ENTRY.3 b/man3/CIRCLEQ_ENTRY.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_ENTRY.3
+++ b/man3/CIRCLEQ_ENTRY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CIRCLEQ_HEAD.3 b/man3/CIRCLEQ_HEAD.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_HEAD.3
+++ b/man3/CIRCLEQ_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CIRCLEQ_INIT.3 b/man3/CIRCLEQ_INIT.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_INIT.3
+++ b/man3/CIRCLEQ_INIT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CIRCLEQ_INSERT_AFTER.3 b/man3/CIRCLEQ_INSERT_AFTER.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_INSERT_AFTER.3
+++ b/man3/CIRCLEQ_INSERT_AFTER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CIRCLEQ_INSERT_BEFORE.3 b/man3/CIRCLEQ_INSERT_BEFORE.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_INSERT_BEFORE.3
+++ b/man3/CIRCLEQ_INSERT_BEFORE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CIRCLEQ_INSERT_HEAD.3 b/man3/CIRCLEQ_INSERT_HEAD.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_INSERT_HEAD.3
+++ b/man3/CIRCLEQ_INSERT_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CIRCLEQ_INSERT_TAIL.3 b/man3/CIRCLEQ_INSERT_TAIL.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_INSERT_TAIL.3
+++ b/man3/CIRCLEQ_INSERT_TAIL.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CIRCLEQ_REMOVE.3 b/man3/CIRCLEQ_REMOVE.3
index c2956c9fc..ed0fc9a3b 100644
--- a/man3/CIRCLEQ_REMOVE.3
+++ b/man3/CIRCLEQ_REMOVE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/circleq.3
diff --git a/man3/CPU_SET.3 b/man3/CPU_SET.3
index 5bbc830fc..6d7c229f6 100644
--- a/man3/CPU_SET.3
+++ b/man3/CPU_SET.3
@@ -24,7 +24,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH CPU_SET 3 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH CPU_SET 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
CPU_SET, CPU_CLR, CPU_ISSET, CPU_ZERO, CPU_COUNT,
CPU_AND, CPU_OR, CPU_XOR, CPU_EQUAL,
@@ -329,7 +329,7 @@ main(int argc, char *argv[])
{
cpu_set_t *cpusetp;
size_t size;
- int num_cpus, cpu;
+ int num_cpus;
if (argc < 2) {
fprintf(stderr, "Usage: %s <num\-cpus>\en", argv[0]);
@@ -347,7 +347,7 @@ main(int argc, char *argv[])
size = CPU_ALLOC_SIZE(num_cpus);
CPU_ZERO_S(size, cpusetp);
- for (cpu = 0; cpu < num_cpus; cpu += 2)
+ for (int cpu = 0; cpu < num_cpus; cpu += 2)
CPU_SET_S(cpu, size, cpusetp);
printf("CPU_COUNT() of set: %d\en", CPU_COUNT_S(size, cpusetp));
@@ -362,7 +362,7 @@ main(int argc, char *argv[])
.BR pthread_setaffinity_np (3),
.BR cpuset (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/FILE.3 b/man3/FILE.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/FILE.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/INFINITY.3 b/man3/INFINITY.3
index d787c3141..d5b557c27 100644
--- a/man3/INFINITY.3
+++ b/man3/INFINITY.3
@@ -99,7 +99,7 @@ and has a value not less than 199901L.
.BR fpclassify (3),
.BR math_error (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/LIST_EMPTY.3 b/man3/LIST_EMPTY.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_EMPTY.3
+++ b/man3/LIST_EMPTY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_ENTRY.3 b/man3/LIST_ENTRY.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_ENTRY.3
+++ b/man3/LIST_ENTRY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_FIRST.3 b/man3/LIST_FIRST.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_FIRST.3
+++ b/man3/LIST_FIRST.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_FOREACH.3 b/man3/LIST_FOREACH.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_FOREACH.3
+++ b/man3/LIST_FOREACH.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_HEAD.3 b/man3/LIST_HEAD.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_HEAD.3
+++ b/man3/LIST_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_HEAD_INITIALIZER.3 b/man3/LIST_HEAD_INITIALIZER.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_HEAD_INITIALIZER.3
+++ b/man3/LIST_HEAD_INITIALIZER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_INIT.3 b/man3/LIST_INIT.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_INIT.3
+++ b/man3/LIST_INIT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_INSERT_AFTER.3 b/man3/LIST_INSERT_AFTER.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_INSERT_AFTER.3
+++ b/man3/LIST_INSERT_AFTER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_INSERT_BEFORE.3 b/man3/LIST_INSERT_BEFORE.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_INSERT_BEFORE.3
+++ b/man3/LIST_INSERT_BEFORE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_INSERT_HEAD.3 b/man3/LIST_INSERT_HEAD.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_INSERT_HEAD.3
+++ b/man3/LIST_INSERT_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_NEXT.3 b/man3/LIST_NEXT.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_NEXT.3
+++ b/man3/LIST_NEXT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/LIST_REMOVE.3 b/man3/LIST_REMOVE.3
index c2956c9fc..dfafea85d 100644
--- a/man3/LIST_REMOVE.3
+++ b/man3/LIST_REMOVE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/list.3
diff --git a/man3/MB_CUR_MAX.3 b/man3/MB_CUR_MAX.3
index 8d5328fb4..77935667e 100644
--- a/man3/MB_CUR_MAX.3
+++ b/man3/MB_CUR_MAX.3
@@ -42,7 +42,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcstombs (3),
.BR wctomb (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/MB_LEN_MAX.3 b/man3/MB_LEN_MAX.3
index 88ac96ec5..3bdf369b1 100644
--- a/man3/MB_LEN_MAX.3
+++ b/man3/MB_LEN_MAX.3
@@ -50,7 +50,7 @@ is 4.
.SH SEE ALSO
.BR MB_CUR_MAX (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/SLIST_EMPTY.3 b/man3/SLIST_EMPTY.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_EMPTY.3
+++ b/man3/SLIST_EMPTY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_ENTRY.3 b/man3/SLIST_ENTRY.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_ENTRY.3
+++ b/man3/SLIST_ENTRY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_FIRST.3 b/man3/SLIST_FIRST.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_FIRST.3
+++ b/man3/SLIST_FIRST.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_FOREACH.3 b/man3/SLIST_FOREACH.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_FOREACH.3
+++ b/man3/SLIST_FOREACH.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_HEAD.3 b/man3/SLIST_HEAD.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_HEAD.3
+++ b/man3/SLIST_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_HEAD_INITIALIZER.3 b/man3/SLIST_HEAD_INITIALIZER.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_HEAD_INITIALIZER.3
+++ b/man3/SLIST_HEAD_INITIALIZER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_INIT.3 b/man3/SLIST_INIT.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_INIT.3
+++ b/man3/SLIST_INIT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_INSERT_AFTER.3 b/man3/SLIST_INSERT_AFTER.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_INSERT_AFTER.3
+++ b/man3/SLIST_INSERT_AFTER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_INSERT_HEAD.3 b/man3/SLIST_INSERT_HEAD.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_INSERT_HEAD.3
+++ b/man3/SLIST_INSERT_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_NEXT.3 b/man3/SLIST_NEXT.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_NEXT.3
+++ b/man3/SLIST_NEXT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_REMOVE.3 b/man3/SLIST_REMOVE.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_REMOVE.3
+++ b/man3/SLIST_REMOVE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/SLIST_REMOVE_HEAD.3 b/man3/SLIST_REMOVE_HEAD.3
index c2956c9fc..260541bcb 100644
--- a/man3/SLIST_REMOVE_HEAD.3
+++ b/man3/SLIST_REMOVE_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/slist.3
diff --git a/man3/STAILQ_CONCAT.3 b/man3/STAILQ_CONCAT.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_CONCAT.3
+++ b/man3/STAILQ_CONCAT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_EMPTY.3 b/man3/STAILQ_EMPTY.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_EMPTY.3
+++ b/man3/STAILQ_EMPTY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_ENTRY.3 b/man3/STAILQ_ENTRY.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_ENTRY.3
+++ b/man3/STAILQ_ENTRY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_FIRST.3 b/man3/STAILQ_FIRST.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_FIRST.3
+++ b/man3/STAILQ_FIRST.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_FOREACH.3 b/man3/STAILQ_FOREACH.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_FOREACH.3
+++ b/man3/STAILQ_FOREACH.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_HEAD.3 b/man3/STAILQ_HEAD.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_HEAD.3
+++ b/man3/STAILQ_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_HEAD_INITIALIZER.3 b/man3/STAILQ_HEAD_INITIALIZER.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_HEAD_INITIALIZER.3
+++ b/man3/STAILQ_HEAD_INITIALIZER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_INIT.3 b/man3/STAILQ_INIT.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_INIT.3
+++ b/man3/STAILQ_INIT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_INSERT_AFTER.3 b/man3/STAILQ_INSERT_AFTER.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_INSERT_AFTER.3
+++ b/man3/STAILQ_INSERT_AFTER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_INSERT_HEAD.3 b/man3/STAILQ_INSERT_HEAD.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_INSERT_HEAD.3
+++ b/man3/STAILQ_INSERT_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_INSERT_TAIL.3 b/man3/STAILQ_INSERT_TAIL.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_INSERT_TAIL.3
+++ b/man3/STAILQ_INSERT_TAIL.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_NEXT.3 b/man3/STAILQ_NEXT.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_NEXT.3
+++ b/man3/STAILQ_NEXT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_REMOVE.3 b/man3/STAILQ_REMOVE.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_REMOVE.3
+++ b/man3/STAILQ_REMOVE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/STAILQ_REMOVE_HEAD.3 b/man3/STAILQ_REMOVE_HEAD.3
index c2956c9fc..fbb71f02c 100644
--- a/man3/STAILQ_REMOVE_HEAD.3
+++ b/man3/STAILQ_REMOVE_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/stailq.3
diff --git a/man3/TAILQ_CONCAT.3 b/man3/TAILQ_CONCAT.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_CONCAT.3
+++ b/man3/TAILQ_CONCAT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_EMPTY.3 b/man3/TAILQ_EMPTY.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_EMPTY.3
+++ b/man3/TAILQ_EMPTY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_ENTRY.3 b/man3/TAILQ_ENTRY.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_ENTRY.3
+++ b/man3/TAILQ_ENTRY.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_FIRST.3 b/man3/TAILQ_FIRST.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_FIRST.3
+++ b/man3/TAILQ_FIRST.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_FOREACH.3 b/man3/TAILQ_FOREACH.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_FOREACH.3
+++ b/man3/TAILQ_FOREACH.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_FOREACH_REVERSE.3 b/man3/TAILQ_FOREACH_REVERSE.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_FOREACH_REVERSE.3
+++ b/man3/TAILQ_FOREACH_REVERSE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_HEAD.3 b/man3/TAILQ_HEAD.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_HEAD.3
+++ b/man3/TAILQ_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_HEAD_INITIALIZER.3 b/man3/TAILQ_HEAD_INITIALIZER.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_HEAD_INITIALIZER.3
+++ b/man3/TAILQ_HEAD_INITIALIZER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_INIT.3 b/man3/TAILQ_INIT.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_INIT.3
+++ b/man3/TAILQ_INIT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_INSERT_AFTER.3 b/man3/TAILQ_INSERT_AFTER.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_INSERT_AFTER.3
+++ b/man3/TAILQ_INSERT_AFTER.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_INSERT_BEFORE.3 b/man3/TAILQ_INSERT_BEFORE.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_INSERT_BEFORE.3
+++ b/man3/TAILQ_INSERT_BEFORE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_INSERT_HEAD.3 b/man3/TAILQ_INSERT_HEAD.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_INSERT_HEAD.3
+++ b/man3/TAILQ_INSERT_HEAD.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_INSERT_TAIL.3 b/man3/TAILQ_INSERT_TAIL.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_INSERT_TAIL.3
+++ b/man3/TAILQ_INSERT_TAIL.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_LAST.3 b/man3/TAILQ_LAST.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_LAST.3
+++ b/man3/TAILQ_LAST.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_NEXT.3 b/man3/TAILQ_NEXT.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_NEXT.3
+++ b/man3/TAILQ_NEXT.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_PREV.3 b/man3/TAILQ_PREV.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_PREV.3
+++ b/man3/TAILQ_PREV.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_REMOVE.3 b/man3/TAILQ_REMOVE.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_REMOVE.3
+++ b/man3/TAILQ_REMOVE.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/TAILQ_SWAP.3 b/man3/TAILQ_SWAP.3
index c2956c9fc..c766ff4e7 100644
--- a/man3/TAILQ_SWAP.3
+++ b/man3/TAILQ_SWAP.3
@@ -1 +1 @@
-.so man3/queue.3
+.so man3/tailq.3
diff --git a/man3/__ppc_get_timebase.3 b/man3/__ppc_get_timebase.3
index 62977705f..d72861d3b 100644
--- a/man3/__ppc_get_timebase.3
+++ b/man3/__ppc_get_timebase.3
@@ -111,7 +111,7 @@ main(void)
.BR time (2),
.BR usleep (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/__ppc_set_ppr_med.3 b/man3/__ppc_set_ppr_med.3
index 25a2a81fa..d35dc11bc 100644
--- a/man3/__ppc_set_ppr_med.3
+++ b/man3/__ppc_set_ppr_med.3
@@ -132,7 +132,7 @@ Availability of these functions can be tested using
.PP
.IR "Power ISA, Book\ II - Section\ 3.1 (Program Priority Registers)"
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/__ppc_yield.3 b/man3/__ppc_yield.3
index 74996ecc0..16df16c4a 100644
--- a/man3/__ppc_yield.3
+++ b/man3/__ppc_yield.3
@@ -83,7 +83,7 @@ These functions are nonstandard GNU extensions.
.PP
.IR "Power ISA, Book\ II - Section\ 3.2 (""or"" architecture)"
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/__setfpucw.3 b/man3/__setfpucw.3
index 8e8ca532a..df2486f8c 100644
--- a/man3/__setfpucw.3
+++ b/man3/__setfpucw.3
@@ -60,7 +60,7 @@ Set FPU control word on the i386 architecture to
.PP
.I <fpu_control.h>
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/a64l.3 b/man3/a64l.3
index 5cd919971..3d9d9cff8 100644
--- a/man3/a64l.3
+++ b/man3/a64l.3
@@ -17,10 +17,10 @@ a64l, l64a \- convert between long and base-64
.PP
.BI "char *l64a(long " value );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR a64l (),
.BR l64a ():
@@ -104,7 +104,7 @@ This is not the encoding used by
.\" .BR itoa (3),
.BR strtoul (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/abort.3 b/man3/abort.3
index 5ff86fd38..ba019fdce 100644
--- a/man3/abort.3
+++ b/man3/abort.3
@@ -104,7 +104,7 @@ POSIX.1 permits either possible behavior, saying that
.BR longjmp (3),
.BR raise (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/abs.3 b/man3/abs.3
index 3a2d61245..9d3d3c1d9 100644
--- a/man3/abs.3
+++ b/man3/abs.3
@@ -31,7 +31,7 @@
.\" Modified Sat Jul 24 21:45:37 1993, Rik Faith (faith@cs.unc.edu)
.\" Modified Sat Dec 16 15:02:59 2000, Joseph S. Myers
.\"
-.TH ABS 3 2016-03-15 "GNU" "Linux Programmer's Manual"
+.TH ABS 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
abs, labs, llabs, imaxabs \- compute the absolute value of an integer
.SH SYNOPSIS
@@ -39,18 +39,18 @@ abs, labs, llabs, imaxabs \- compute the absolute value of an integer
.B #include <stdlib.h>
.PP
.BI "int abs(int " j );
-.BI "long int labs(long int " j );
-.BI "long long int llabs(long long int " j );
+.BI "long labs(long " j );
+.BI "long long llabs(long long " j );
.B #include <inttypes.h>
.PP
.BI "intmax_t imaxabs(intmax_t " j );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR llabs ():
@@ -139,7 +139,7 @@ as built-in functions.
.BR floor (3),
.BR rint (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/acos.3 b/man3/acos.3
index e30723b8d..5277bc40d 100644
--- a/man3/acos.3
+++ b/man3/acos.3
@@ -46,10 +46,10 @@ acos, acosf, acosl \- arc cosine function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR acosf (),
@@ -136,7 +136,7 @@ SVr4, 4.3BSD, C89.
.BR sin (3),
.BR tan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/acosh.3 b/man3/acosh.3
index e771cccc1..183479736 100644
--- a/man3/acosh.3
+++ b/man3/acosh.3
@@ -46,10 +46,10 @@ acosh, acoshf, acoshl \- inverse hyperbolic cosine function
.fi
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR acosh ():
@@ -139,7 +139,7 @@ SVr4, 4.3BSD.
.BR sinh (3),
.BR tanh (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/addseverity.3 b/man3/addseverity.3
index 91bac5a24..aa160211d 100644
--- a/man3/addseverity.3
+++ b/man3/addseverity.3
@@ -17,10 +17,10 @@ addseverity \- introduce new severity classes
.BI "int addseverity(int " severity ", const char *" s );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR addseverity ():
Since glibc 2.19:
@@ -85,7 +85,7 @@ New severity classes can also be added by setting the environment variable
.SH SEE ALSO
.BR fmtmsg (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/adjtime.3 b/man3/adjtime.3
index 04b47bd3a..2e7200b97 100644
--- a/man3/adjtime.3
+++ b/man3/adjtime.3
@@ -32,10 +32,10 @@ adjtime \- correct the time to synchronize the system clock
.BI "int adjtime(const struct timeval *" delta ", struct timeval *" olddelta );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR adjtime ():
Since glibc 2.19:
@@ -161,7 +161,7 @@ Linux kernel 2.6.26 or later.
.BR gettimeofday (2),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_cancel.3 b/man3/aio_cancel.3
index 86ced4cb0..821697a02 100644
--- a/man3/aio_cancel.3
+++ b/man3/aio_cancel.3
@@ -138,7 +138,7 @@ See
.BR lio_listio (3),
.BR aio (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_error.3 b/man3/aio_error.3
index 77f2aefd2..b4e5de318 100644
--- a/man3/aio_error.3
+++ b/man3/aio_error.3
@@ -106,7 +106,7 @@ See
.BR lio_listio (3),
.BR aio (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_fsync.3 b/man3/aio_fsync.3
index 85f81e9be..b780e2e34 100644
--- a/man3/aio_fsync.3
+++ b/man3/aio_fsync.3
@@ -125,7 +125,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR aio (7),
.BR sigevent (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_init.3 b/man3/aio_init.3
index 52bb08e7a..22012dfc6 100644
--- a/man3/aio_init.3
+++ b/man3/aio_init.3
@@ -98,7 +98,7 @@ This function is a GNU extension.
.SH SEE ALSO
.BR aio (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_read.3 b/man3/aio_read.3
index 6ce37a5e2..0d4eb186b 100644
--- a/man3/aio_read.3
+++ b/man3/aio_read.3
@@ -168,7 +168,7 @@ See
.BR lio_listio (3),
.BR aio (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_return.3 b/man3/aio_return.3
index 50cbc0e59..1f6f8b695 100644
--- a/man3/aio_return.3
+++ b/man3/aio_return.3
@@ -102,7 +102,7 @@ See
.BR lio_listio (3),
.BR aio (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
index e71dfbc41..7830c0f32 100644
--- a/man3/aio_suspend.3
+++ b/man3/aio_suspend.3
@@ -154,7 +154,7 @@ in violation of the requirements of POSIX.1.
.BR aio (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aio_write.3 b/man3/aio_write.3
index 3f890eba8..7867f2133 100644
--- a/man3/aio_write.3
+++ b/man3/aio_write.3
@@ -170,7 +170,7 @@ structure produce undefined results.
.BR lio_listio (3),
.BR aio (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/aiocb.3 b/man3/aiocb.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/aiocb.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/alloca.3 b/man3/alloca.3
index 84493ae4d..9caf25cf1 100644
--- a/man3/alloca.3
+++ b/man3/alloca.3
@@ -176,7 +176,7 @@ function arguments.
.BR longjmp (3),
.BR malloc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/argz_add.3 b/man3/argz_add.3
index c952353ee..d186cc000 100644
--- a/man3/argz_add.3
+++ b/man3/argz_add.3
@@ -7,7 +7,7 @@
.\" based on the description in glibc source and infopages
.\"
.\" Corrections and additions, aeb
-.TH ARGZ_ADD 3 2019-03-06 "" "Linux Programmer's Manual"
+.TH ARGZ_ADD 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
argz_add, argz_add_sep, argz_append, argz_count, argz_create,
argz_create_sep, argz_delete, argz_extract, argz_insert,
@@ -35,7 +35,7 @@ argz_next, argz_replace, argz_stringify \- functions to handle an argz list
.PP
.BI "void argz_delete(char **" argz ", size_t *" argz_len ", char *" entry );
.PP
-.BI "void argz_extract(const char *" argz ", size_t " argz_len ", char **" argv );
+.BI "void argz_extract(const char *" argz ", size_t " argz_len ", char **" argv );
.PP
.BI "error_t argz_insert(char **" argz ", size_t *" argz_len ", char *" before ,
.BI " const char *" entry );
@@ -163,7 +163,7 @@ is NULL, then
will inserted at the end.
.PP
.BR argz_next ()
-is a function to step trough the argz vector.
+is a function to step through the argz vector.
If
.I entry
is NULL, the first entry is returned.
@@ -191,7 +191,8 @@ all null bytes (\(aq\e0\(aq) except the last by
.IR sep .
.SH RETURN VALUE
All argz functions that do memory allocation have a return type of
-.IR error_t ,
+.IR error_t
+(an integer type),
and return 0 for success, and
.B ENOMEM
if an allocation error occurs.
@@ -226,14 +227,13 @@ T} Thread safety MT-Safe
.sp 1
.SH CONFORMING TO
These functions are a GNU extension.
-Handle with care.
.SH BUGS
Argz vectors without a terminating null byte may lead to
Segmentation Faults.
.SH SEE ALSO
.BR envz_add (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/asin.3 b/man3/asin.3
index 7dc4b76d4..94dbf8865 100644
--- a/man3/asin.3
+++ b/man3/asin.3
@@ -46,10 +46,10 @@ asin, asinf, asinl \- arc sine function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR asinf (),
@@ -132,7 +132,7 @@ SVr4, 4.3BSD, C89.
.BR sin (3),
.BR tan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/asinh.3 b/man3/asinh.3
index ce1f3ebdd..fca8ad1df 100644
--- a/man3/asinh.3
+++ b/man3/asinh.3
@@ -46,10 +46,10 @@ asinh, asinhf, asinhl \- inverse hyperbolic sine function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR asinh ():
@@ -124,7 +124,7 @@ SVr4, 4.3BSD.
.BR sinh (3),
.BR tanh (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/asprintf.3 b/man3/asprintf.3
index cfb0131e4..097f7d86c 100644
--- a/man3/asprintf.3
+++ b/man3/asprintf.3
@@ -83,7 +83,7 @@ to NULL on error.
.BR malloc (3),
.BR printf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/assert.3 b/man3/assert.3
index b7c7c6e09..654e98aa8 100644
--- a/man3/assert.3
+++ b/man3/assert.3
@@ -107,7 +107,7 @@ is turned on.
.BR assert_perror (3),
.BR exit (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/assert_perror.3 b/man3/assert_perror.3
index f01a82448..d54f9b260 100644
--- a/man3/assert_perror.3
+++ b/man3/assert_perror.3
@@ -87,7 +87,7 @@ Never use this macro.
.BR exit (3),
.BR strerror (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/atan.3 b/man3/atan.3
index 51f204fed..9685f10c2 100644
--- a/man3/atan.3
+++ b/man3/atan.3
@@ -46,10 +46,10 @@ atan, atanf, atanl \- arc tangent function
.fi
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR atanf (),
@@ -118,7 +118,7 @@ SVr4, 4.3BSD, C89.
.BR sin (3),
.BR tan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/atan2.3 b/man3/atan2.3
index aad7c9808..493b7bb47 100644
--- a/man3/atan2.3
+++ b/man3/atan2.3
@@ -46,10 +46,10 @@ atan2, atan2f, atan2l \- arc tangent function of two variables
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR atan2f (),
@@ -189,7 +189,7 @@ SVr4, 4.3BSD, C89.
.BR sin (3),
.BR tan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/atanh.3 b/man3/atanh.3
index 68d96f334..7a15a3fda 100644
--- a/man3/atanh.3
+++ b/man3/atanh.3
@@ -46,10 +46,10 @@ atanh, atanhf, atanhl \- inverse hyperbolic tangent function
.fi
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR atanh ():
@@ -169,7 +169,7 @@ Since version 2.10, glibc does the right thing.
.BR sinh (3),
.BR tanh (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/atexit.3 b/man3/atexit.3
index e297d6427..3081e97eb 100644
--- a/man3/atexit.3
+++ b/man3/atexit.3
@@ -179,7 +179,7 @@ main(void)
.BR exit (3),
.BR on_exit (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/atof.3 b/man3/atof.3
index 92aeded47..9d96ddbf2 100644
--- a/man3/atof.3
+++ b/man3/atof.3
@@ -78,7 +78,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
.BR strtol (3),
.BR strtoul (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/atoi.3 b/man3/atoi.3
index 46c158608..0fb111b13 100644
--- a/man3/atoi.3
+++ b/man3/atoi.3
@@ -42,10 +42,10 @@ atoi, atol, atoll \- convert a string to an integer
.BI "long long atoll(const char *" nptr );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR atoll ():
@@ -137,7 +137,7 @@ family of functions in new programs.
.BR strtol (3),
.BR strtoul (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/backtrace.3 b/man3/backtrace.3
index f40a99758..957fc9f00 100644
--- a/man3/backtrace.3
+++ b/man3/backtrace.3
@@ -24,7 +24,7 @@
.\"
.\" References:
.\" glibc manual and source
-.TH BACKTRACE 3 2020-06-09 GNU "Linux Programmer's Manual"
+.TH BACKTRACE 3 2020-11-01 GNU "Linux Programmer's Manual"
.SH NAME
backtrace, backtrace_symbols, backtrace_symbols_fd \- support
for application self-debugging
@@ -232,7 +232,7 @@ backtrace() returned 8 addresses
void
myfunc3(void)
{
- int j, nptrs;
+ int nptrs;
void *buffer[BT_BUF_SIZE];
char **strings;
@@ -248,7 +248,7 @@ myfunc3(void)
exit(EXIT_FAILURE);
}
- for (j = 0; j < nptrs; j++)
+ for (int j = 0; j < nptrs; j++)
printf("%s\en", strings[j]);
free(strings);
@@ -289,7 +289,7 @@ main(int argc, char *argv[])
.BR dlopen (3),
.BR malloc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/basename.3 b/man3/basename.3
index 977c20bd2..849b7c101 100644
--- a/man3/basename.3
+++ b/man3/basename.3
@@ -199,7 +199,7 @@ printf("dirname=%s, basename=%s\en", dname, bname);
.BR basename (1),
.BR dirname (1)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bcmp.3 b/man3/bcmp.3
index 4683e74e4..3bb1e3957 100644
--- a/man3/bcmp.3
+++ b/man3/bcmp.3
@@ -86,7 +86,7 @@ POSIX.1-2008 removes the specification of
.BR strncasecmp (3),
.BR strncmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bcopy.3 b/man3/bcopy.3
index 2a1391b91..7d9addaea 100644
--- a/man3/bcopy.3
+++ b/man3/bcopy.3
@@ -85,7 +85,7 @@ POSIX.1-2008 removes the specification of
.BR strcpy (3),
.BR strncpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bindresvport.3 b/man3/bindresvport.3
index 6999b0c72..2f7e72a2d 100644
--- a/man3/bindresvport.3
+++ b/man3/bindresvport.3
@@ -127,7 +127,7 @@ the glibc implementation ignores any value that the caller supplies in
.BR bind (2),
.BR getsockname (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bsd_signal.3 b/man3/bsd_signal.3
index de92f5f62..eb41e26e8 100644
--- a/man3/bsd_signal.3
+++ b/man3/bsd_signal.3
@@ -32,10 +32,10 @@ bsd_signal \- signal handling with BSD semantics
.PP
.BI "sighandler_t bsd_signal(int " signum ", sighandler_t " handler );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR bsd_signal ():
@@ -125,7 +125,7 @@ feature test macro is defined.
.BR sysv_signal (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bsearch.3 b/man3/bsearch.3
index d8e29900d..925391ce6 100644
--- a/man3/bsearch.3
+++ b/man3/bsearch.3
@@ -28,7 +28,7 @@
.\" 386BSD man pages
.\" Modified Mon Mar 29 22:41:16 1993, David Metcalfe
.\" Modified Sat Jul 24 21:35:16 1993, Rik Faith (faith@cs.unc.edu)
-.TH BSEARCH 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH BSEARCH 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
bsearch \- binary search of a sorted array
.SH SYNOPSIS
@@ -114,22 +114,22 @@ struct mi {
static int
compmi(const void *m1, const void *m2)
{
- struct mi *mi1 = (struct mi *) m1;
- struct mi *mi2 = (struct mi *) m2;
+ const struct mi *mi1 = m1;
+ const struct mi *mi2 = m2;
return strcmp(mi1\->name, mi2\->name);
}
int
main(int argc, char **argv)
{
- int i;
+ qsort(months, nr_of_months, sizeof(months[0]), compmi);
+ for (int i = 1; i < argc; i++) {
+ struct mi key;
+ struct mi *res;
- qsort(months, nr_of_months, sizeof(struct mi), compmi);
- for (i = 1; i < argc; i++) {
- struct mi key, *res;
key.name = argv[i];
res = bsearch(&key, months, nr_of_months,
- sizeof(struct mi), compmi);
+ sizeof(months[0]), compmi);
if (res == NULL)
printf("\(aq%s\(aq: unknown month\en", argv[i]);
else
@@ -145,7 +145,7 @@ main(int argc, char **argv)
.BR qsort (3),
.BR tsearch (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bstring.3 b/man3/bstring.3
index 6e54a1426..dedce33ff 100644
--- a/man3/bstring.3
+++ b/man3/bstring.3
@@ -92,7 +92,7 @@ instead.
.BR memmove (3),
.BR memset (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bswap.3 b/man3/bswap.3
index f5c9b4217..ea5e029ea 100644
--- a/man3/bswap.3
+++ b/man3/bswap.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH BSWAP 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH BSWAP 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
bswap_16, bswap_32, bswap_64 \- reverse order of bytes
.SH SYNOPSIS
@@ -72,8 +72,8 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- x = strtoul(argv[1], NULL, 0);
- printf("0x%" PRIx64 " ==> 0x%" PRIx64 "\en", x, bswap_64(x));
+ x = strtoull(argv[1], NULL, 0);
+ printf("%#" PRIx64 " ==> %#" PRIx64 "\en", x, bswap_64(x));
exit(EXIT_SUCCESS);
}
@@ -82,7 +82,7 @@ main(int argc, char *argv[])
.BR byteorder (3),
.BR endian (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/btowc.3 b/man3/btowc.3
index 735e123e8..e20b65832 100644
--- a/man3/btowc.3
+++ b/man3/btowc.3
@@ -82,7 +82,7 @@ instead.
.BR mbtowc (3),
.BR wctob (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/btree.3 b/man3/btree.3
index 2a4637fb8..c6e88f855 100644
--- a/man3/btree.3
+++ b/man3/btree.3
@@ -253,7 +253,7 @@ Bayer and Unterauer, ACM Transactions on Database Systems, Vol. 2, 1
.IR "The Art of Computer Programming Vol. 3: Sorting and Searching" ,
D.E. Knuth, 1968, pp 471-480.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/byteorder.3 b/man3/byteorder.3
index e7a40d010..5cd08e2ad 100644
--- a/man3/byteorder.3
+++ b/man3/byteorder.3
@@ -101,7 +101,7 @@ instead of
.BR gethostbyname (3),
.BR getservent (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/bzero.3 b/man3/bzero.3
index 7b587f779..fcfea078e 100644
--- a/man3/bzero.3
+++ b/man3/bzero.3
@@ -174,7 +174,7 @@ including copies in registers or in "scratch" stack areas.
.BR memset (3),
.BR swab (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cabs.3 b/man3/cabs.3
index 499b1f28f..38e13e21d 100644
--- a/man3/cabs.3
+++ b/man3/cabs.3
@@ -50,7 +50,7 @@ The function is actually an alias for
.BR hypot (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cacos.3 b/man3/cacos.3
index 7de572ef6..dd85f440f 100644
--- a/man3/cacos.3
+++ b/man3/cacos.3
@@ -87,7 +87,7 @@ main(int argc, char *argv[])
.BR clog (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cacosh.3 b/man3/cacosh.3
index 1f3832cc7..7d80f6729 100644
--- a/man3/cacosh.3
+++ b/man3/cacosh.3
@@ -89,7 +89,7 @@ main(int argc, char *argv[])
.BR cimag (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/canonicalize_file_name.3 b/man3/canonicalize_file_name.3
index c870bcbb4..106b500af 100644
--- a/man3/canonicalize_file_name.3
+++ b/man3/canonicalize_file_name.3
@@ -88,7 +88,7 @@ This function is a GNU extension.
.BR readlink (2),
.BR realpath (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/carg.3 b/man3/carg.3
index 9088a807f..8dcb39d43 100644
--- a/man3/carg.3
+++ b/man3/carg.3
@@ -78,7 +78,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR cabs (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/casin.3 b/man3/casin.3
index 04017ea4a..d157d155b 100644
--- a/man3/casin.3
+++ b/man3/casin.3
@@ -53,7 +53,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR csin (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/casinh.3 b/man3/casinh.3
index d94660059..fcb18d5a7 100644
--- a/man3/casinh.3
+++ b/man3/casinh.3
@@ -55,7 +55,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR csinh (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/catan.3 b/man3/catan.3
index 18eed23b1..68dc90dd6 100644
--- a/man3/catan.3
+++ b/man3/catan.3
@@ -84,7 +84,7 @@ main(int argc, char *argv[])
.BR ctan (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/catanh.3 b/man3/catanh.3
index da2a3ffea..cb5467edd 100644
--- a/man3/catanh.3
+++ b/man3/catanh.3
@@ -86,7 +86,7 @@ main(int argc, char *argv[])
.BR ctanh (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/catgets.3 b/man3/catgets.3
index 3aed5f0ff..c9a4b138d 100644
--- a/man3/catgets.3
+++ b/man3/catgets.3
@@ -98,7 +98,7 @@ in favor of always returning
.BR catopen (3),
.BR setlocale (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/catopen.3 b/man3/catopen.3
index 1684b225e..96cc7ab41 100644
--- a/man3/catopen.3
+++ b/man3/catopen.3
@@ -207,7 +207,7 @@ The default path varies, but usually looks at a number of places below
.BR catgets (3),
.BR setlocale (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cbrt.3 b/man3/cbrt.3
index 12c2d8a39..46719158f 100644
--- a/man3/cbrt.3
+++ b/man3/cbrt.3
@@ -41,10 +41,10 @@ cbrt, cbrtf, cbrtl \- cube root function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR cbrt ():
@@ -102,7 +102,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR pow (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ccos.3 b/man3/ccos.3
index e585aae3a..a6c078fa9 100644
--- a/man3/ccos.3
+++ b/man3/ccos.3
@@ -52,7 +52,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR ctan (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ccosh.3 b/man3/ccosh.3
index 9c691ad99..55df65290 100644
--- a/man3/ccosh.3
+++ b/man3/ccosh.3
@@ -37,7 +37,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR ctanh (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ceil.3 b/man3/ceil.3
index 4dff3cd2a..252bf2e3c 100644
--- a/man3/ceil.3
+++ b/man3/ceil.3
@@ -39,10 +39,10 @@ less than argument
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR ceilf (),
@@ -128,7 +128,7 @@ before assigning it to an integer type.
.BR round (3),
.BR trunc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cexp.3 b/man3/cexp.3
index c71c69775..2c017dada 100644
--- a/man3/cexp.3
+++ b/man3/cexp.3
@@ -53,7 +53,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR cpow (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cexp2.3 b/man3/cexp2.3
index 53db0d4ef..93e3ea671 100644
--- a/man3/cexp2.3
+++ b/man3/cexp2.3
@@ -31,7 +31,7 @@ As at version 2.31, these functions are not provided in glibc.
.BR clog10 (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cfree.3 b/man3/cfree.3
index 82d0d865d..42773c3c0 100644
--- a/man3/cfree.3
+++ b/man3/cfree.3
@@ -42,10 +42,10 @@ cfree \- free allocated memory
.BI "void cfree(void *" ptr ", size_t " nelem ", size_t " elsize );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR cfree ():
Since glibc 2.19:
@@ -141,7 +141,7 @@ Intel386 Binary Compatibility Specification, Edition 2.
.SH SEE ALSO
.BR malloc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cimag.3 b/man3/cimag.3
index 2d973e17b..b90298136 100644
--- a/man3/cimag.3
+++ b/man3/cimag.3
@@ -52,7 +52,7 @@ That is a GNU extension.
.BR creal (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/circleq.3 b/man3/circleq.3
new file mode 100644
index 000000000..626809c23
--- /dev/null
+++ b/man3/circleq.3
@@ -0,0 +1,366 @@
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\" and Copyright (c) 2020 by Alejandro Colomar <colomar.6.4.3@gmail.com>
+.\"
+.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
+.\" Redistribution and use in source and binary forms, 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.
+.\" %%%LICENSE_END
+.\"
+.\"
+.TH CIRCLEQ 3 2020-10-21 "GNU" "Linux Programmer's Manual"
+.SH NAME
+CIRCLEQ_EMPTY,
+CIRCLEQ_ENTRY,
+CIRCLEQ_FIRST,
+CIRCLEQ_FOREACH,
+CIRCLEQ_FOREACH_REVERSE,
+CIRCLEQ_HEAD,
+CIRCLEQ_HEAD_INITIALIZER,
+CIRCLEQ_INIT,
+CIRCLEQ_INSERT_AFTER,
+CIRCLEQ_INSERT_BEFORE,
+CIRCLEQ_INSERT_HEAD,
+CIRCLEQ_INSERT_TAIL,
+CIRCLEQ_LAST,
+CIRCLEQ_LOOP_NEXT,
+CIRCLEQ_LOOP_PREV,
+CIRCLEQ_NEXT,
+CIRCLEQ_PREV,
+CIRCLEQ_REMOVE
+\- implementation of a doubly linked circular queue
+.SH SYNOPSIS
+.nf
+.B #include <sys/queue.h>
+.PP
+.BI "int CIRCLEQ_EMPTY(CIRCLEQ_HEAD *" head ");"
+.PP
+.B CIRCLEQ_ENTRY(TYPE);
+.PP
+.BI "struct TYPE *CIRCLEQ_FIRST(CIRCLEQ_HEAD *" head ");"
+.PP
+.BI "CIRCLEQ_FOREACH(struct TYPE *" var ", CIRCLEQ_HEAD *" head ,
+.BI " CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "CIRCLEQ_FOREACH_REVERSE(struct TYPE *" var ", CIRCLEQ_HEAD *" head ","
+.BI " CIRCLEQ_ENTRY " NAME ");"
+.PP
+.B CIRCLEQ_HEAD(HEADNAME, TYPE);
+.PP
+.BI "CIRCLEQ_HEAD CIRCLEQ_HEAD_INITIALIZER(CIRCLEQ_HEAD " head ");"
+.PP
+.BI "void CIRCLEQ_INIT(CIRCLEQ_HEAD *" head ");"
+.PP
+.BI "void CIRCLEQ_INSERT_AFTER(CIRCLEQ_HEAD *" head ", struct TYPE *" listelm ,
+.BI " struct TYPE *" elm ", CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "void CIRCLEQ_INSERT_BEFORE(CIRCLEQ_HEAD *" head ", struct TYPE *" listelm ,
+.BI " struct TYPE *" elm ", CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "void CIRCLEQ_INSERT_HEAD(CIRCLEQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "void CIRCLEQ_INSERT_TAIL(CIRCLEQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *CIRCLEQ_LAST(CIRCLEQ_HEAD *" head ");"
+.PP
+.BI "void CIRCLEQ_LOOP_NEXT(CIRCLEQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "void CIRCLEQ_LOOP_PREV(CIRCLEQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *CIRCLEQ_NEXT(struct TYPE *" elm ", CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *CIRCLEQ_PREV(struct TYPE *" elm ", CIRCLEQ_ENTRY " NAME ");"
+.PP
+.BI "void CIRCLEQ_REMOVE(CIRCLEQ_HEAD *" head ", struct TYPE *" elm ,
+.BI " CIRCLEQ_ENTRY " NAME ");"
+.fi
+.SH DESCRIPTION
+These macros define and operate on doubly linked circular queues.
+.PP
+In the macro definitions,
+.I TYPE
+is the name of a user-defined structure,
+that must contain a field of type
+.IR CIRCLEQ_ENTRY ,
+named
+.IR NAME .
+The argument
+.I HEADNAME
+is the name of a user-defined structure that must be declared
+using the macro
+.BR CIRCLEQ_HEAD ().
+.PP
+A circular queue is headed by a structure defined by the
+.BR CIRCLEQ_HEAD ()
+macro.
+This structure contains a pair of pointers,
+one to the first element in the circular queue and the other to
+the last element in the circular queue.
+The elements are doubly linked so that an arbitrary element can be
+removed without traversing the circular queue.
+New elements can be added to the circular queue after an existing element,
+before an existing element, at the head of the circular queue,
+or at the end of the circular queue.
+A
+.I CIRCLEQ_HEAD
+structure is declared as follows:
+.PP
+.in +4
+.EX
+CIRCLEQ_HEAD(HEADNAME, TYPE) head;
+.EE
+.in
+.PP
+where
+.I struct HEADNAME
+is the structure to be defined, and
+.I struct TYPE
+is the type of the elements to be linked into the circular queue.
+A pointer to the head of the circular queue can later be declared as:
+.PP
+.in +4
+.EX
+struct HEADNAME *headp;
+.EE
+.in
+.PP
+(The names
+.I head
+and
+.I headp
+are user selectable.)
+.PP
+The macro
+.BR CIRCLEQ_HEAD_INITIALIZER ()
+evaluates to an initializer for the circular queue
+.IR head .
+.PP
+The macro
+.BR CIRCLEQ_EMPTY ()
+evaluates to true if there are no items on the circular queue.
+.PP
+The macro
+.BR CIRCLEQ_ENTRY ()
+declares a structure that connects the elements in
+the circular queue.
+.PP
+The macro
+.BR CIRCLEQ_FIRST ()
+returns the first item on the circular queue.
+.PP
+The macro
+.BR CIRCLEQ_FOREACH ()
+traverses the circular queue referenced by
+.I head
+in the forward direction, assigning each element in turn to
+.IR var .
+.I var
+is set to
+.I &head
+if the loop completes normally, or if there were no elements.
+.PP
+The macro
+.BR CIRCLEQ_FOREACH_REVERSE ()
+traverses the circular queue referenced by
+.I head
+in the reverse direction, assigning each element in turn to
+.IR var .
+.PP
+The macro
+.BR CIRCLEQ_INIT ()
+initializes the circular queue referenced by
+.IR head .
+.PP
+The macro
+.BR CIRCLEQ_INSERT_HEAD ()
+inserts the new element
+.I elm
+at the head of the circular queue.
+.PP
+The macro
+.BR CIRCLEQ_INSERT_TAIL ()
+inserts the new element
+.I elm
+at the end of the circular queue.
+.PP
+The macro
+.BR CIRCLEQ_INSERT_AFTER ()
+inserts the new element
+.I elm
+after the element
+.IR listelm .
+.PP
+The macro
+.BR CIRCLEQ_INSERT_BEFORE ()
+inserts the new element
+.I elm
+before the element
+.IR listelm .
+.PP
+The macro
+.BR CIRCLEQ_LAST ()
+returns the last item on the circular queue.
+.PP
+The macro
+.BR CIRCLEQ_NEXT ()
+returns the next item on the circular queue, or
+.I &head
+if this item is the last one.
+.PP
+The macro
+.BR CIRCLEQ_PREV ()
+returns the previous item on the circular queue, or
+.I &head
+if this item is the first one.
+.PP
+The macro
+.BR CIRCLEQ_LOOP_NEXT ()
+returns the next item on the circular queue.
+If
+.I elm
+is the last element on the circular queue, the first element is returned.
+.PP
+The macro
+.BR CIRCLEQ_LOOP_PREV ()
+returns the previous item on the circular queue.
+If
+.I elm
+is the first element on the circular queue, the last element is returned.
+.PP
+The macro
+.BR CIRCLEQ_REMOVE ()
+removes the element
+.I elm
+from the circular queue.
+.SH RETURN VALUE
+.BR CIRCLEQ_EMPTY ()
+returns nonzero if the queue is empty,
+and zero if the queue contains at least one entry.
+.PP
+.BR CIRCLEQ_FIRST (),
+.BR CIRCLEQ_LAST (),
+.BR CIRCLEQ_NEXT (),
+and
+.BR CIRCLEQ_PREV ()
+return a pointer to the first, last, next or previous
+.I TYPE
+structure, respectively.
+.PP
+.BR CIRCLEQ_HEAD_INITIALIZER ()
+returns an initializer that can be assigned to the queue
+.IR head .
+.SH CONFORMING TO
+Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008.
+Present on the BSDs
+(CIRCLEQ macros first appeared in 4.4BSD).
+.SH BUGS
+The macros
+.BR CIRCLEQ_FOREACH ()
+and
+.BR CIRCLEQ_FOREACH_REVERSE ()
+don't allow
+.I var
+to be removed or freed within the loop,
+as it would interfere with the traversal.
+The macros
+.BR CIRCLEQ_FOREACH_SAFE ()
+and
+.BR CIRCLEQ_FOREACH_REVERSE_SAFE (),
+which are present on the BSDs but are not present in glibc,
+fix this limitation by allowing
+.I var
+to safely be removed from the list and freed from within the loop
+without interfering with the traversal.
+.SH EXAMPLES
+.EX
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/queue.h>
+
+struct entry {
+ int data;
+ CIRCLEQ_ENTRY(entry) entries; /* Queue. */
+};
+
+CIRCLEQ_HEAD(circlehead, entry);
+
+int
+main(void)
+{
+ struct entry *n1, *n2, *n3, *np;
+ struct circlehead head; /* Queue head. */
+ int i;
+
+ CIRCLEQ_INIT(&head); /* Initialize the queue. */
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
+ CIRCLEQ_INSERT_HEAD(&head, n1, entries);
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */
+ CIRCLEQ_INSERT_TAIL(&head, n1, entries);
+
+ n2 = malloc(sizeof(struct entry)); /* Insert after. */
+ CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);
+
+ n3 = malloc(sizeof(struct entry)); /* Insert before. */
+ CIRCLEQ_INSERT_BEFORE(&head, n2, n3, entries);
+
+ CIRCLEQ_REMOVE(&head, n2, entries); /* Deletion. */
+ free(n2);
+ /* Forward traversal. */
+ i = 0;
+ CIRCLEQ_FOREACH(np, &head, entries)
+ np->data = i++;
+ /* Reverse traversal. */
+ CIRCLEQ_FOREACH_REVERSE(np, &head, entries)
+ printf("%i\en", np->data);
+ /* Queue deletion. */
+ n1 = CIRCLEQ_FIRST(&head);
+ while (n1 != (void *)&head) {
+ n2 = CIRCLEQ_NEXT(n1, entries);
+ free(n1);
+ n1 = n2;
+ }
+ CIRCLEQ_INIT(&head);
+
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
+.BR insque (3),
+.BR queue (7)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man3/clearenv.3 b/man3/clearenv.3
index b058ddb05..baad89c34 100644
--- a/man3/clearenv.3
+++ b/man3/clearenv.3
@@ -33,10 +33,10 @@ clearenv \- clear the environment
.B "int clearenv(void);"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR clearenv ():
/* Glibc since 2.19: */ _DEFAULT_SOURCE
@@ -136,7 +136,7 @@ will return an error and the process environment will remain unchanged.
.BR unsetenv (3),
.BR environ (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/clock.3 b/man3/clock.3
index a5524857f..bd34e2910 100644
--- a/man3/clock.3
+++ b/man3/clock.3
@@ -112,7 +112,7 @@ clock).
.BR getrusage (2),
.BR times (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/clock_getcpuclockid.3 b/man3/clock_getcpuclockid.3
index d86899bf7..a585faa74 100644
--- a/man3/clock_getcpuclockid.3
+++ b/man3/clock_getcpuclockid.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH CLOCK_GETCPUCLOCKID 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH CLOCK_GETCPUCLOCKID 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
clock_getcpuclockid \- obtain ID of a process CPU-time clock
.SH SYNOPSIS
@@ -36,10 +36,10 @@ clock_getcpuclockid \- obtain ID of a process CPU-time clock
Link with \fI\-lrt\fP (only for glibc versions before 2.17).
.PP
.ad l
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR clock_getcpuclockid ():
.RS 4
@@ -127,6 +127,7 @@ CPU-time clock for PID 1 is 2.213466748 seconds
\&
.EX
#define _XOPEN_SOURCE 600
+#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
@@ -153,8 +154,8 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- printf("CPU-time clock for PID %s is %ld.%09ld seconds\en",
- argv[1], (long) ts.tv_sec, (long) ts.tv_nsec);
+ printf("CPU-time clock for PID %s is %jd.%09ld seconds\en",
+ argv[1], (intmax_t) ts.tv_sec, ts.tv_nsec);
exit(EXIT_SUCCESS);
}
.EE
@@ -164,7 +165,7 @@ main(int argc, char *argv[])
.BR pthread_getcpuclockid (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/clock_t.3 b/man3/clock_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/clock_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/clockid_t.3 b/man3/clockid_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/clockid_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/clog.3 b/man3/clog.3
index 46f89fb81..b479a5ba8 100644
--- a/man3/clog.3
+++ b/man3/clog.3
@@ -65,7 +65,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR clog2 (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/clog10.3 b/man3/clog10.3
index e99b4f31f..e1592f9f6 100644
--- a/man3/clog10.3
+++ b/man3/clog10.3
@@ -64,7 +64,7 @@ The identifiers are reserved for future use in C99 and C11.
.BR clog2 (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/clog2.3 b/man3/clog2.3
index b30601bc4..3b9a6b856 100644
--- a/man3/clog2.3
+++ b/man3/clog2.3
@@ -43,7 +43,7 @@ Not yet in glibc, as at version 2.19.
.BR clog10 (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/closedir.3 b/man3/closedir.3
index 60ae0dc3c..4a15c8741 100644
--- a/man3/closedir.3
+++ b/man3/closedir.3
@@ -87,7 +87,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.BR seekdir (3),
.BR telldir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cmsg.3 b/man3/cmsg.3
index ee82b210b..d4995c129 100644
--- a/man3/cmsg.3
+++ b/man3/cmsg.3
@@ -8,7 +8,7 @@
.\" %%%LICENSE_END
.\"
.\" $Id: cmsg.3,v 1.8 2000/12/20 18:10:31 ak Exp $
-.TH CMSG 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH CMSG 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR \- access ancillary data
.SH SYNOPSIS
@@ -203,7 +203,7 @@ for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;
cmsg = CMSG_NXTHDR(&msgh, cmsg)) {
if (cmsg\->cmsg_level == IPPROTO_IP
&& cmsg\->cmsg_type == IP_TTL) {
- memcpy(&receive_ttl, CMSG_DATA(cmsg), sizeof(int));
+ memcpy(&receive_ttl, CMSG_DATA(cmsg), sizeof(received_ttl));
break;
}
}
@@ -241,8 +241,8 @@ msg.msg_controllen = sizeof(u.buf);
cmsg = CMSG_FIRSTHDR(&msg);
cmsg\->cmsg_level = SOL_SOCKET;
cmsg\->cmsg_type = SCM_RIGHTS;
-cmsg\->cmsg_len = CMSG_LEN(sizeof(int) * NUM_FD);
-memcpy(CMSG_DATA(cmsg), myfds, NUM_FD * sizeof(int));
+cmsg\->cmsg_len = CMSG_LEN(sizeof(myfds));
+memcpy(CMSG_DATA(cmsg), myfds, sizeof(myfds));
.EE
.in
.SH SEE ALSO
@@ -251,7 +251,7 @@ memcpy(CMSG_DATA(cmsg), myfds, NUM_FD * sizeof(int));
.PP
RFC\ 2292
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/confstr.3 b/man3/confstr.3
index 29b0c91d0..779fe32da 100644
--- a/man3/confstr.3
+++ b/man3/confstr.3
@@ -40,10 +40,10 @@ confstr \- get configuration dependent string variables
.BI "size_t confstr(int " "name" ", char *" buf ", size_t " len );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR confstr ():
_POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE
@@ -165,7 +165,7 @@ confstr(_CS_PATH, pathbuf, n);
.BR sysconf (3),
.BR system (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/conj.3 b/man3/conj.3
index 59542977d..bf693666d 100644
--- a/man3/conj.3
+++ b/man3/conj.3
@@ -50,7 +50,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR csqrt (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/copysign.3 b/man3/copysign.3
index 8ee6eb40f..f9aa9a8a0 100644
--- a/man3/copysign.3
+++ b/man3/copysign.3
@@ -42,10 +42,10 @@ copysign, copysignf, copysignl \- copy sign of a number
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR copysign (),
@@ -108,7 +108,7 @@ functions may treat a negative zero as positive.
.SH SEE ALSO
.BR signbit (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cos.3 b/man3/cos.3
index 1adb9d358..6dcc1f0d2 100644
--- a/man3/cos.3
+++ b/man3/cos.3
@@ -45,10 +45,10 @@ cos, cosf, cosl \- cosine function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR cosf (),
@@ -133,7 +133,7 @@ when a domain error occurred.
.BR sincos (3),
.BR tan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cosh.3 b/man3/cosh.3
index 15b80b953..9d731c6d2 100644
--- a/man3/cosh.3
+++ b/man3/cosh.3
@@ -47,10 +47,10 @@ cosh, coshf, coshl \- hyperbolic cosine function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR coshf (),
@@ -143,7 +143,7 @@ exception is not raised when an overflow occurs.
.BR sinh (3),
.BR tanh (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cpow.3 b/man3/cpow.3
index b9efff51e..b13ba97b2 100644
--- a/man3/cpow.3
+++ b/man3/cpow.3
@@ -49,7 +49,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR pow (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/cproj.3 b/man3/cproj.3
index 0753f4650..9ece52dbb 100644
--- a/man3/cproj.3
+++ b/man3/cproj.3
@@ -55,7 +55,7 @@ projection onto a Riemann Sphere).
.BR cabs (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/creal.3 b/man3/creal.3
index 44a9a1276..87787f49a 100644
--- a/man3/creal.3
+++ b/man3/creal.3
@@ -52,7 +52,7 @@ That is a GNU extension.
.BR cimag (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/crypt.3 b/man3/crypt.3
index d2bf4f464..40ee05d98 100644
--- a/man3/crypt.3
+++ b/man3/crypt.3
@@ -304,7 +304,7 @@ otherwise.
.BR getpass (3),
.BR passwd (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/csin.3 b/man3/csin.3
index 64e93524f..be1cc69fb 100644
--- a/man3/csin.3
+++ b/man3/csin.3
@@ -52,7 +52,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR ctan (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/csinh.3 b/man3/csinh.3
index a7d4d9b99..2ed2104b7 100644
--- a/man3/csinh.3
+++ b/man3/csinh.3
@@ -52,7 +52,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR ctanh (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/csqrt.3 b/man3/csqrt.3
index d72482e16..a8f050636 100644
--- a/man3/csqrt.3
+++ b/man3/csqrt.3
@@ -48,7 +48,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR cexp (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ctan.3 b/man3/ctan.3
index c1c324b96..d8495548f 100644
--- a/man3/ctan.3
+++ b/man3/ctan.3
@@ -52,7 +52,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR csin (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ctanh.3 b/man3/ctanh.3
index 8306addc4..ce3ae341a 100644
--- a/man3/ctanh.3
+++ b/man3/ctanh.3
@@ -53,7 +53,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR csinh (3),
.BR complex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ctermid.3 b/man3/ctermid.3
index 2202306ec..480240359 100644
--- a/man3/ctermid.3
+++ b/man3/ctermid.3
@@ -35,10 +35,10 @@ ctermid \- get controlling terminal name
.BI "char *ctermid(char *" "s" );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR ctermid ():
_POSIX_C_SOURCE
@@ -82,7 +82,7 @@ It is not assured that the program can open the terminal.
.SH SEE ALSO
.BR ttyname (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ctime.3 b/man3/ctime.3
index dfb726cd8..3c6b115dc 100644
--- a/man3/ctime.3
+++ b/man3/ctime.3
@@ -55,10 +55,10 @@ localtime_r \- transform date and time to broken-down time or ASCII
.BI "time_t mktime(struct tm *" tm );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
.BR asctime_r (),
@@ -444,7 +444,7 @@ should be called before
.BR tzset (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/daemon.3 b/man3/daemon.3
index 173d6c0b8..d1b6bd773 100644
--- a/man3/daemon.3
+++ b/man3/daemon.3
@@ -41,10 +41,10 @@ daemon \- run in the background
.PP
.BI "int daemon(int " nochdir ", int " noclose );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR daemon ():
.nf
@@ -148,7 +148,7 @@ the controlling terminal for the daemon.
.BR daemon (7),
.BR logrotate (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dbopen.3 b/man3/dbopen.3
index 1567bc90e..5523fb23c 100644
--- a/man3/dbopen.3
+++ b/man3/dbopen.3
@@ -560,7 +560,7 @@ locking, or transactions.
.IR "LIBTP: Portable, Modular Transactions for UNIX" ,
Margo Seltzer, Michael Olson, USENIX proceedings, Winter 1992.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/des_crypt.3 b/man3/des_crypt.3
index ba27f6529..7f6ebd300 100644
--- a/man3/des_crypt.3
+++ b/man3/des_crypt.3
@@ -161,7 +161,7 @@ Not in POSIX.1.
.BR crypt (3),
.BR xcrypt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dev_t.3 b/man3/dev_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/dev_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/difftime.3 b/man3/difftime.3
index 15c9784d2..42d0a9653 100644
--- a/man3/difftime.3
+++ b/man3/difftime.3
@@ -80,7 +80,7 @@ when the possible overflow in the subtraction is not a concern.
.BR gmtime (3),
.BR localtime (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dirfd.3 b/man3/dirfd.3
index 2224a1fa9..fcb702c58 100644
--- a/man3/dirfd.3
+++ b/man3/dirfd.3
@@ -32,10 +32,10 @@ dirfd \- get directory stream file descriptor
.PP
.BI "int dirfd(DIR *" dirp );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR dirfd ():
.br
@@ -109,7 +109,7 @@ This function was a BSD extension, present in 4.3BSD-Reno, not in 4.2BSD.
.BR seekdir (3),
.BR telldir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/div.3 b/man3/div.3
index b77aa47ec..b260118d3 100644
--- a/man3/div.3
+++ b/man3/div.3
@@ -48,10 +48,10 @@ an integer division
.BI "imaxdiv_t imaxdiv(intmax_t " numerator ", intmax_t " denominator );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
.BR lldiv ():
@@ -118,7 +118,7 @@ the values \fIq.quot\fP and \fIq.rem\fP are \-1 and \-2, respectively.
.BR abs (3),
.BR remainder (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/div_t.3 b/man3/div_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/div_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/dl_iterate_phdr.3 b/man3/dl_iterate_phdr.3
index b35f4a4cb..da1c1d9b3 100644
--- a/man3/dl_iterate_phdr.3
+++ b/man3/dl_iterate_phdr.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH DL_ITERATE_PHDR 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH DL_ITERATE_PHDR 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
dl_iterate_phdr \- walk through list of shared objects
.SH SYNOPSIS
@@ -89,18 +89,18 @@ struct dl_phdr_info {
argument passed to the dl_iterate_phdr callback to determine
whether or not each later member is available. */
- unsigned long long int dlpi_adds;
+ unsigned long long dlpi_adds;
/* Incremented when a new object may
have been added */
- unsigned long long int dlpi_subs;
+ unsigned long long dlpi_subs;
/* Incremented when an object may
have been removed */
size_t dlpi_tls_modid;
/* If there is a PT_TLS segment, its module
ID as used in TLS relocations, else zero */
void *dlpi_tls_data;
- /* The address of the calling thread's instance
- of this module's PT_TLS segment, if it has
+ /* The address of the calling thread\(aqs instance
+ of this module\(aqs PT_TLS segment, if it has
one and it has been allocated in the calling
thread, otherwise a null pointer */
};
@@ -302,17 +302,18 @@ Name: "/lib64/ld-linux-x86-64.so.2" (7 segments)
#include <link.h>
#include <stdlib.h>
#include <stdio.h>
+#include <stdint.h>
static int
callback(struct dl_phdr_info *info, size_t size, void *data)
{
char *type;
- int p_type, j;
+ int p_type;
printf("Name: \e"%s\e" (%d segments)\en", info\->dlpi_name,
info\->dlpi_phnum);
- for (j = 0; j < info\->dlpi_phnum; j++) {
+ for (int j = 0; j < info\->dlpi_phnum; j++) {
p_type = info\->dlpi_phdr[j].p_type;
type = (p_type == PT_LOAD) ? "PT_LOAD" :
(p_type == PT_DYNAMIC) ? "PT_DYNAMIC" :
@@ -325,14 +326,14 @@ callback(struct dl_phdr_info *info, size_t size, void *data)
(p_type == PT_GNU_STACK) ? "PT_GNU_STACK" :
(p_type == PT_GNU_RELRO) ? "PT_GNU_RELRO" : NULL;
- printf(" %2d: [%14p; memsz:%7lx] flags: 0x%x; ", j,
+ printf(" %2d: [%14p; memsz:%7jx] flags: %#jx; ", j,
(void *) (info\->dlpi_addr + info\->dlpi_phdr[j].p_vaddr),
- info\->dlpi_phdr[j].p_memsz,
- info\->dlpi_phdr[j].p_flags);
+ (uintmax_t) info\->dlpi_phdr[j].p_memsz,
+ (uintmax_t) info\->dlpi_phdr[j].p_flags);
if (type != NULL)
printf("%s\en", type);
else
- printf("[other (0x%x)]\en", p_type);
+ printf("[other (%#x)]\en", p_type);
}
return 0;
@@ -358,7 +359,7 @@ main(int argc, char *argv[])
.IR "Executable and Linking Format Specification" ,
available at various locations online.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dladdr.3 b/man3/dladdr.3
index cdd435f38..6debdba3c 100644
--- a/man3/dladdr.3
+++ b/man3/dladdr.3
@@ -288,7 +288,7 @@ will generate code that just loads the final symbol address from the
.BR dlsym (3),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dlerror.3 b/man3/dlerror.3
index 3bccfb417..70cce3cc3 100644
--- a/man3/dlerror.3
+++ b/man3/dlerror.3
@@ -90,7 +90,7 @@ See
.BR dlopen (3),
.BR dlsym (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dlinfo.3 b/man3/dlinfo.3
index 283225308..b54a23211 100644
--- a/man3/dlinfo.3
+++ b/man3/dlinfo.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH DLINFO 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH DLINFO 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
dlinfo \- obtain information about a dynamically loaded object
.SH SYNOPSIS
@@ -159,9 +159,9 @@ typedef struct {
size_t dls_size; /* Size in bytes of
the whole buffer */
unsigned int dls_cnt; /* Number of elements
- in 'dls_serpath' */
+ in \(aqdls_serpath\(aq */
Dl_serpath dls_serpath[1]; /* Actually longer,
- 'dls_cnt' elements */
+ \(aqdls_cnt\(aq elements */
} Dl_serinfo;
.EE
.in
@@ -271,7 +271,6 @@ main(int argc, char *argv[])
void *handle;
Dl_serinfo serinfo;
Dl_serinfo *sip;
- int j;
if (argc != 2) {
fprintf(stderr, "Usage: %s <libpath>\en", argv[0]);
@@ -317,7 +316,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- for (j = 0; j < serinfo.dls_cnt; j++)
+ for (int j = 0; j < serinfo.dls_cnt; j++)
printf("dls_serpath[%d].dls_name = %s\en",
j, sip\->dls_serpath[j].dls_name);
@@ -332,7 +331,7 @@ main(int argc, char *argv[])
.BR dlsym (3),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dlopen.3 b/man3/dlopen.3
index f6ebef5b3..c47038ced 100644
--- a/man3/dlopen.3
+++ b/man3/dlopen.3
@@ -32,7 +32,7 @@
.\" Modified by Walter Harms: dladdr, dlvsym
.\" Modified by Petr Baudis <pasky@suse.cz>, 2008-12-04: dladdr caveat
.\"
-.TH DLOPEN 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH DLOPEN 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
dlclose, dlopen, dlmopen \-
open and close a shared object
@@ -47,7 +47,7 @@ open and close a shared object
.br
.B #include <dlfcn.h>
.PP
-.BI "void *dlmopen (Lmid_t " lmid ", const char *" filename ", int " flags );
+.BI "void *dlmopen(Lmid_t " lmid ", const char *" filename ", int " flags );
.PP
Link with \fI\-ldl\fP.
.SH DESCRIPTION
@@ -85,7 +85,10 @@ Otherwise, the dynamic linker searches for the object as follows
.BR ld.so (8)
for further details):
.IP o 4
-(ELF only) If the executable file for the calling program
+(ELF only) If the calling object
+(i.e., the shared library or executable from which
+.BR dlopen ()
+is called)
contains a DT_RPATH tag, and does not contain a DT_RUNPATH tag,
then the directories listed in the DT_RPATH tag are searched.
.IP o
@@ -96,7 +99,7 @@ then these are searched.
(As a security measure, this variable is ignored for set-user-ID and
set-group-ID programs.)
.IP o
-(ELF only) If the executable file for the calling program
+(ELF only) If the calling object
contains a DT_RUNPATH tag, then the directories listed in that tag
are searched.
.IP o
@@ -564,7 +567,7 @@ $ \fB./a.out\fP
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
-#include <gnu/lib-names.h> /* Defines LIBM_SO (which will be a
+#include <gnu/lib\-names.h> /* Defines LIBM_SO (which will be a
string such as "libm.so.6") */
int
main(void)
@@ -584,7 +587,7 @@ main(void)
cosine = (double (*)(double)) dlsym(handle, "cos");
/* According to the ISO C standard, casting between function
- pointers and 'void *', as done above, produces undefined results.
+ pointers and \(aqvoid *\(aq, as done above, produces undefined results.
POSIX.1-2001 and POSIX.1-2008 accepted this state of affairs and
proposed the following workaround:
@@ -595,8 +598,8 @@ main(void)
The 2013 Technical Corrigendum 1 to POSIX.1-2008 improved matters
by requiring that conforming implementations support casting
- 'void *' to a function pointer. Nevertheless, some compilers
- (e.g., gcc with the '\-pedantic' option) may complain about the
+ \(aqvoid *\(aq to a function pointer. Nevertheless, some compilers
+ (e.g., gcc with the \(aq\-pedantic\(aq option) may complain about the
cast used in this program. */
.\" http://pubs.opengroup.org/onlinepubs/009695399/functions/dlsym.html#tag_03_112_08
.\" http://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html#tag_16_96_07
@@ -628,7 +631,7 @@ main(void)
.PP
gcc info pages, ld info pages
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dlsym.3 b/man3/dlsym.3
index 213302cc9..411b0734b 100644
--- a/man3/dlsym.3
+++ b/man3/dlsym.3
@@ -176,7 +176,7 @@ See
.BR dlopen (3),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/double_t.3 b/man3/double_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/double_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/drand48.3 b/man3/drand48.3
index 29b2f2581..48b82da2e 100644
--- a/man3/drand48.3
+++ b/man3/drand48.3
@@ -27,7 +27,7 @@
.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\" 386BSD man pages
.\" Modified Sat Jul 24 19:46:03 1993 by Rik Faith (faith@cs.unc.edu)
-.TH DRAND48 3 2017-09-15 "" "Linux Programmer's Manual"
+.TH DRAND48 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48,
lcong48 \- generate uniformly distributed pseudo-random numbers
@@ -39,25 +39,25 @@ lcong48 \- generate uniformly distributed pseudo-random numbers
.PP
.BI "double erand48(unsigned short " xsubi [3]);
.PP
-.B long int lrand48(void);
+.B long lrand48(void);
.PP
-.BI "long int nrand48(unsigned short " xsubi [3]);
+.BI "long nrand48(unsigned short " xsubi [3]);
.PP
-.B long int mrand48(void);
+.B long mrand48(void);
.PP
-.BI "long int jrand48(unsigned short " xsubi [3]);
+.BI "long jrand48(unsigned short " xsubi [3]);
.PP
-.BI "void srand48(long int " seedval );
+.BI "void srand48(long " seedval );
.PP
.BI "unsigned short *seed48(unsigned short " seed16v [3]);
.PP
.BI "void lcong48(unsigned short " param [7]);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
All functions shown above:
@@ -278,7 +278,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4.
.BR rand (3),
.BR random (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/drand48_r.3 b/man3/drand48_r.3
index 7bcb69e7a..936ffdbeb 100644
--- a/man3/drand48_r.3
+++ b/man3/drand48_r.3
@@ -24,7 +24,7 @@
.\"
.\" Created 2004-10-31. Text taken from a page by Walter Harms, 2003-09-08
.\"
-.TH DRAND48_R 3 2017-09-15 "GNU" "Linux Programmer's Manual"
+.TH DRAND48_R 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r,
srand48_r, seed48_r, lcong48_r
@@ -38,29 +38,29 @@ srand48_r, seed48_r, lcong48_r
.BI "int erand48_r(unsigned short " xsubi [3] ","
.BI " struct drand48_data *"buffer ", double *" result ");"
.PP
-.BI "int lrand48_r(struct drand48_data *" buffer ", long int *" result );
+.BI "int lrand48_r(struct drand48_data *" buffer ", long *" result );
.PP
-.BI "int nrand48_r(unsigned short int " xsubi[3] ","
-.BI " struct drand48_data *"buffer ", long int *" result ");"
+.BI "int nrand48_r(unsigned short " xsubi[3] ","
+.BI " struct drand48_data *"buffer ", long *" result ");"
.PP
-.BI "int mrand48_r(struct drand48_data *" buffer ",long int *" result ");"
+.BI "int mrand48_r(struct drand48_data *" buffer ",long *" result ");"
.PP
-.BI "int jrand48_r(unsigned short int " xsubi[3] ","
-.BI " struct drand48_data *" buffer ", long int *" result ");"
+.BI "int jrand48_r(unsigned short " xsubi[3] ","
+.BI " struct drand48_data *" buffer ", long *" result ");"
.PP
.BI "int srand48_r(long int " seedval ", struct drand48_data *" buffer ");"
.PP
-.BI "int seed48_r(unsigned short int " seed16v[3] ","
+.BI "int seed48_r(unsigned short " seed16v[3] ","
.BI " struct drand48_data *" buffer ");"
.PP
-.BI "int lcong48_r(unsigned short int " param[7] ","
+.BI "int lcong48_r(unsigned short " param[7] ","
.BI " struct drand48_data *" buffer ");"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
All functions shown above:
@@ -120,7 +120,7 @@ These functions are GNU extensions and are not portable.
.BR rand (3),
.BR random (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/duplocale.3 b/man3/duplocale.3
index e49e9c276..65292285f 100644
--- a/man3/duplocale.3
+++ b/man3/duplocale.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH DUPLOCALE 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH DUPLOCALE 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
duplocale \- duplicate a locale object
.SH SYNOPSIS
@@ -32,10 +32,10 @@ duplocale \- duplicate a locale object
.BI "locale_t duplocale(locale_t " locobj );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR duplocale ():
.PD 0
@@ -108,7 +108,7 @@ Calling
can be used to ensure that the
.BR LC_GLOBAL_LOCALE
value is converted into a usable locale object.
-See EXAMPLE, below.
+See EXAMPLES, below.
.PP
Each locale object created by
.BR duplocale ()
@@ -148,7 +148,6 @@ int
main(int argc, char *argv[])
{
locale_t loc, nloc;
- char *p;
if (argc != 2) {
fprintf(stderr, "Usage: %s string\en", argv[0]);
@@ -167,7 +166,7 @@ main(int argc, char *argv[])
if (nloc == (locale_t) 0)
errExit("duplocale");
- for (p = argv[1]; *p; p++)
+ for (char *p = argv[1]; *p; p++)
putchar(toupper_l(*p, nloc));
printf("\en");
@@ -185,7 +184,7 @@ main(int argc, char *argv[])
.BR locale (5),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/dysize.3 b/man3/dysize.3
index a5ce033c0..b3ece4f4a 100644
--- a/man3/dysize.3
+++ b/man3/dysize.3
@@ -31,10 +31,10 @@ dysize \- get number of days for a given year
.PP
.BI "int dysize(int " year );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR dysize ():
Since glibc 2.19:
@@ -76,7 +76,7 @@ Don't use it in new programs.
.SH SEE ALSO
.BR strftime (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ecvt.3 b/man3/ecvt.3
index 56cc20ea4..a0aaeca56 100644
--- a/man3/ecvt.3
+++ b/man3/ecvt.3
@@ -41,10 +41,10 @@ ecvt, fcvt \- convert a floating-point number to a string
.BI "char *fcvt(double " number ", int " ndigits ", int *" decpt ,
.BI "int *" sign );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR ecvt (),
.BR fcvt ():
@@ -146,7 +146,7 @@ Not all locales use a point as the radix character ("decimal point").
.BR setlocale (3),
.BR sprintf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ecvt_r.3 b/man3/ecvt_r.3
index dae8d73f1..22e33e379 100644
--- a/man3/ecvt_r.3
+++ b/man3/ecvt_r.3
@@ -47,10 +47,10 @@ ecvt_r, fcvt_r, qecvt_r, qfcvt_r \- convert a floating-point number to a string
.BI " int *" sign ", char *" buf ", size_t " len );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR ecvt_r (),
@@ -114,7 +114,7 @@ is recommended.
.BR qecvt (3),
.BR sprintf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/encrypt.3 b/man3/encrypt.3
index 206a2cf7f..cd9a2c9d6 100644
--- a/man3/encrypt.3
+++ b/man3/encrypt.3
@@ -27,7 +27,7 @@
.\"
.\" Modified 2003-04-04, aeb
.\"
-.TH ENCRYPT 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH ENCRYPT 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
encrypt, setkey, encrypt_r, setkey_r \- encrypt 64-bit messages
.SH SYNOPSIS
@@ -89,16 +89,16 @@ structure to hold the key data:
.in +4n
.EX
struct crypt_data {
- char keysched[16 * 8];
- char sb0[32768];
- char sb1[32768];
- char sb2[32768];
- char sb3[32768];
- char crypt_3_buf[14];
- char current_salt[2];
- long int current_saltbits;
- int direction;
- int initialized;
+ char keysched[16 * 8];
+ char sb0[32768];
+ char sb1[32768];
+ char sb2[32768];
+ char sb3[32768];
+ char crypt_3_buf[14];
+ char current_salt[2];
+ long current_saltbits;
+ int direction;
+ int initialized;
};
.EE
.in
@@ -178,14 +178,13 @@ main(void)
char orig[9] = "eggplant";
char buf[64];
char txt[9];
- int i, j;
- for (i = 0; i < 64; i++) {
+ for (int i = 0; i < 64; i++) {
key[i] = rand() & 1;
}
- for (i = 0; i < 8; i++) {
- for (j = 0; j < 8; j++) {
+ for (int i = 0; i < 8; i++) {
+ for (int j = 0; j < 8; j++) {
buf[i * 8 + j] = orig[i] >> j & 1;
}
setkey(key);
@@ -193,8 +192,8 @@ main(void)
printf("Before encrypting: %s\en", orig);
encrypt(buf, 0);
- for (i = 0; i < 8; i++) {
- for (j = 0, txt[i] = \(aq\e0\(aq; j < 8; j++) {
+ for (int i = 0; i < 8; i++) {
+ for (int j = 0, txt[i] = \(aq\e0\(aq; j < 8; j++) {
txt[i] |= buf[i * 8 + j] << j;
}
txt[8] = \(aq\e0\(aq;
@@ -202,8 +201,8 @@ main(void)
printf("After encrypting: %s\en", txt);
encrypt(buf, 1);
- for (i = 0; i < 8; i++) {
- for (j = 0, txt[i] = \(aq\e0\(aq; j < 8; j++) {
+ for (int i = 0; i < 8; i++) {
+ for (int j = 0, txt[i] = \(aq\e0\(aq; j < 8; j++) {
txt[i] |= buf[i * 8 + j] << j;
}
txt[8] = \(aq\e0\(aq;
@@ -218,7 +217,7 @@ main(void)
.BR ecb_crypt (3),
.\" .BR fcrypt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/end.3 b/man3/end.3
index 814d92b4a..1e8db25e2 100644
--- a/man3/end.3
+++ b/man3/end.3
@@ -111,7 +111,7 @@ main(int argc, char *argv[])
.BR sbrk (2),
.BR elf (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/endian.3 b/man3/endian.3
index 91f91bbd4..7fb9f4e8f 100644
--- a/man3/endian.3
+++ b/man3/endian.3
@@ -25,7 +25,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH ENDIAN 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH ENDIAN 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
htobe16, htole16, be16toh, le16toh, htobe32, htole32, be32toh, le32toh,
htobe64, htole64, be64toh, le64toh \-
@@ -50,10 +50,10 @@ convert values between host and big-/little-endian byte order
.BI "uint64_t le64toh(uint64_t " little_endian_64bits );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR htobe16 (),
.BR htole16 (),
@@ -164,9 +164,9 @@ main(int argc, char *argv[])
x.arr[2] = 0x33;
x.arr[3] = 0x44; /* Highest-address byte */
- printf("x.u32 = 0x%x\en", x.u32);
- printf("htole32(x.u32) = 0x%x\en", htole32(x.u32));
- printf("htobe32(x.u32) = 0x%x\en", htobe32(x.u32));
+ printf("x.u32 = %#x\en", x.u32);
+ printf("htole32(x.u32) = %#x\en", htole32(x.u32));
+ printf("htobe32(x.u32) = %#x\en", htobe32(x.u32));
exit(EXIT_SUCCESS);
}
@@ -175,7 +175,7 @@ main(int argc, char *argv[])
.BR bswap (3),
.BR byteorder (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/envz_add.3 b/man3/envz_add.3
index 7b96f984e..058e29a98 100644
--- a/man3/envz_add.3
+++ b/man3/envz_add.3
@@ -7,7 +7,7 @@
.\" based on the description in glibc source and infopages
.\"
.\" Corrections and additions, aeb
-.TH ENVZ_ADD 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH ENVZ_ADD 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
envz_add, envz_entry, envz_get, envz_merge,
envz_remove, envz_strip \- environment string support
@@ -111,7 +111,8 @@ if there was one.
removes all entries with value NULL.
.SH RETURN VALUE
All envz functions that do memory allocation have a return type of
-.IR error_t ,
+.IR error_t
+(an integer type),
and return 0 for success, and
.B ENOMEM
if an allocation error occurs.
@@ -137,7 +138,6 @@ T} Thread safety MT-Safe
.sp 1
.SH CONFORMING TO
These functions are a GNU extension.
-Handle with care.
.SH EXAMPLES
.EX
#include <stdio.h>
@@ -147,10 +147,10 @@ Handle with care.
int
main(int argc, char *argv[], char *envp[])
{
- int i, e_len = 0;
+ int e_len = 0;
char *str;
- for (i = 0; envp[i] != NULL; i++)
+ for (int i = 0; envp[i] != NULL; i++)
e_len += strlen(envp[i]) + 1;
str = envz_entry(*envp, e_len, "HOME");
@@ -163,7 +163,7 @@ main(int argc, char *argv[], char *envp[])
.SH SEE ALSO
.BR argz_add (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/erf.3 b/man3/erf.3
index 5b6b179c3..a5a61952e 100644
--- a/man3/erf.3
+++ b/man3/erf.3
@@ -46,10 +46,10 @@ erf, erff, erfl \- error function
.fi
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR erf ():
@@ -142,7 +142,7 @@ SVr4, 4.3BSD.
.BR erfc (3),
.BR exp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/erfc.3 b/man3/erfc.3
index 729085974..f58cd5044 100644
--- a/man3/erfc.3
+++ b/man3/erfc.3
@@ -37,10 +37,10 @@ erfc, erfcf, erfcl \- complementary error function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR erfc ():
@@ -149,7 +149,7 @@ would occur for the calculation 1-erf(x) for large values of
.BR erf (3),
.BR exp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/err.3 b/man3/err.3
index 92192fc50..9de1cdc77 100644
--- a/man3/err.3
+++ b/man3/err.3
@@ -184,7 +184,7 @@ if (fd == \-1)
.BR printf (3),
.BR strerror (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/errno.3 b/man3/errno.3
index f308d7afb..524c839dd 100644
--- a/man3/errno.3
+++ b/man3/errno.3
@@ -28,7 +28,7 @@
.\" 2006-02-09 Kurt Wall, mtk
.\" Added non-POSIX errors
.\"
-.TH ERRNO 3 2019-10-10 "" "Linux Programmer's Manual"
+.TH ERRNO 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
errno \- number of last error
.SH SYNOPSIS
@@ -631,6 +631,16 @@ if (somecall() == \-1) {
.EE
.in
.PP
+Note that the POSIX threads APIs do
+.I not
+set
+.I errno
+on error.
+Instead, on failure they return an error number as the function result.
+These error numbers have the same meanings as the error numbers returned in
+.I errno
+by other APIs.
+.PP
On some ancient systems,
.I <errno.h>
was not present or did not declare
@@ -650,7 +660,7 @@ and it will cause problems with modern versions of the C library.
.BR perror (3),
.BR strerror (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/error.3 b/man3/error.3
index 394739ec9..83efc5261 100644
--- a/man3/error.3
+++ b/man3/error.3
@@ -164,7 +164,7 @@ used in programs intended to be portable.
.BR program_invocation_name (3),
.BR strerror (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ether_aton.3 b/man3/ether_aton.3
index 8ec12df0c..2a93d5366 100644
--- a/man3/ether_aton.3
+++ b/man3/ether_aton.3
@@ -157,7 +157,7 @@ is broken.
.SH SEE ALSO
.BR ethers (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/euidaccess.3 b/man3/euidaccess.3
index 930c5d3e5..097bd4be5 100644
--- a/man3/euidaccess.3
+++ b/man3/euidaccess.3
@@ -116,7 +116,7 @@ and
.BR credentials (7),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/exec.3 b/man3/exec.3
index 8eb4a8568..14a7e2921 100644
--- a/man3/exec.3
+++ b/man3/exec.3
@@ -59,10 +59,10 @@ execl, execlp, execle, execv, execvp, execvpe \- execute a file
.BI " char *const " envp "[]);"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR execvpe ():
_GNU_SOURCE
@@ -297,7 +297,7 @@ wrapper function on those architectures.
.BR system (3),
.BR environ (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/exit.3 b/man3/exit.3
index 42ef15ba0..47c748d1c 100644
--- a/man3/exit.3
+++ b/man3/exit.3
@@ -213,7 +213,7 @@ operation to arrange that it receives a signal if its parent terminates.
.BR on_exit (3),
.BR tmpfile (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/exp.3 b/man3/exp.3
index c954ebf55..7e1394597 100644
--- a/man3/exp.3
+++ b/man3/exp.3
@@ -47,10 +47,10 @@ exp, expf, expl \- base-e exponential function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR expf (),
@@ -148,7 +148,7 @@ SVr4, 4.3BSD, C89.
.BR expm1 (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/exp10.3 b/man3/exp10.3
index 66c794af0..22451560a 100644
--- a/man3/exp10.3
+++ b/man3/exp10.3
@@ -97,7 +97,7 @@ when an underflow error occurred.
.BR log10 (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/exp2.3 b/man3/exp2.3
index 4a3f2de73..fd59158ba 100644
--- a/man3/exp2.3
+++ b/man3/exp2.3
@@ -47,10 +47,10 @@ exp2, exp2f, exp2l \- base-2 exponential function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR exp2 (),
@@ -108,7 +108,7 @@ SVr4, 4.3BSD.
.BR exp10 (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/expm1.3 b/man3/expm1.3
index 2b1288775..08718bbcd 100644
--- a/man3/expm1.3
+++ b/man3/expm1.3
@@ -41,10 +41,10 @@ expm1, expm1f, expm1l \- exponential minus 1
.fi
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR expm1 ():
@@ -180,7 +180,7 @@ when a range error occurred.
.BR log (3),
.BR log1p (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fabs.3 b/man3/fabs.3
index 50792c042..dbca3be3c 100644
--- a/man3/fabs.3
+++ b/man3/fabs.3
@@ -43,10 +43,10 @@ fabs, fabsf, fabsl \- absolute value of floating-point number
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR fabsf (),
@@ -107,7 +107,7 @@ SVr4, 4.3BSD, C89.
.BR labs (3),
.BR rint (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fclose.3 b/man3/fclose.3
index 12c5a5cee..37c118d8e 100644
--- a/man3/fclose.3
+++ b/man3/fclose.3
@@ -119,7 +119,7 @@ or
.BR fopen (3),
.BR setbuf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fcloseall.3 b/man3/fcloseall.3
index b5723c0e4..98d230ab5 100644
--- a/man3/fcloseall.3
+++ b/man3/fcloseall.3
@@ -77,7 +77,7 @@ This function is a GNU extension.
.BR fopen (3),
.BR setbuf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fdim.3 b/man3/fdim.3
index 9dbe6c683..a654eed25 100644
--- a/man3/fdim.3
+++ b/man3/fdim.3
@@ -20,10 +20,10 @@ fdim, fdimf, fdiml \- positive difference
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR fdimf (),
@@ -94,7 +94,7 @@ these functions did not set
.SH SEE ALSO
.BR fmax (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fenv.3 b/man3/fenv.3
index 312f96ada..03c49e366 100644
--- a/man3/fenv.3
+++ b/man3/fenv.3
@@ -342,7 +342,7 @@ always has the value 1.
.SH SEE ALSO
.BR math_error (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fenv_t.3 b/man3/fenv_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/fenv_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/ferror.3 b/man3/ferror.3
index edb678676..363013923 100644
--- a/man3/ferror.3
+++ b/man3/ferror.3
@@ -55,10 +55,10 @@ clearerr, feof, ferror, fileno \- check and reset stream status
.PP
.BI "int fileno(FILE *" stream );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fileno ():
_POSIX_C_SOURCE
@@ -144,7 +144,7 @@ conforms to POSIX.1-2001 and POSIX.1-2008.
.BR stdio (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fexcept_t.3 b/man3/fexcept_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/fexcept_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/fexecve.3 b/man3/fexecve.3
index 8030daf96..2e98bf623 100644
--- a/man3/fexecve.3
+++ b/man3/fexecve.3
@@ -32,10 +32,10 @@ fexecve \- execute program specified via file descriptor
.BI "int fexecve(int " fd ", char *const " argv "[], char *const " envp []);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fexecve ():
.PD 0
@@ -196,7 +196,7 @@ if it refers to a script, leading to the problems described in NOTES.
.BR execve (2),
.BR execveat (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fflush.3 b/man3/fflush.3
index 084a51ff7..ff6b2b150 100644
--- a/man3/fflush.3
+++ b/man3/fflush.3
@@ -131,7 +131,7 @@ or
.BR setbuf (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ffs.3 b/man3/ffs.3
index 2b9ca9c34..2bb6fc698 100644
--- a/man3/ffs.3
+++ b/man3/ffs.3
@@ -30,7 +30,7 @@
.\"
.\" Modified 2003 Walter Harms (walter.harms@informatik.uni-oldenburg.de)
.\"
-.TH FFS 3 2017-09-15 "GNU" "Linux Programmer's Manual"
+.TH FFS 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
ffs, ffsl, ffsll \- find first bit set in a word
.SH SYNOPSIS
@@ -41,15 +41,15 @@ ffs, ffsl, ffsll \- find first bit set in a word
.PP
.B #include <string.h>
.PP
-.BI "int ffsl(long int " i );
+.BI "int ffsl(long " i );
.PP
-.BI "int ffsll(long long int " i );
+.BI "int ffsll(long long " i );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.PD 0
.ad l
@@ -127,7 +127,7 @@ BSD systems have a prototype in
.SH SEE ALSO
.BR memchr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fgetc.3 b/man3/fgetc.3
index 84cbbea29..0d76f0ef7 100644
--- a/man3/fgetc.3
+++ b/man3/fgetc.3
@@ -166,7 +166,7 @@ will be undefined and very probably not what you want.
.BR unlocked_stdio (3),
.BR feature_test_macros (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fgetgrent.3 b/man3/fgetgrent.3
index 12c41d13d..0d216256c 100644
--- a/man3/fgetgrent.3
+++ b/man3/fgetgrent.3
@@ -39,10 +39,10 @@ fgetgrent \- get group file entry
.BI "struct group *fgetgrent(FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fgetgrent ():
Since glibc 2.19:
@@ -127,7 +127,7 @@ SVr4.
.BR setgrent (3),
.BR group (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fgetpwent.3 b/man3/fgetpwent.3
index 7f2bcf2cf..893652341 100644
--- a/man3/fgetpwent.3
+++ b/man3/fgetpwent.3
@@ -42,10 +42,10 @@ fgetpwent \- get password file entry
.BI "struct passwd *fgetpwent(FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fgetpwent ():
Since glibc 2.19:
@@ -136,7 +136,7 @@ SVr4.
.BR setpwent (3),
.BR passwd (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fgetwc.3 b/man3/fgetwc.3
index 6b5d3a633..67b105671 100644
--- a/man3/fgetwc.3
+++ b/man3/fgetwc.3
@@ -102,7 +102,7 @@ from the stream and then convert it to a wide character.
.BR ungetwc (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fgetws.3 b/man3/fgetws.3
index 608d71eed..cfeffecb1 100644
--- a/man3/fgetws.3
+++ b/man3/fgetws.3
@@ -86,7 +86,7 @@ null wide characters that may be present in the input.
.BR fgetwc (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/finite.3 b/man3/finite.3
index 8e7197e71..01f7191fb 100644
--- a/man3/finite.3
+++ b/man3/finite.3
@@ -43,10 +43,10 @@ BSD floating-point classification functions
.BI "int isnanl(long double " x );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR finite (),
@@ -159,7 +159,7 @@ See
.SH SEE ALSO
.BR fpclassify (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/float_t.3 b/man3/float_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/float_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/flockfile.3 b/man3/flockfile.3
index 9bd170882..d72fd96e4 100644
--- a/man3/flockfile.3
+++ b/man3/flockfile.3
@@ -34,10 +34,10 @@ flockfile, ftrylockfile, funlockfile \- lock FILE for stdio
.BI "void funlockfile(FILE *" filehandle );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
All functions shown above:
@@ -146,7 +146,7 @@ is defined.
.SH SEE ALSO
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/floor.3 b/man3/floor.3
index 8bc0c6daf..d5e6c9533 100644
--- a/man3/floor.3
+++ b/man3/floor.3
@@ -38,10 +38,10 @@ floor, floorf, floorl \- largest integral value not greater than argument
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR floorf (),
@@ -118,7 +118,7 @@ and the number of mantissa bits is 24 (respectively, 53).)
.BR round (3),
.BR trunc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fma.3 b/man3/fma.3
index 7f92c69eb..5cae401de 100644
--- a/man3/fma.3
+++ b/man3/fma.3
@@ -23,10 +23,10 @@ fma, fmaf, fmal \- floating-point multiply and add
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR fma (),
@@ -165,7 +165,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR remainder (3),
.BR remquo (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fmax.3 b/man3/fmax.3
index 57b9c6ec4..1b147f357 100644
--- a/man3/fmax.3
+++ b/man3/fmax.3
@@ -18,10 +18,10 @@ fmax, fmaxf, fmaxl \- determine maximum of two floating-point numbers
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR fmax (),
@@ -69,7 +69,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR fdim (3),
.BR fmin (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fmemopen.3 b/man3/fmemopen.3
index 8cb81a0b0..71f3f4c8e 100644
--- a/man3/fmemopen.3
+++ b/man3/fmemopen.3
@@ -14,10 +14,10 @@ fmemopen \- open memory as stream
.BI "FILE *fmemopen(void *"buf ", size_t "size ", const char *" mode ");"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fmemopen ():
.PD 0
@@ -351,7 +351,7 @@ main(int argc, char *argv[])
.BR fopencookie (3),
.BR open_memstream (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fmin.3 b/man3/fmin.3
index e513edc58..3c2cd2ace 100644
--- a/man3/fmin.3
+++ b/man3/fmin.3
@@ -20,10 +20,10 @@ fmin, fminf, fminl \- determine minimum of two floating-point numbers
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR fmin (),
@@ -71,7 +71,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR fdim (3),
.BR fmax (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fmod.3 b/man3/fmod.3
index c52f19837..a23365958 100644
--- a/man3/fmod.3
+++ b/man3/fmod.3
@@ -46,10 +46,10 @@ fmod, fmodf, fmodl \- floating-point remainder function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR fmodf (),
@@ -169,7 +169,7 @@ when a domain error occurred for an infinite
.SH SEE ALSO
.BR remainder (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fmtmsg.3 b/man3/fmtmsg.3
index 69d37282c..068995a66 100644
--- a/man3/fmtmsg.3
+++ b/man3/fmtmsg.3
@@ -329,7 +329,7 @@ TO FIX: See mount(8).
.BR addseverity (3),
.BR perror (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fnmatch.3 b/man3/fnmatch.3
index 257a75db6..97b0d2ca4 100644
--- a/man3/fnmatch.3
+++ b/man3/fnmatch.3
@@ -144,7 +144,7 @@ flags are GNU extensions.
.BR wordexp (3),
.BR glob (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fopen.3 b/man3/fopen.3
index e57d7fc39..a21524e9a 100644
--- a/man3/fopen.3
+++ b/man3/fopen.3
@@ -55,10 +55,10 @@ fopen, fdopen, freopen \- stream open functions
.BI "FILE *freopen(const char *" pathname ", const char *" mode ", FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fdopen ():
_POSIX_C_SOURCE
@@ -412,7 +412,7 @@ parses at most 5 characters in
.BR fopencookie (3),
.BR open_memstream (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fopencookie.3 b/man3/fopencookie.3
index e74d4d9a4..76878e80a 100644
--- a/man3/fopencookie.3
+++ b/man3/fopencookie.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH FOPENCOOKIE 3 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH FOPENCOOKIE 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
fopencookie \- opening a custom stream
.SH SYNOPSIS
@@ -392,9 +392,7 @@ main(int argc, char *argv[])
};
FILE *stream;
struct memfile_cookie mycookie;
- ssize_t nread;
- long p;
- int j;
+ size_t nread;
char buf[1000];
/* Set up the cookie before calling fopencookie() */
@@ -417,7 +415,7 @@ main(int argc, char *argv[])
/* Write command\-line arguments to our file */
- for (j = 1; j < argc; j++)
+ for (int j = 1; j < argc; j++)
if (fputs(argv[j], stream) == EOF) {
perror("fputs");
exit(EXIT_FAILURE);
@@ -425,22 +423,22 @@ main(int argc, char *argv[])
/* Read two bytes out of every five, until EOF */
- for (p = 0; ; p += 5) {
+ for (long p = 0; ; p += 5) {
if (fseek(stream, p, SEEK_SET) == \-1) {
perror("fseek");
exit(EXIT_FAILURE);
}
nread = fread(buf, 1, 2, stream);
- if (nread == \-1) {
- perror("fread");
- exit(EXIT_FAILURE);
- }
if (nread == 0) {
+ if (ferror(stream) != 0) {
+ fprintf(stderr, "fread failed\en");
+ exit(EXIT_FAILURE);
+ }
printf("Reached end of file\en");
break;
}
- printf("/%.*s/\en", nread, buf);
+ printf("/%.*s/\en", (int) nread, buf);
}
exit(EXIT_SUCCESS);
@@ -452,7 +450,7 @@ main(int argc, char *argv[])
.BR fopen (3),
.BR fseek (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fpathconf.3 b/man3/fpathconf.3
index 2028cdb63..93f7a0520 100644
--- a/man3/fpathconf.3
+++ b/man3/fpathconf.3
@@ -284,7 +284,7 @@ memory.
.BR confstr (3),
.BR sysconf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fpclassify.3 b/man3/fpclassify.3
index 772066420..a3e357f43 100644
--- a/man3/fpclassify.3
+++ b/man3/fpclassify.3
@@ -28,10 +28,10 @@ classification macros
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.\" I haven't fully grokked the source to determine the FTM requirements;
.\" in part, the following has been tested by experiment.
@@ -146,7 +146,7 @@ is positive infinity or negative infinity.
.BR isgreater (3),
.BR signbit (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fpurge.3 b/man3/fpurge.3
index 24f26ab7c..a3cca1efe 100644
--- a/man3/fpurge.3
+++ b/man3/fpurge.3
@@ -95,7 +95,7 @@ Usually it is a mistake to want to discard input buffers.
.BR setbuf (3),
.BR stdio_ext (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fputwc.3 b/man3/fputwc.3
index bc0c3d650..bc7c0abee 100644
--- a/man3/fputwc.3
+++ b/man3/fputwc.3
@@ -100,7 +100,7 @@ sequence corresponding to the wide character \fIwc\fP.
.BR fputws (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fputws.3 b/man3/fputws.3
index 1d087b519..301356baa 100644
--- a/man3/fputws.3
+++ b/man3/fputws.3
@@ -74,7 +74,7 @@ string corresponding to the wide-character string \fIws\fP.
.BR fputwc (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fread.3 b/man3/fread.3
index 91abfbf41..90e446f1c 100644
--- a/man3/fread.3
+++ b/man3/fread.3
@@ -136,6 +136,8 @@ Class: 0x02
#include <stdio.h>
#include <stdlib.h>
+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
+
int
main(void)
{
@@ -147,9 +149,7 @@ main(void)
unsigned char buffer[4];
- size_t ret =
- fread(buffer, sizeof(buffer) / sizeof(*buffer), sizeof(*buffer),
- fp);
+ size_t ret = fread(buffer, ARRAY_SIZE(buffer), sizeof(*buffer), fp);
if (ret != sizeof(*buffer)) {
fprintf(stderr, "fread() failed: %zu\en", ret);
exit(EXIT_FAILURE);
@@ -178,7 +178,7 @@ main(void)
.BR ferror (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/frexp.3 b/man3/frexp.3
index bbef76079..8a304e94c 100644
--- a/man3/frexp.3
+++ b/man3/frexp.3
@@ -45,10 +45,10 @@ and integral components
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR frexpf (),
@@ -155,7 +155,7 @@ main(int argc, char *argv[])
.BR ldexp (3),
.BR modf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fseek.3 b/man3/fseek.3
index bc3112e10..8f984f1e7 100644
--- a/man3/fseek.3
+++ b/man3/fseek.3
@@ -190,7 +190,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99.
.BR lseek (2),
.BR fseeko (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fseeko.3 b/man3/fseeko.3
index 60d492067..c7a66e129 100644
--- a/man3/fseeko.3
+++ b/man3/fseeko.3
@@ -34,10 +34,10 @@ fseeko, ftello \- seek to or report file position
.BI "off_t ftello(FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fseeko (),
.BR ftello ():
@@ -116,7 +116,7 @@ POSIX.1-2001, POSIX.1-2008, SUSv2.
.SH SEE ALSO
.BR fseek (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ftime.3 b/man3/ftime.3
index 5649da754..3de8d9582 100644
--- a/man3/ftime.3
+++ b/man3/ftime.3
@@ -114,7 +114,7 @@ glibc 2.1.1 is correct again.
.BR gettimeofday (2),
.BR time (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ftok.3 b/man3/ftok.3
index 0ef700bd5..0baa573ea 100644
--- a/man3/ftok.3
+++ b/man3/ftok.3
@@ -122,7 +122,7 @@ See
.BR stat (2),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fts.3 b/man3/fts.3
index 2f86b326b..bb7b4c3be 100644
--- a/man3/fts.3
+++ b/man3/fts.3
@@ -838,7 +838,7 @@ a program using the LFS APIs (e.g., when compiling with
.BR ftw (3),
.BR qsort (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ftw.3 b/man3/ftw.3
index 86ebc9af1..e914d84a7 100644
--- a/man3/ftw.3
+++ b/man3/ftw.3
@@ -53,10 +53,10 @@ ftw, nftw \- file tree walk
.BI " int " nopenfd );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR nftw ():
_XOPEN_SOURCE >= 500
@@ -509,7 +509,7 @@ main(int argc, char *argv[])
.BR fts (3),
.BR readdir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/futimes.3 b/man3/futimes.3
index 685f6312d..fddddd137 100644
--- a/man3/futimes.3
+++ b/man3/futimes.3
@@ -34,10 +34,10 @@ futimes, lutimes \- change file timestamps
.BI "int lutimes(const char *" filename ", const struct timeval " tv [2]);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR futimes (),
.BR lutimes ():
@@ -114,7 +114,7 @@ Other than Linux, they are available only on the BSDs.
.BR utimensat (2),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/fwide.3 b/man3/fwide.3
index 750b2ef92..c2f80ffcd 100644
--- a/man3/fwide.3
+++ b/man3/fwide.3
@@ -23,10 +23,10 @@ fwide \- set and determine the orientation of a FILE stream
.BI "int fwide(FILE *" stream ", int " mode );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
.BR fwide ():
@@ -94,7 +94,7 @@ directives.
.BR fprintf (3),
.BR fwprintf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gamma.3 b/man3/gamma.3
index 585d3f64e..68d8c6f9b 100644
--- a/man3/gamma.3
+++ b/man3/gamma.3
@@ -20,10 +20,10 @@ gamma, gammaf, gammal \- (logarithm of the) gamma function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR gamma ():
@@ -117,7 +117,7 @@ the "true gamma" function.
.BR signgam (3),
.BR tgamma (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gcvt.3 b/man3/gcvt.3
index 82c93b9e2..add07f16d 100644
--- a/man3/gcvt.3
+++ b/man3/gcvt.3
@@ -37,10 +37,10 @@ gcvt \- convert a floating-point number to a string
.BI "char *gcvt(double " number ", int " ndigit ", char *" buf );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR gcvt ():
.ad l
@@ -100,7 +100,7 @@ may be preferable).
.BR fcvt (3),
.BR sprintf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/get_nprocs_conf.3 b/man3/get_nprocs_conf.3
index e4774fe1f..97c06880e 100644
--- a/man3/get_nprocs_conf.3
+++ b/man3/get_nprocs_conf.3
@@ -105,7 +105,7 @@ main(int argc, char *argv[])
.SH SEE ALSO
.BR nproc (1)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/get_phys_pages.3 b/man3/get_phys_pages.3
index 6747cb7e7..b99bd9645 100644
--- a/man3/get_phys_pages.3
+++ b/man3/get_phys_pages.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH GET_PHYS_PAGES 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GET_PHYS_PAGES 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
get_phys_pages, get_avphys_pages \- get total and available physical
page counts
@@ -30,8 +30,8 @@ page counts
.nf
.B "#include <sys/sysinfo.h>"
.PP
-.B long int get_phys_pages(void);
-.B long int get_avphys_pages(void);
+.B long get_phys_pages(void);
+.B long get_avphys_pages(void);
.fi
.SH DESCRIPTION
The function
@@ -100,7 +100,7 @@ main(int argc, char *argv[])
.SH SEE ALSO
.BR sysconf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getaddrinfo.3 b/man3/getaddrinfo.3
index 98204077d..7c2037161 100644
--- a/man3/getaddrinfo.3
+++ b/man3/getaddrinfo.3
@@ -41,7 +41,7 @@
.\" FIXME . glibc's 2.9 NEWS file documents DCCP and UDP-lite support
.\" and is SCTP support now also there?
.\"
-.TH GETADDRINFO 3 2020-04-11 "GNU" "Linux Programmer's Manual"
+.TH GETADDRINFO 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getaddrinfo, freeaddrinfo, gai_strerror \- network address and
service translation
@@ -60,11 +60,11 @@ service translation
.BI "const char *gai_strerror(int " "errcode" );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getaddrinfo (),
.BR freeaddrinfo (),
@@ -679,7 +679,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- memset(&hints, 0, sizeof(struct addrinfo));
+ memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */
hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */
@@ -711,17 +711,17 @@ main(int argc, char *argv[])
close(sfd);
}
+ freeaddrinfo(result); /* No longer needed */
+
if (rp == NULL) { /* No address succeeded */
fprintf(stderr, "Could not bind\en");
exit(EXIT_FAILURE);
}
- freeaddrinfo(result); /* No longer needed */
-
/* Read datagrams and echo them back to sender */
for (;;) {
- peer_addr_len = sizeof(struct sockaddr_storage);
+ peer_addr_len = sizeof(peer_addr);
nread = recvfrom(sfd, buf, BUF_SIZE, 0,
(struct sockaddr *) &peer_addr, &peer_addr_len);
if (nread == \-1)
@@ -763,7 +763,7 @@ main(int argc, char *argv[])
{
struct addrinfo hints;
struct addrinfo *result, *rp;
- int sfd, s, j;
+ int sfd, s;
size_t len;
ssize_t nread;
char buf[BUF_SIZE];
@@ -775,7 +775,7 @@ main(int argc, char *argv[])
/* Obtain address(es) matching host/port */
- memset(&hints, 0, sizeof(struct addrinfo));
+ memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */
hints.ai_flags = 0;
@@ -804,17 +804,17 @@ main(int argc, char *argv[])
close(sfd);
}
+ freeaddrinfo(result); /* No longer needed */
+
if (rp == NULL) { /* No address succeeded */
fprintf(stderr, "Could not connect\en");
exit(EXIT_FAILURE);
}
- freeaddrinfo(result); /* No longer needed */
-
/* Send remaining command\-line arguments as separate
datagrams, and read responses from server */
- for (j = 3; j < argc; j++) {
+ for (int j = 3; j < argc; j++) {
len = strlen(argv[j]) + 1;
/* +1 for terminating null byte */
@@ -852,7 +852,7 @@ main(int argc, char *argv[])
.BR hostname (7),
.BR ip (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getaddrinfo_a.3 b/man3/getaddrinfo_a.3
index e674d5493..c04143c66 100644
--- a/man3/getaddrinfo_a.3
+++ b/man3/getaddrinfo_a.3
@@ -27,7 +27,7 @@
.\" References: http://people.redhat.com/drepper/asynchnl.pdf,
.\" http://www.imperialviolet.org/2005/06/01/asynchronous-dns-lookups-with-glibc.html
.\"
-.TH GETADDRINFO_A 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETADDRINFO_A 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getaddrinfo_a, gai_suspend, gai_error, gai_cancel \- asynchronous
network address and service translation
@@ -359,7 +359,7 @@ Here is the program source code
int
main(int argc, char *argv[])
{
- int i, ret;
+ int ret;
struct gaicb *reqs[argc \- 1];
char host[NI_MAXHOST];
struct addrinfo *res;
@@ -369,7 +369,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- for (i = 0; i < argc \- 1; i++) {
+ for (int i = 0; i < argc \- 1; i++) {
reqs[i] = malloc(sizeof(*reqs[0]));
if (reqs[i] == NULL) {
perror("malloc");
@@ -386,7 +386,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- for (i = 0; i < argc \- 1; i++) {
+ for (int i = 0; i < argc \- 1; i++) {
printf("%s: ", reqs[i]\->ar_name);
ret = gai_error(reqs[i]);
if (ret == 0) {
@@ -473,7 +473,7 @@ add_requests(void)
while ((host = strtok(NULL, " "))) {
nreqs++;
- reqs = realloc(reqs, nreqs * sizeof(reqs[0]));
+ reqs = realloc(reqs, sizeof(reqs[0]) * nreqs);
reqs[nreqs \- 1] = calloc(1, sizeof(*reqs[0]));
reqs[nreqs \- 1]\->ar_name = strdup(host);
@@ -495,7 +495,7 @@ static void
wait_requests(void)
{
char *id;
- int i, ret, n;
+ int ret, n;
struct gaicb const **wait_reqs = calloc(nreqs, sizeof(*wait_reqs));
/* NULL elements are ignored by gai_suspend(). */
@@ -516,7 +516,7 @@ wait_requests(void)
return;
}
- for (i = 0; i < nreqs; i++) {
+ for (int i = 0; i < nreqs; i++) {
if (wait_reqs[i] == NULL)
continue;
@@ -554,11 +554,11 @@ cancel_requests(void)
static void
list_requests(void)
{
- int i, ret;
+ int ret;
char host[NI_MAXHOST];
struct addrinfo *res;
- for (i = 0; i < nreqs; i++) {
+ for (int i = 0; i < nreqs; i++) {
printf("[%02d] %s: ", i, reqs[i]\->ar_name);
ret = gai_error(reqs[i]);
@@ -622,7 +622,7 @@ main(int argc, char *argv[])
.BR ip (7),
.BR sigevent (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getauxval.3 b/man3/getauxval.3
index fbe8a7ee9..0cb67d8be 100644
--- a/man3/getauxval.3
+++ b/man3/getauxval.3
@@ -286,7 +286,7 @@ was zero.
.BR vdso (7),
.BR ld\-linux.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getcontext.3 b/man3/getcontext.3
index 36edf9fc2..754f425ec 100644
--- a/man3/getcontext.3
+++ b/man3/getcontext.3
@@ -55,7 +55,7 @@ The
type is a structure that has at least
the following fields:
.PP
-.in +4
+.in +4n
.EX
typedef struct ucontext_t {
struct ucontext_t *uc_link;
@@ -205,7 +205,7 @@ instead.
.BR makecontext (3),
.BR sigsetjmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getcwd.3 b/man3/getcwd.3
index 4a51dcd9a..67ce2a781 100644
--- a/man3/getcwd.3
+++ b/man3/getcwd.3
@@ -43,10 +43,10 @@ getcwd, getwd, get_current_dir_name \- get current working directory
.B "char *get_current_dir_name(void);"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR get_current_dir_name ():
.RS
@@ -322,7 +322,7 @@ from such a pathname will now result in failure with
.BR free (3),
.BR malloc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getdate.3 b/man3/getdate.3
index d51206c0b..a1c5e09c3 100644
--- a/man3/getdate.3
+++ b/man3/getdate.3
@@ -27,7 +27,7 @@
.\" Modified, 2001-12-26, aeb
.\" 2008-09-07, mtk, Various rewrites; added an example program.
.\"
-.TH GETDATE 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH GETDATE 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
getdate, getdate_r \- convert a date-plus-time string to broken-down time
.SH SYNOPSIS
@@ -41,10 +41,10 @@ getdate, getdate_r \- convert a date-plus-time string to broken-down time
.PP
.BI "int getdate_r(const char *" string ", struct tm *" res );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getdate ():
.ad l
@@ -290,9 +290,8 @@ int
main(int argc, char *argv[])
{
struct tm *tmp;
- int j;
- for (j = 1; j < argc; j++) {
+ for (int j = 1; j < argc; j++) {
tmp = getdate(argv[j]);
if (tmp == NULL) {
@@ -323,7 +322,7 @@ main(int argc, char *argv[])
.BR strftime (3),
.BR strptime (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getdirentries.3 b/man3/getdirentries.3
index ec81ab7bb..cc4243bd1 100644
--- a/man3/getdirentries.3
+++ b/man3/getdirentries.3
@@ -33,10 +33,10 @@ getdirentries \- get directory entries in a filesystem-independent format
.BI "ssize_t getdirentries(int " fd ", char *" buf ", size_t " nbytes
.BI ", off_t *" basep );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getdirentries ():
Since glibc 2.19:
@@ -88,7 +88,7 @@ instead.
.BR lseek (2),
.BR open (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getdtablesize.3 b/man3/getdtablesize.3
index bbe86b429..d2d7e7e03 100644
--- a/man3/getdtablesize.3
+++ b/man3/getdtablesize.3
@@ -32,10 +32,10 @@ getdtablesize \- get file descriptor table size
.PP
.B int getdtablesize(void);
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getdtablesize ():
.ad l
@@ -106,7 +106,7 @@ when that fails.
.BR getrlimit (2),
.BR open (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getentropy.3 b/man3/getentropy.3
index 61f1a4dcf..c1d1937be 100644
--- a/man3/getentropy.3
+++ b/man3/getentropy.3
@@ -30,10 +30,10 @@ getentropy \- fill a buffer with random bytes
.PP
.BI "int getentropy(void *" buffer ", size_t " length );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getentropy ():
.br
@@ -122,7 +122,7 @@ and will return only once the entropy pool has been initialized.
.BR urandom (4),
.BR random (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getenv.3 b/man3/getenv.3
index 383ceee72..0327b89dd 100644
--- a/man3/getenv.3
+++ b/man3/getenv.3
@@ -42,10 +42,10 @@ getenv, secure_getenv \- get an environment variable
.BI "char *secure_getenv(const char *" name );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR secure_getenv ():
_GNU_SOURCE
@@ -148,7 +148,7 @@ flag contained in the auxiliary vector passed from the kernel to user space.
.BR capabilities (7),
.BR environ (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getfsent.3 b/man3/getfsent.3
index 8f71c82b0..fb452ad7f 100644
--- a/man3/getfsent.3
+++ b/man3/getfsent.3
@@ -161,7 +161,7 @@ for use under Linux.
.BR getmntent (3),
.BR fstab (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getgrent.3 b/man3/getgrent.3
index 59d5266df..88d03c20a 100644
--- a/man3/getgrent.3
+++ b/man3/getgrent.3
@@ -42,10 +42,10 @@ getgrent, setgrent, endgrent \- get group file entry
.B void endgrent(void);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.PD 0
.ad l
@@ -215,7 +215,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.BR putgrent (3),
.BR group (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getgrent_r.3 b/man3/getgrent_r.3
index 308062352..94e7b2dae 100644
--- a/man3/getgrent_r.3
+++ b/man3/getgrent_r.3
@@ -21,7 +21,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH GETGRENT_R 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETGRENT_R 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getgrent_r, fgetgrent_r \- get group file entry reentrantly
.SH SYNOPSIS
@@ -35,10 +35,10 @@ getgrent_r, fgetgrent_r \- get group file entry reentrantly
.BI " size_t " buflen ", struct group **" gbufp );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getgrent_r ():
_GNU_SOURCE
@@ -174,26 +174,28 @@ in the stream with all other threads.
#define _GNU_SOURCE
#include <grp.h>
#include <stdio.h>
+#include <stdint.h>
#include <stdlib.h>
#define BUFLEN 4096
int
main(void)
{
- struct group grp, *grpp;
+ struct group grp;
+ struct group *grpp;
char buf[BUFLEN];
int i;
setgrent();
while (1) {
- i = getgrent_r(&grp, buf, BUFLEN, &grpp);
+ i = getgrent_r(&grp, buf, sizeof(buf), &grpp);
if (i)
break;
- printf("%s (%d):", grpp\->gr_name, grpp\->gr_gid);
- for (i = 0; ; i++) {
- if (grpp\->gr_mem[i] == NULL)
+ printf("%s (%jd):", grpp\->gr_name, (intmax_t) grpp\->gr_gid);
+ for (int j = 0; ; j++) {
+ if (grpp\->gr_mem[j] == NULL)
break;
- printf(" %s", grpp\->gr_mem[i]);
+ printf(" %s", grpp\->gr_mem[j]);
}
printf("\en");
}
@@ -218,7 +220,7 @@ main(void)
.BR putgrent (3),
.BR group (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getgrnam.3 b/man3/getgrnam.3
index b92262a8b..e29c47647 100644
--- a/man3/getgrnam.3
+++ b/man3/getgrnam.3
@@ -49,11 +49,11 @@ getgrnam, getgrnam_r, getgrgid, getgrgid_r \- get group file entry
.BI " char *" buf ", size_t " buflen ", struct group **" result );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getgrnam_r (),
.BR getgrgid_r ():
@@ -257,7 +257,7 @@ situation: 0, ENOENT, EBADF, ESRCH, EWOULDBLOCK, EPERM, and probably others.
.BR setgrent (3),
.BR group (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getgrouplist.3 b/man3/getgrouplist.3
index 3f8897e3b..6f5cf6874 100644
--- a/man3/getgrouplist.3
+++ b/man3/getgrouplist.3
@@ -26,7 +26,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH GETGROUPLIST 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETGROUPLIST 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getgrouplist \- get list of groups to which a user belongs
.SH SYNOPSIS
@@ -36,10 +36,10 @@ getgrouplist \- get list of groups to which a user belongs
.br
.BI " gid_t *" groups ", int *" ngroups );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getgrouplist ():
Since glibc 2.19:
@@ -152,8 +152,7 @@ ngroups = 3
int
main(int argc, char *argv[])
{
- int j, ngroups;
- gid_t *groups;
+ int ngroups;
struct passwd *pw;
struct group *gr;
@@ -164,7 +163,7 @@ main(int argc, char *argv[])
ngroups = atoi(argv[2]);
- groups = malloc(ngroups * sizeof (gid_t));
+ gid_t *groups = malloc(sizeof(*groups) * ngroups);
if (groups == NULL) {
perror("malloc");
exit(EXIT_FAILURE);
@@ -189,7 +188,7 @@ main(int argc, char *argv[])
/* Display list of retrieved groups, along with group names */
fprintf(stderr, "ngroups = %d\en", ngroups);
- for (j = 0; j < ngroups; j++) {
+ for (int j = 0; j < ngroups; j++) {
printf("%d", groups[j]);
gr = getgrgid(groups[j]);
if (gr != NULL)
@@ -208,7 +207,7 @@ main(int argc, char *argv[])
.BR group (5),
.BR passwd (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gethostbyname.3 b/man3/gethostbyname.3
index f9c5ade23..685d283b8 100644
--- a/man3/gethostbyname.3
+++ b/man3/gethostbyname.3
@@ -85,10 +85,10 @@ gethostent_r \- get network host entry
.BI " struct hostent **" result ", int *" h_errnop );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.PD 0
.ad l
@@ -548,7 +548,7 @@ that are expressed in hexadecimal.
.BR named (8)
.\" .BR resolv+ (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gethostid.3 b/man3/gethostid.3
index 11eab1dc5..2dc92ab8e 100644
--- a/man3/gethostid.3
+++ b/man3/gethostid.3
@@ -36,10 +36,10 @@ gethostid, sethostid \- get or set the unique identifier of the current host
.br
.BI "int sethostid(long " hostid );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR gethostid ():
@@ -147,7 +147,7 @@ It is impossible to ensure that the identifier is globally unique.
.BR hostid (1),
.BR gethostbyname (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getifaddrs.3 b/man3/getifaddrs.3
index f07732ba0..197c005f0 100644
--- a/man3/getifaddrs.3
+++ b/man3/getifaddrs.3
@@ -33,7 +33,7 @@
.\" for glibc specificities, provide an example.
.\" 2009-01-14 mtk, many edits and changes, rewrote example program.
.\"
-.TH GETIFADDRS 3 2020-04-11 "GNU" "Linux Programmer's Manual"
+.TH GETIFADDRS 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getifaddrs, freeifaddrs \- get interface addresses
.SH SYNOPSIS
@@ -263,7 +263,7 @@ wlp3s0 AF_INET6 (10)
int main(int argc, char *argv[])
{
- struct ifaddrs *ifaddr, *ifa;
+ struct ifaddrs *ifaddr;
int family, s;
char host[NI_MAXHOST];
@@ -275,7 +275,8 @@ int main(int argc, char *argv[])
/* Walk through linked list, maintaining head pointer so we
can free list later */
- for (ifa = ifaddr; ifa != NULL; ifa = ifa\->ifa_next) {
+ for (struct ifaddrs *ifa = ifaddr; ifa != NULL;
+ ifa = ifa\->ifa_next) {
if (ifa\->ifa_addr == NULL)
continue;
@@ -327,7 +328,7 @@ int main(int argc, char *argv[])
.BR packet (7),
.BR ifconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getipnodebyname.3 b/man3/getipnodebyname.3
index fc3b6f9f2..e4b92eae4 100644
--- a/man3/getipnodebyname.3
+++ b/man3/getipnodebyname.3
@@ -269,7 +269,7 @@ call them deprecated.
.BR inet_ntop (3),
.BR inet_pton (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getline.3 b/man3/getline.3
index e2456d6f1..f4c50b89b 100644
--- a/man3/getline.3
+++ b/man3/getline.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH GETLINE 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETLINE 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getline, getdelim \- delimited string input
.SH SYNOPSIS
@@ -36,10 +36,10 @@ getline, getdelim \- delimited string input
", FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR getline (),
@@ -184,7 +184,7 @@ main(int argc, char *argv[])
}
while ((nread = getline(&line, &len, stream)) != \-1) {
- printf("Retrieved line of length %zu:\en", nread);
+ printf("Retrieved line of length %zd:\en", nread);
fwrite(line, nread, 1, stdout);
}
@@ -200,7 +200,7 @@ main(int argc, char *argv[])
.BR fread (3),
.BR scanf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getloadavg.3 b/man3/getloadavg.3
index 8dab26adb..89f18d797 100644
--- a/man3/getloadavg.3
+++ b/man3/getloadavg.3
@@ -41,10 +41,10 @@ getloadavg \- get system load averages
.BI "int getloadavg(double " loadavg[] ", int " nelem );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getloadavg ():
.nf
@@ -94,7 +94,7 @@ Present on the BSDs and Solaris.
.BR uptime (1),
.BR proc (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getlogin.3 b/man3/getlogin.3
index 3105900d9..e111082b5 100644
--- a/man3/getlogin.3
+++ b/man3/getlogin.3
@@ -39,10 +39,10 @@ getlogin, getlogin_r, cuserid \- get username
.PP
.BI "char *cuserid(char *" string );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getlogin_r ():
.\" Deprecated: _REENTRANT ||
@@ -248,7 +248,7 @@ what you meant.
.BR getuid (2),
.BR utmp (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getmntent.3 b/man3/getmntent.3
index b902e9083..455f1646a 100644
--- a/man3/getmntent.3
+++ b/man3/getmntent.3
@@ -55,10 +55,10 @@ getmntent_r \- get filesystem descriptor file entry
.BI " char *" buf ", int " buflen );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getmntent_r ():
Since glibc 2.19:
@@ -259,7 +259,7 @@ a wrapper around the system call
.BR fstab (5),
.BR mount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getnameinfo.3 b/man3/getnameinfo.3
index 8ecd0c9b0..8328a9218 100644
--- a/man3/getnameinfo.3
+++ b/man3/getnameinfo.3
@@ -20,11 +20,11 @@ getnameinfo \- address-to-name translation in protocol-independent manner
.BI " char *" "serv" ", socklen_t " "servlen" ", int " "flags" );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getnameinfo ():
Since glibc 2.22: _POSIX_C_SOURCE >= 201112L
@@ -330,7 +330,7 @@ Proceedings of the freenix track:
.UR http://www.usenix.org\:/publications\:/library\:/proceedings\:/usenix2000\:/freenix\:/metzprotocol.html
.UE .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getnetent.3 b/man3/getnetent.3
index 6805c3c20..bf556a54b 100644
--- a/man3/getnetent.3
+++ b/man3/getnetent.3
@@ -210,7 +210,7 @@ was of type
.br
RFC\ 1101
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getnetent_r.3 b/man3/getnetent_r.3
index 9a38e35fd..92041fd9c 100644
--- a/man3/getnetent_r.3
+++ b/man3/getnetent_r.3
@@ -46,11 +46,11 @@ network entry (reentrant)
.BI " int *" h_errnop );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getnetent_r (),
.BR getnetbyname_r (),
@@ -163,7 +163,7 @@ though typically with different calling signatures.
.BR getnetent (3),
.BR networks (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getopt.3 b/man3/getopt.3
index 50ea6b3ec..a14854e21 100644
--- a/man3/getopt.3
+++ b/man3/getopt.3
@@ -64,11 +64,11 @@ optarg, optind, opterr, optopt \- Parse command-line options
.BI " const struct option *" longopts ", int *" longindex );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getopt ():
_POSIX_C_SOURCE\ >=\ 2 || _XOPEN_SOURCE
@@ -154,7 +154,7 @@ By default,
.BR getopt ()
permutes the contents of \fIargv\fP as it
scans, so that eventually all the nonoptions are at the end.
-Two other modes are also implemented.
+Two other scanning modes are also implemented.
If the first character of
\fIoptstring\fP is \(aq+\(aq or the environment variable
.B POSIXLY_CORRECT
@@ -538,7 +538,7 @@ main(int argc, char **argv)
.BR getopt (1),
.BR getsubopt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getpass.3 b/man3/getpass.3
index e40365f35..3df7d9d2b 100644
--- a/man3/getpass.3
+++ b/man3/getpass.3
@@ -29,10 +29,10 @@ getpass \- get a password
.PP
.BI "char *getpass(const char *" prompt );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getpass ():
.ad l
@@ -165,7 +165,7 @@ leaving the cleartext password visible in the process's address space.
.SH SEE ALSO
.BR crypt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getprotoent.3 b/man3/getprotoent.3
index 7a0045b0e..97286d443 100644
--- a/man3/getprotoent.3
+++ b/man3/getprotoent.3
@@ -196,7 +196,7 @@ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
.BR getservent (3),
.BR protocols (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getprotoent_r.3 b/man3/getprotoent_r.3
index 934ff5296..975d53afd 100644
--- a/man3/getprotoent_r.3
+++ b/man3/getprotoent_r.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH GETPROTOENT_R 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETPROTOENT_R 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getprotoent_r, getprotobyname_r, getprotobynumber_r \- get
protocol entry (reentrant)
@@ -43,11 +43,11 @@ protocol entry (reentrant)
.BI " size_t " buflen ", struct protoent **" result );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getprotoent_r (),
.BR getprotobyname_r (),
@@ -197,7 +197,6 @@ main(int argc, char *argv[])
struct protoent result_buf;
struct protoent *result;
char buf[MAX_BUF];
- char **p;
if (argc < 2) {
printf("Usage: %s proto\-name [buflen]\en", argv[0]);
@@ -245,7 +244,7 @@ main(int argc, char *argv[])
printf("p_name=%s; p_proto=%d; aliases=",
result_buf.p_name, result_buf.p_proto);
- for (p = result_buf.p_aliases; *p != NULL; p++)
+ for (char **p = result_buf.p_aliases; *p != NULL; p++)
printf("%s ", *p);
printf("\en");
@@ -256,7 +255,7 @@ main(int argc, char *argv[])
.BR getprotoent (3),
.BR protocols (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getpt.3 b/man3/getpt.3
index 065595f29..03e8897c1 100644
--- a/man3/getpt.3
+++ b/man3/getpt.3
@@ -68,7 +68,7 @@ instead.
.BR ptmx (4),
.BR pty (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getpw.3 b/man3/getpw.3
index 39e5c3a2a..401f6c50c 100644
--- a/man3/getpw.3
+++ b/man3/getpw.3
@@ -137,7 +137,7 @@ It is obsoleted by
.BR setpwent (3),
.BR passwd (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getpwent.3 b/man3/getpwent.3
index b89c08f8f..68b21a4da 100644
--- a/man3/getpwent.3
+++ b/man3/getpwent.3
@@ -45,10 +45,10 @@ getpwent, setpwent, endpwent \- get password file entry
.B void endpwent(void);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR getpwent (),
@@ -199,7 +199,7 @@ field is not specified in POSIX, but is present on most implementations.
.BR putpwent (3),
.BR passwd (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getpwent_r.3 b/man3/getpwent_r.3
index ed51cb429..c959a4b1b 100644
--- a/man3/getpwent_r.3
+++ b/man3/getpwent_r.3
@@ -21,7 +21,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH GETPWENT_R 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETPWENT_R 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getpwent_r, fgetpwent_r \- get passwd file entry reentrantly
.SH SYNOPSIS
@@ -35,10 +35,10 @@ getpwent_r, fgetpwent_r \- get passwd file entry reentrantly
.BI " size_t " buflen ", struct passwd **" pwbufp );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getpwent_r (),
Since glibc 2.19:
@@ -179,22 +179,24 @@ in the stream with all other threads.
#define _GNU_SOURCE
#include <pwd.h>
#include <stdio.h>
+#include <stdint.h>
#define BUFLEN 4096
int
main(void)
{
- struct passwd pw, *pwp;
+ struct passwd pw;
+ struct passwd *pwp;
char buf[BUFLEN];
int i;
setpwent();
while (1) {
- i = getpwent_r(&pw, buf, BUFLEN, &pwp);
+ i = getpwent_r(&pw, buf, sizeof(buf), &pwp);
if (i)
break;
- printf("%s (%d)\etHOME %s\etSHELL %s\en", pwp\->pw_name,
- pwp\->pw_uid, pwp\->pw_dir, pwp\->pw_shell);
+ printf("%s (%jd)\etHOME %s\etSHELL %s\en", pwp\->pw_name,
+ (intmax_t) pwp\->pw_uid, pwp\->pw_dir, pwp\->pw_shell);
}
endpwent();
exit(EXIT_SUCCESS);
@@ -218,7 +220,7 @@ main(void)
.BR putpwent (3),
.BR passwd (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getpwnam.3 b/man3/getpwnam.3
index c02bf316b..119576c6e 100644
--- a/man3/getpwnam.3
+++ b/man3/getpwnam.3
@@ -34,7 +34,7 @@
.\" Modified 2003-11-15 by aeb
.\" 2008-11-07, mtk, Added an example program for getpwnam_r().
.\"
-.TH GETPWNAM 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETPWNAM 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getpwnam, getpwnam_r, getpwuid, getpwuid_r \- get password file entry
.SH SYNOPSIS
@@ -53,10 +53,10 @@ getpwnam, getpwnam_r, getpwuid, getpwuid_r \- get password file entry
.BI " char *" buf ", size_t " buflen ", struct passwd **" result );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR getpwnam_r (),
@@ -283,6 +283,7 @@ supplied as a command-line argument.
.PP
.EX
#include <pwd.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -323,7 +324,8 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- printf("Name: %s; UID: %ld\en", pwd.pw_gecos, (long) pwd.pw_uid);
+ printf("Name: %s; UID: %jd\en", pwd.pw_gecos,
+ (intmax_t) pwd.pw_uid);
exit(EXIT_SUCCESS);
}
.EE
@@ -338,7 +340,7 @@ main(int argc, char *argv[])
.BR setpwent (3),
.BR passwd (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getrpcent.3 b/man3/getrpcent.3
index 476535084..8c3fbbea6 100644
--- a/man3/getrpcent.3
+++ b/man3/getrpcent.3
@@ -130,7 +130,7 @@ to be saved.
.BR rpcinfo (8),
.BR ypserv (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getrpcent_r.3 b/man3/getrpcent_r.3
index ee47cad52..32ef1e138 100644
--- a/man3/getrpcent_r.3
+++ b/man3/getrpcent_r.3
@@ -43,11 +43,11 @@ RPC entry (reentrant)
.BI " size_t " buflen ", struct rpcent **" result );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getrpcent_r (),
.BR getrpcbyname_r (),
@@ -152,7 +152,7 @@ though typically with different calling signatures.
.BR getrpcent (3),
.BR rpc (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getrpcport.3 b/man3/getrpcport.3
index 0bfec9af6..a53f65732 100644
--- a/man3/getrpcport.3
+++ b/man3/getrpcport.3
@@ -52,7 +52,7 @@ T} Thread safety MT-Safe env locale
Not in POSIX.1.
Present on the BSDs, Solaris, and many other systems.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gets.3 b/man3/gets.3
index 2daddecd7..5169d3d4c 100644
--- a/man3/gets.3
+++ b/man3/gets.3
@@ -119,7 +119,7 @@ http://cwe.mitre.org/data/definitions/242.html
.BR unlocked_stdio (3),
.BR feature_test_macros (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getservent.3 b/man3/getservent.3
index d2b372415..e2ffe5de7 100644
--- a/man3/getservent.3
+++ b/man3/getservent.3
@@ -213,7 +213,7 @@ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
.BR getservent_r (3),
.BR services (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getservent_r.3 b/man3/getservent_r.3
index 2ad159f72..eaaaf1d3d 100644
--- a/man3/getservent_r.3
+++ b/man3/getservent_r.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH GETSERVENT_R 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH GETSERVENT_R 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
getservent_r, getservbyname_r, getservbyport_r \- get
service entry (reentrant)
@@ -43,11 +43,11 @@ service entry (reentrant)
.BI " size_t " buflen ", struct servent **" result );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getservent_r (),
.BR getservbyname_r (),
@@ -195,7 +195,6 @@ main(int argc, char *argv[])
struct servent *result;
char buf[MAX_BUF];
char *protop;
- char **p;
if (argc < 3) {
printf("Usage: %s port\-num proto\-name [buflen]\en", argv[0]);
@@ -248,7 +247,7 @@ main(int argc, char *argv[])
printf("s_name=%s; s_proto=%s; s_port=%d; aliases=",
result_buf.s_name, result_buf.s_proto,
ntohs(result_buf.s_port));
- for (p = result_buf.s_aliases; *p != NULL; p++)
+ for (char **p = result_buf.s_aliases; *p != NULL; p++)
printf("%s ", *p);
printf("\en");
@@ -259,7 +258,7 @@ main(int argc, char *argv[])
.BR getservent (3),
.BR services (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getspnam.3 b/man3/getspnam.3
index 5e49a64b3..3d01eee27 100644
--- a/man3/getspnam.3
+++ b/man3/getspnam.3
@@ -49,10 +49,10 @@ lckpwdf, ulckpwdf \- get shadow password file entry
.BI " char *" buf ", size_t " buflen ", struct spwd **" spbufp );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR getspent_r (),
@@ -314,7 +314,7 @@ However, many other systems provide a similar API.
.BR getpwnam_r (3),
.BR shadow (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getsubopt.3 b/man3/getsubopt.3
index 3464c7cdc..c101e65ab 100644
--- a/man3/getsubopt.3
+++ b/man3/getsubopt.3
@@ -31,10 +31,10 @@ getsubopt \- parse suboption arguments from a string
.BI "int getsubopt(char **"optionp ", char * const *" tokens \
", char **" valuep );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getsubopt ():
.ad l
@@ -239,7 +239,7 @@ main(int argc, char **argv)
.SH SEE ALSO
.BR getopt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getttyent.3 b/man3/getttyent.3
index e4a610082..dc34a298e 100644
--- a/man3/getttyent.3
+++ b/man3/getttyent.3
@@ -96,7 +96,7 @@ and the functions described above, are not used.
.BR ttyname (3),
.BR ttyslot (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getumask.3 b/man3/getumask.3
index 933eb8baf..2c672b8d7 100644
--- a/man3/getumask.3
+++ b/man3/getumask.3
@@ -66,7 +66,7 @@ for a thread-safe method of discovering a process's umask.)
.SH SEE ALSO
.BR umask (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getusershell.3 b/man3/getusershell.3
index 6d40e1151..be26195ab 100644
--- a/man3/getusershell.3
+++ b/man3/getusershell.3
@@ -41,10 +41,10 @@ getusershell, setusershell, endusershell \- get permitted user shells
.B void endusershell(void);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR getusershell (),
@@ -114,7 +114,7 @@ T} Thread safety MT-Unsafe
.SH SEE ALSO
.BR shells (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getutent.3 b/man3/getutent.3
index e155c11c6..fb62994c4 100644
--- a/man3/getutent.3
+++ b/man3/getutent.3
@@ -229,7 +229,7 @@ All these functions are obsolete now on non-Linux systems.
POSIX.1-2001 and POSIX.1-2008, following SUSv1,
does not have any of these functions, but instead uses
.PP
-.in +4n
+.RS 4
.EX
.B #include <utmpx.h>
.PP
@@ -240,7 +240,7 @@ does not have any of these functions, but instead uses
.B void setutxent(void);
.B void endutxent(void);
.EE
-.in
+.RE
.PP
These functions are provided by glibc,
and perform the same task as their equivalents without the "x", but use
@@ -271,19 +271,16 @@ is an alias for
The above functions are not thread-safe.
Glibc adds reentrant versions
.PP
-.in +4n
-.EX
+.nf
.B #include <utmp.h>
-.PP
+
.BI "int getutent_r(struct utmp *" ubuf ", struct utmp **" ubufp );
-.PP
.BI "int getutid_r(struct utmp *" ut ,
.BI " struct utmp *" ubuf ", struct utmp **" ubufp );
-.PP
.BI "int getutline_r(struct utmp *" ut ,
.BI " struct utmp *" ubuf ", struct utmp **" ubufp );
.EE
-.in
+.fi
.PP
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
@@ -362,7 +359,7 @@ main(int argc, char *argv[])
.BR getutmp (3),
.BR utmp (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getutmp.3 b/man3/getutmp.3
index c38c3ff65..a249d07eb 100644
--- a/man3/getutmp.3
+++ b/man3/getutmp.3
@@ -84,7 +84,7 @@ and the fields have the same sizes.
.BR getutent (3),
.BR utmp (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getw.3 b/man3/getw.3
index 945f2fdc0..c90f753d0 100644
--- a/man3/getw.3
+++ b/man3/getw.3
@@ -34,10 +34,10 @@ getw, putw \- input and output of words (ints)
.BI "int putw(int " w ", FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR getw (),
.BR putw ():
@@ -103,7 +103,7 @@ can be used to distinguish between the two cases.
.BR getc (3),
.BR putc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/getwchar.3 b/man3/getwchar.3
index 10af0d7d0..b5e40d886 100644
--- a/man3/getwchar.3
+++ b/man3/getwchar.3
@@ -84,7 +84,7 @@ convert it to a wide character.
.BR fgetwc (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gid_t.3 b/man3/gid_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/gid_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/glob.3 b/man3/glob.3
index 060f6f9e6..375d2b5c2 100644
--- a/man3/glob.3
+++ b/man3/glob.3
@@ -360,7 +360,7 @@ execvp("ls", &globbuf.gl_pathv[0]);
.BR wordexp (3),
.BR glob (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gnu_get_libc_version.3 b/man3/gnu_get_libc_version.3
index 3eff43f50..2af90c001 100644
--- a/man3/gnu_get_libc_version.3
+++ b/man3/gnu_get_libc_version.3
@@ -74,7 +74,7 @@ GNU libc release: stable
.SS Program source
\&
.EX
-#include <gnu/libc-version.h>
+#include <gnu/libc\-version.h>
#include <stdlib.h>
#include <stdio.h>
@@ -89,7 +89,7 @@ main(int argc, char *argv[])
.SH SEE ALSO
.BR confstr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/grantpt.3 b/man3/grantpt.3
index d31e2c53c..952148d79 100644
--- a/man3/grantpt.3
+++ b/man3/grantpt.3
@@ -10,10 +10,10 @@ grantpt \- grant access to the slave pseudoterminal
.PP
.BI "int grantpt(int " fd ");"
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR grantpt ():
@@ -105,7 +105,7 @@ glibc build that is typical on many systems).
.BR pts (4),
.BR pty (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/group_member.3 b/man3/group_member.3
index 16c10d517..bf2878755 100644
--- a/man3/group_member.3
+++ b/man3/group_member.3
@@ -30,10 +30,10 @@ group_member \- test whether a process is in a group
.PP
.BI "int group_member(gid_t " gid );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR group_member ():
_GNU_SOURCE
@@ -60,7 +60,7 @@ This function is a nonstandard GNU extension.
.BR getgrouplist (3),
.BR group (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/gsignal.3 b/man3/gsignal.3
index a93a234c0..298153362 100644
--- a/man3/gsignal.3
+++ b/man3/gsignal.3
@@ -38,10 +38,10 @@ gsignal, ssignal \- software signal facility
.BI "sighandler_t ssignal(int " signum ", sighandler_t " action );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR gsignal (),
.BR ssignal ():
@@ -126,7 +126,7 @@ and
.BR signal (2),
.BR raise (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/hash.3 b/man3/hash.3
index aa4d1e927..bc0deab4c 100644
--- a/man3/hash.3
+++ b/man3/hash.3
@@ -169,7 +169,7 @@ Per-Ake Larson, Communications of the ACM, April 1988.
.IR "A New Hash Package for UNIX" ,
Margo Seltzer, USENIX Proceedings, Winter 1991.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/hsearch.3 b/man3/hsearch.3
index bb4f7dd17..7bb52f41b 100644
--- a/man3/hsearch.3
+++ b/man3/hsearch.3
@@ -32,7 +32,7 @@
.\" 2008-09-03, mtk, restructured somewhat, in part after suggestions from
.\" Timothy S. Nelson <wayland@wayland.id.au>
.\"
-.TH HSEARCH 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH HSEARCH 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
hcreate, hdestroy, hsearch, hcreate_r, hdestroy_r,
hsearch_r \- hash table management
@@ -315,12 +315,12 @@ static char *data[] = { "alpha", "bravo", "charlie", "delta",
int
main(void)
{
- ENTRY e, *ep;
- int i;
+ ENTRY e;
+ ENTRY *ep;
hcreate(30);
- for (i = 0; i < 24; i++) {
+ for (int i = 0; i < 24; i++) {
e.key = data[i];
/* data is just an integer, instead of a
pointer to something */
@@ -333,7 +333,7 @@ main(void)
}
}
- for (i = 22; i < 26; i++) {
+ for (int i = 22; i < 26; i++) {
/* print two entries from the table, and
show that two are not in the table */
e.key = data[i];
@@ -351,7 +351,7 @@ main(void)
.BR malloc (3),
.BR tsearch (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/hypot.3 b/man3/hypot.3
index 7014c7c44..dde84b1ec 100644
--- a/man3/hypot.3
+++ b/man3/hypot.3
@@ -44,10 +44,10 @@ hypot, hypotf, hypotl \- Euclidean distance function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR hypot ():
@@ -171,7 +171,7 @@ SVr4, 4.3BSD.
.BR cabs (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iconv.3 b/man3/iconv.3
index c9186eaae..7dcab4eed 100644
--- a/man3/iconv.3
+++ b/man3/iconv.3
@@ -189,7 +189,7 @@ tight restrictions on alignment.
.BR iconv_open (3),
.BR iconvconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iconv_close.3 b/man3/iconv_close.3
index 70059c712..3b827beeb 100644
--- a/man3/iconv_close.3
+++ b/man3/iconv_close.3
@@ -55,7 +55,7 @@ POSIX.1-2001, POSIX.1-2008, SUSv2.
.BR iconv (3),
.BR iconv_open (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iconv_open.3 b/man3/iconv_open.3
index f10a6e424..23d584e4f 100644
--- a/man3/iconv_open.3
+++ b/man3/iconv_open.3
@@ -122,7 +122,7 @@ POSIX.1-2001, POSIX.1-2008, SUSv2.
.BR iconv (3),
.BR iconv_close (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/id_t.3 b/man3/id_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/id_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/if_nameindex.3 b/man3/if_nameindex.3
index 8876841d5..6071ef663 100644
--- a/man3/if_nameindex.3
+++ b/man3/if_nameindex.3
@@ -167,7 +167,7 @@ main(int argc, char *argv[])
.BR if_nametoindex (3),
.BR ifconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/if_nametoindex.3 b/man3/if_nametoindex.3
index e2e269445..89ee0865b 100644
--- a/man3/if_nametoindex.3
+++ b/man3/if_nametoindex.3
@@ -112,7 +112,7 @@ This function first appeared in BSDi.
.BR if_nameindex (3),
.BR ifconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ilogb.3 b/man3/ilogb.3
index 2cd38670e..ee0cff18c 100644
--- a/man3/ilogb.3
+++ b/man3/ilogb.3
@@ -40,10 +40,10 @@ ilogb, ilogbf, ilogbl \- get integer exponent of a floating-point value
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR ilogb ():
@@ -165,7 +165,7 @@ to be set or raise a floating-point exception.
.BR logb (3),
.BR significand (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/imaxdiv_t.3 b/man3/imaxdiv_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/imaxdiv_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/index.3 b/man3/index.3
index 479d180ff..37b95ed4f 100644
--- a/man3/index.3
+++ b/man3/index.3
@@ -94,7 +94,7 @@ instead.
.BR strstr (3),
.BR strtok (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/inet.3 b/man3/inet.3
index c348f263a..c6b47858d 100644
--- a/man3/inet.3
+++ b/man3/inet.3
@@ -64,10 +64,10 @@ inet_netof \- Internet address manipulation routines
.BI "in_addr_t inet_netof(struct in_addr " in );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR inet_aton (),
.BR inet_ntoa ():
@@ -340,7 +340,7 @@ main(int argc, char *argv[])
.BR hosts (5),
.BR networks (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/inet_net_pton.3 b/man3/inet_net_pton.3
index 8c23109d6..14f094ef6 100644
--- a/man3/inet_net_pton.3
+++ b/man3/inet_net_pton.3
@@ -38,10 +38,10 @@ inet_net_pton, inet_net_ntop \- Internet network number conversion
.PP
Link with \fI\-lresolv\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR inet_net_pton (),
.BR inet_net_ntop ():
@@ -390,7 +390,7 @@ main(int argc, char *argv[])
.BR inet (3),
.BR networks (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/inet_ntop.3 b/man3/inet_ntop.3
index 2eb628710..14ec53c50 100644
--- a/man3/inet_ntop.3
+++ b/man3/inet_ntop.3
@@ -133,7 +133,7 @@ See
.BR inet (3),
.BR inet_pton (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/inet_pton.3 b/man3/inet_pton.3
index 99841f2bd..4955c2cc1 100644
--- a/man3/inet_pton.3
+++ b/man3/inet_pton.3
@@ -231,7 +231,7 @@ main(int argc, char *argv[])
.BR inet (3),
.BR inet_ntop (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/initgroups.3 b/man3/initgroups.3
index dd69b6cc3..9fd238532 100644
--- a/man3/initgroups.3
+++ b/man3/initgroups.3
@@ -40,10 +40,10 @@ initgroups \- initialize the supplementary group access list
.BI "int initgroups(const char *" user ", gid_t " group );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR initgroups ():
Since glibc 2.19:
@@ -108,7 +108,7 @@ SVr4, 4.3BSD.
.BR setgroups (2),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/insque.3 b/man3/insque.3
index 56a625115..435be8c9c 100644
--- a/man3/insque.3
+++ b/man3/insque.3
@@ -33,7 +33,7 @@
.\" mtk, 2010-09-09: Noted glibc 2.4 bug, added info on circular
.\" lists, added example program
.\"
-.TH INSQUE 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH INSQUE 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
insque, remque \- insert/remove an item from a queue
.SH SYNOPSIS
@@ -45,10 +45,10 @@ insque, remque \- insert/remove an item from a queue
.BI "void remque(void *" elem );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR insque (),
@@ -65,7 +65,7 @@ The
.BR insque ()
and
.BR remque ()
-functions manipulate doubly-linked lists.
+functions manipulate doubly linked lists.
Each element in the list is a structure of
which the first two elements are a forward and a
backward pointer.
@@ -97,7 +97,7 @@ call should also point to the element.
The
.BR remque ()
function removes the element pointed to by \fIelem\fP from the
-doubly-linked list.
+doubly linked list.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
@@ -180,9 +180,7 @@ struct element {
static struct element *
new_element(void)
{
- struct element *e;
-
- e = malloc(sizeof(struct element));
+ struct element *e = malloc(sizeof(*e));
if (e == NULL) {
fprintf(stderr, "malloc() failed\en");
exit(EXIT_FAILURE);
@@ -204,7 +202,7 @@ main(int argc, char *argv[])
circular = 0;
while ((opt = getopt(argc, argv, "c")) != \-1) {
switch (opt) {
- case 'c':
+ case \(aqc\(aq:
circular = 1;
break;
default:
@@ -259,9 +257,9 @@ main(int argc, char *argv[])
}
.EE
.SH SEE ALSO
-.BR queue (3)
+.BR queue (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/int16_t.3 b/man3/int16_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/int16_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/int32_t.3 b/man3/int32_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/int32_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/int64_t.3 b/man3/int64_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/int64_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/int8_t.3 b/man3/int8_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/int8_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/intN_t.3 b/man3/intN_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/intN_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/intmax_t.3 b/man3/intmax_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/intmax_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/intptr_t.3 b/man3/intptr_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/intptr_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/intro.3 b/man3/intro.3
index 097168a6a..1f39d9a40 100644
--- a/man3/intro.3
+++ b/man3/intro.3
@@ -23,7 +23,7 @@
.\" %%%LICENSE_END
.\"
.\" 2007-10-23 mtk, Nearly a complete rewrite of the earlier page.
-.TH INTRO 3 2017-09-15 "Linux" "Linux Programmer's Manual"
+.TH INTRO 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
intro \- introduction to library functions
.SH DESCRIPTION
@@ -106,9 +106,10 @@ Note that these can be different from page to page!
.BR path_resolution (7),
.BR pthreads (7),
.BR signal (7),
-.BR standards (7)
+.BR standards (7),
+.BR system_data_types (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/isalpha.3 b/man3/isalpha.3
index 19811080a..1feb39235 100644
--- a/man3/isalpha.3
+++ b/man3/isalpha.3
@@ -70,10 +70,10 @@ isprint_l, ispunct_l, isspace_l, isupper_l, isxdigit_l
.BI "int isascii_l(int " c ", locale_t " locale );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR isascii ():
@@ -373,7 +373,7 @@ locale.
.BR ascii (7),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/isatty.3 b/man3/isatty.3
index 343385553..2f468653a 100644
--- a/man3/isatty.3
+++ b/man3/isatty.3
@@ -79,7 +79,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.BR fstat (2),
.BR ttyname (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/isfdtype.3 b/man3/isfdtype.3
index d7a4076b4..1ef93b49f 100644
--- a/man3/isfdtype.3
+++ b/man3/isfdtype.3
@@ -33,10 +33,10 @@ isfdtype \- test file type of a file descriptor
.BI "int isfdtype(int " fd ", int " fdtype );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR isfdtype ():
.ad l
@@ -101,7 +101,7 @@ instead.
.SH SEE ALSO
.BR fstat (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/isgreater.3 b/man3/isgreater.3
index f1f7cb890..5d95c97c1 100644
--- a/man3/isgreater.3
+++ b/man3/isgreater.3
@@ -30,10 +30,10 @@ isunordered \- floating-point relational tests without exception for NaN
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
All functions described here:
@@ -148,7 +148,7 @@ Don't use these functions if NaN is of no concern for you.
.BR fpclassify (3),
.BR isnan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswalnum.3 b/man3/iswalnum.3
index e6ddb1724..d4ec99ae0 100644
--- a/man3/iswalnum.3
+++ b/man3/iswalnum.3
@@ -88,7 +88,7 @@ current locale.
.BR isalnum (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswalpha.3 b/man3/iswalpha.3
index 9e553c107..ff9903b91 100644
--- a/man3/iswalpha.3
+++ b/man3/iswalpha.3
@@ -92,7 +92,7 @@ current locale.
.BR isalpha (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswblank.3 b/man3/iswblank.3
index d7152a9e9..463da2249 100644
--- a/man3/iswblank.3
+++ b/man3/iswblank.3
@@ -23,10 +23,10 @@ iswblank \- test for whitespace wide character
.BI "int iswblank(wint_t " wc );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR iswblank ():
@@ -87,7 +87,7 @@ current locale.
.BR isblank (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswcntrl.3 b/man3/iswcntrl.3
index 471e1e25a..d8d6b4869 100644
--- a/man3/iswcntrl.3
+++ b/man3/iswcntrl.3
@@ -76,7 +76,7 @@ current locale.
.BR iscntrl (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswctype.3 b/man3/iswctype.3
index db5bf4f71..9b8faf45a 100644
--- a/man3/iswctype.3
+++ b/man3/iswctype.3
@@ -90,7 +90,7 @@ current locale.
.BR iswxdigit (3),
.BR wctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswdigit.3 b/man3/iswdigit.3
index dac80a023..ef89f350f 100644
--- a/man3/iswdigit.3
+++ b/man3/iswdigit.3
@@ -91,7 +91,7 @@ current locale.
.BR isdigit (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswgraph.3 b/man3/iswgraph.3
index b43da996b..5c84b957c 100644
--- a/man3/iswgraph.3
+++ b/man3/iswgraph.3
@@ -84,7 +84,7 @@ current locale.
.BR isgraph (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswlower.3 b/man3/iswlower.3
index 7ce7c9f0d..20fb3d60f 100644
--- a/man3/iswlower.3
+++ b/man3/iswlower.3
@@ -102,7 +102,7 @@ because Unicode knows about three cases: upper, lower and title case.
.BR iswctype (3),
.BR towlower (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswprint.3 b/man3/iswprint.3
index 89540e998..0ee6453b7 100644
--- a/man3/iswprint.3
+++ b/man3/iswprint.3
@@ -70,7 +70,7 @@ current locale.
.BR isprint (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswpunct.3 b/man3/iswpunct.3
index eaada332a..d2cbf4022 100644
--- a/man3/iswpunct.3
+++ b/man3/iswpunct.3
@@ -86,7 +86,7 @@ and symbol (math, currency, etc.) characters.
.BR ispunct (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswspace.3 b/man3/iswspace.3
index e7b9d7b52..be5b18e71 100644
--- a/man3/iswspace.3
+++ b/man3/iswspace.3
@@ -78,7 +78,7 @@ current locale.
.BR isspace (3),
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswupper.3 b/man3/iswupper.3
index 475cbc82a..5684a6d93 100644
--- a/man3/iswupper.3
+++ b/man3/iswupper.3
@@ -96,7 +96,7 @@ because Unicode knows about three cases: upper, lower and title case.
.BR iswctype (3),
.BR towupper (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/iswxdigit.3 b/man3/iswxdigit.3
index 032fff9ac..7e09d67fe 100644
--- a/man3/iswxdigit.3
+++ b/man3/iswxdigit.3
@@ -83,7 +83,7 @@ current locale.
.BR iswctype (3),
.BR isxdigit (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/j0.3 b/man3/j0.3
index 9ddb8f074..5aed76ad1 100644
--- a/man3/j0.3
+++ b/man3/j0.3
@@ -56,10 +56,10 @@ Bessel functions of the first kind
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR j0 (),
@@ -191,7 +191,7 @@ between \-8 and 8.
.SH SEE ALSO
.BR y0 (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/key_setsecret.3 b/man3/key_setsecret.3
index 38698e157..441a6ebc8 100644
--- a/man3/key_setsecret.3
+++ b/man3/key_setsecret.3
@@ -89,7 +89,7 @@ These routines were part of the Linux/Doors-project, abandoned by now.
.SH SEE ALSO
.BR crypt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/killpg.3 b/man3/killpg.3
index ca9de81c5..725eff497 100644
--- a/man3/killpg.3
+++ b/man3/killpg.3
@@ -47,10 +47,10 @@ killpg \- send signal to a process group
.PP
.BI "int killpg(int " pgrp ", int " sig );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.TP 4
.BR killpg ():
@@ -134,7 +134,7 @@ is implemented as a library function that makes the call
.BR capabilities (7),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/lconv.3 b/man3/lconv.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/lconv.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/ldexp.3 b/man3/ldexp.3
index 05b0fe987..88fdc541e 100644
--- a/man3/ldexp.3
+++ b/man3/ldexp.3
@@ -45,10 +45,10 @@ ldexp, ldexpf, ldexpl \- multiply floating-point number by integral power of 2
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR ldexpf (),
@@ -146,7 +146,7 @@ SVr4, 4.3BSD, C89.
.BR modf (3),
.BR scalbln (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ldiv_t.3 b/man3/ldiv_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/ldiv_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/lgamma.3 b/man3/lgamma.3
index 615be4aee..ea4b24cab 100644
--- a/man3/lgamma.3
+++ b/man3/lgamma.3
@@ -29,10 +29,10 @@ log gamma function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR lgamma ():
@@ -175,7 +175,7 @@ Since version 2.10, glibc does the right thing.
.SH SEE ALSO
.BR tgamma (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/lio_listio.3 b/man3/lio_listio.3
index c33164a94..51343d01f 100644
--- a/man3/lio_listio.3
+++ b/man3/lio_listio.3
@@ -239,7 +239,7 @@ structure produce undefined results.
.BR aio_write (3),
.BR aio (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/list.3 b/man3/list.3
new file mode 100644
index 000000000..42ce76916
--- /dev/null
+++ b/man3/list.3
@@ -0,0 +1,358 @@
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\" and Copyright (c) 2020 by Alejandro Colomar <colomar.6.4.3@gmail.com>
+.\"
+.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
+.\" Redistribution and use in source and binary forms, 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.
+.\" %%%LICENSE_END
+.\"
+.\"
+.TH LIST 3 2020-10-19 "GNU" "Linux Programmer's Manual"
+.SH NAME
+LIST_EMPTY,
+LIST_ENTRY,
+LIST_FIRST,
+LIST_FOREACH,
+.\"LIST_FOREACH_FROM,
+.\"LIST_FOREACH_SAFE,
+.\"LIST_FOREACH_FROM_SAFE,
+LIST_HEAD,
+LIST_HEAD_INITIALIZER,
+LIST_INIT,
+LIST_INSERT_AFTER,
+LIST_INSERT_BEFORE,
+LIST_INSERT_HEAD,
+LIST_NEXT,
+LIST_PREV,
+LIST_REMOVE
+.\"LIST_SWAP
+\- implementation of a doubly linked list
+.SH SYNOPSIS
+.nf
+.B #include <sys/queue.h>
+.PP
+.BI "int LIST_EMPTY(LIST_HEAD *" head ");"
+.PP
+.B LIST_ENTRY(TYPE);
+.PP
+.BI "struct TYPE *LIST_FIRST(LIST_HEAD *" head ");"
+.PP
+.BI "LIST_FOREACH(struct TYPE *" var ", LIST_HEAD *" head ", LIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "LIST_FOREACH_FROM(struct TYPE *" var ", LIST_HEAD *" head ", LIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "LIST_FOREACH_FROM_SAFE(struct TYPE *" var ", LIST_HEAD *" head ", LIST_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.\".PP
+.\".BI "LIST_FOREACH_SAFE(struct TYPE *" var ", LIST_HEAD *" head ", LIST_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.PP
+.B LIST_HEAD(HEADNAME, TYPE);
+.PP
+.BI "LIST_HEAD LIST_HEAD_INITIALIZER(LIST_HEAD " head ");"
+.PP
+.BI "void LIST_INIT(LIST_HEAD *" head ");"
+.PP
+.BI "void LIST_INSERT_AFTER(struct TYPE *" listelm ", struct TYPE *" elm ","
+.BI " LIST_ENTRY " NAME ");"
+.PP
+.BI "void LIST_INSERT_BEFORE(struct TYPE *" listelm ", struct TYPE *" elm ","
+.BI " LIST_ENTRY " NAME ");"
+.PP
+.BI "void LIST_INSERT_HEAD(LIST_HEAD *" head ", struct TYPE *" elm ","
+.BI " LIST_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *LIST_NEXT(struct TYPE *" elm ", LIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "struct TYPE *LIST_PREV(struct TYPE *" elm ", LIST_HEAD *" head ", struct TYPE, LIST_ENTRY " NAME ");"
+.PP
+.BI "void LIST_REMOVE(struct TYPE *" elm ", LIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "void LIST_SWAP(LIST_HEAD *" head1 ", LIST_HEAD *" head2 ", struct TYPE, LIST_ENTRY " NAME ");"
+.fi
+.SH DESCRIPTION
+These macros define and operate on doubly linked lists.
+.PP
+In the macro definitions,
+.I TYPE
+is the name of a user-defined structure,
+that must contain a field of type
+.IR LIST_ENTRY ,
+named
+.IR NAME .
+The argument
+.IR HEADNAME
+is the name of a user-defined structure that must be declared
+using the macro
+.BR LIST_HEAD ().
+.PP
+A list is headed by a structure defined by the
+.BR LIST_HEAD ()
+macro.
+This structure contains a single pointer to the first element
+on the list.
+The elements are doubly linked so that an arbitrary element can be
+removed without traversing the list.
+New elements can be added to the list after an existing element,
+before an existing element, or at the head of the list.
+A
+.I LIST_HEAD
+structure is declared as follows:
+.PP
+.in +4
+.EX
+LIST_HEAD(HEADNAME, TYPE) head;
+.EE
+.in
+.PP
+where
+.I struct HEADNAME
+is the structure to be defined, and
+.I struct TYPE
+is the type of the elements to be linked into the list.
+A pointer to the head of the list can later be declared as:
+.PP
+.in +4
+.EX
+struct HEADNAME *headp;
+.EE
+.in
+.PP
+(The names
+.I head
+and
+.I headp
+are user selectable.)
+.PP
+The macro
+.BR LIST_HEAD_INITIALIZER ()
+evaluates to an initializer for the list
+.IR head .
+.PP
+The macro
+.BR LIST_EMPTY ()
+evaluates to true if there are no elements in the list.
+.PP
+The macro
+.BR LIST_ENTRY ()
+declares a structure that connects the elements in
+the list.
+.PP
+The macro
+.BR LIST_FIRST ()
+returns the first element in the list or NULL if the list
+is empty.
+.PP
+The macro
+.BR LIST_FOREACH ()
+traverses the list referenced by
+.I head
+in the forward direction, assigning each element in turn to
+.IR var .
+.\" .PP
+.\" The macro
+.\" .BR LIST_FOREACH_FROM ()
+.\" behaves identically to
+.\" .BR LIST_FOREACH ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found LIST element and begins the loop at
+.\" .I var
+.\" instead of the first element in the LIST referenced by
+.\" .IR head .
+.\" .PP
+.\" The macro
+.\" .BR LIST_FOREACH_SAFE ()
+.\" traverses the list referenced by
+.\" .I head
+.\" in the forward direction, assigning each element in turn to
+.\" .IR var .
+.\" However, unlike
+.\" .BR LIST_FOREACH ()
+.\" here it is permitted to both remove
+.\" .I var
+.\" as well as free it from within the loop safely without interfering with the
+.\" traversal.
+.\" .PP
+.\" The macro
+.\" .BR LIST_FOREACH_FROM_SAFE ()
+.\" behaves identically to
+.\" .BR LIST_FOREACH_SAFE ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found LIST element and begins the loop at
+.\" .I var
+.\" instead of the first element in the LIST referenced by
+.\" .IR head .
+.PP
+The macro
+.BR LIST_INIT ()
+initializes the list referenced by
+.IR head .
+.PP
+The macro
+.BR LIST_INSERT_HEAD ()
+inserts the new element
+.I elm
+at the head of the list.
+.PP
+The macro
+.BR LIST_INSERT_AFTER ()
+inserts the new element
+.I elm
+after the element
+.IR listelm .
+.PP
+The macro
+.BR LIST_INSERT_BEFORE ()
+inserts the new element
+.I elm
+before the element
+.IR listelm .
+.PP
+The macro
+.BR LIST_NEXT ()
+returns the next element in the list, or NULL if this is the last.
+.\" .PP
+.\" The macro
+.\" .BR LIST_PREV ()
+.\" returns the previous element in the list, or NULL if this is the first.
+.\" List
+.\" .I head
+.\" must contain element
+.\" .IR elm .
+.PP
+The macro
+.BR LIST_REMOVE ()
+removes the element
+.I elm
+from the list.
+.\" .PP
+.\" The macro
+.\" .BR LIST_SWAP ()
+.\" swaps the contents of
+.\" .I head1
+.\" and
+.\" .IR head2 .
+.SH RETURN VALUE
+.BR LIST_EMPTY ()
+returns nonzero if the list is empty,
+and zero if the list contains at least one entry.
+.PP
+.BR LIST_FIRST (),
+and
+.BR LIST_NEXT ()
+return a pointer to the first or next
+.I TYPE
+structure, respectively.
+.PP
+.BR LIST_HEAD_INITIALIZER ()
+returns an initializer that can be assigned to the list
+.IR head .
+.SH CONFORMING TO
+Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008.
+Present on the BSDs
+(LIST macros first appeared in 4.4BSD).
+.SH BUGS
+The macro
+.BR LIST_FOREACH ()
+doesn't allow
+.I var
+to be removed or freed within the loop,
+as it would interfere with the traversal.
+The macro
+.BR LIST_FOREACH_SAFE (),
+which is present on the BSDs but is not present in glibc,
+fixes this limitation by allowing
+.I var
+to safely be removed from the list and freed from within the loop
+without interfering with the traversal.
+.SH EXAMPLES
+.EX
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/queue.h>
+
+struct entry {
+ int data;
+ LIST_ENTRY(entry) entries; /* List. */
+};
+
+LIST_HEAD(listhead, entry);
+
+int
+main(void)
+{
+ struct entry *n1, *n2, *n3, *np;
+ struct listhead head; /* List head. */
+ int i;
+
+ LIST_INIT(&head); /* Initialize the list. */
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
+ LIST_INSERT_HEAD(&head, n1, entries);
+
+ n2 = malloc(sizeof(struct entry)); /* Insert after. */
+ LIST_INSERT_AFTER(n1, n2, entries);
+
+ n3 = malloc(sizeof(struct entry)); /* Insert before. */
+ LIST_INSERT_BEFORE(n2, n3, entries);
+
+ i = 0; /* Forward traversal. */
+ LIST_FOREACH(np, &head, entries)
+ np->data = i++;
+
+ LIST_REMOVE(n2, entries); /* Deletion. */
+ free(n2);
+ /* Forward traversal. */
+ LIST_FOREACH(np, &head, entries)
+ printf("%i\en", np->data);
+ /* List Deletion. */
+ n1 = LIST_FIRST(&head);
+ while (n1 != NULL) {
+ n2 = LIST_NEXT(n1, entries);
+ free(n1);
+ n1 = n2;
+ }
+ LIST_INIT(&head);
+
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
+.BR insque (3),
+.BR queue (7)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man3/lldiv_t.3 b/man3/lldiv_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/lldiv_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/localeconv.3 b/man3/localeconv.3
index c5c604e57..a94cda7a1 100644
--- a/man3/localeconv.3
+++ b/man3/localeconv.3
@@ -90,7 +90,7 @@ family of functions may or may not honor the current locale.
.BR strftime (3),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/lockf.3 b/man3/lockf.3
index 70fe56e54..5b4bbf901 100644
--- a/man3/lockf.3
+++ b/man3/lockf.3
@@ -33,10 +33,10 @@ lockf \- apply, test or remove a POSIX lock on an open file
.PP
.BI "int lockf(int " fd ", int " cmd ", off_t " len );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR lockf ():
.ad l
@@ -188,7 +188,7 @@ directory, and
is called
.IR mandatory.txt )
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/log.3 b/man3/log.3
index fd5bf2b50..e8b34154a 100644
--- a/man3/log.3
+++ b/man3/log.3
@@ -47,10 +47,10 @@ log, logf, logl \- natural logarithmic function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR logf (),
@@ -155,7 +155,7 @@ exception.
.BR log2 (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/log10.3 b/man3/log10.3
index e5f83d9a5..a56aa46e3 100644
--- a/man3/log10.3
+++ b/man3/log10.3
@@ -47,10 +47,10 @@ log10, log10f, log10l \- base-10 logarithmic function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR log10f (),
@@ -109,7 +109,7 @@ SVr4, 4.3BSD, C89.
.BR log2 (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/log1p.3 b/man3/log1p.3
index c61c46ba9..f6538f2ae 100644
--- a/man3/log1p.3
+++ b/man3/log1p.3
@@ -40,10 +40,10 @@ log1p, log1pf, log1pl \- logarithm of 1 plus argument
.fi
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR log1p ():
@@ -165,7 +165,7 @@ when a range error occurred.
.BR expm1 (3),
.BR log (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/log2.3 b/man3/log2.3
index 07fd8f8c3..1f061ed14 100644
--- a/man3/log2.3
+++ b/man3/log2.3
@@ -47,10 +47,10 @@ log2, log2f, log2l \- base-2 logarithmic function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR log2 (),
@@ -109,7 +109,7 @@ SVr4, 4.3BSD.
.BR log10 (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/logb.3 b/man3/logb.3
index fa8cb11e3..52f5b8878 100644
--- a/man3/logb.3
+++ b/man3/logb.3
@@ -40,10 +40,10 @@ logb, logbf, logbl \- get exponent of a floating-point value
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR logb ():
@@ -157,7 +157,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR ilogb (3),
.BR log (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/login.3 b/man3/login.3
index a6c145b86..a4a6d9fb0 100644
--- a/man3/login.3
+++ b/man3/login.3
@@ -166,7 +166,7 @@ in
.BR getutent (3),
.BR utmp (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/lrint.3 b/man3/lrint.3
index 46ec072b5..6a022ecc8 100644
--- a/man3/lrint.3
+++ b/man3/lrint.3
@@ -24,28 +24,28 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH LRINT 3 2017-09-15 "" "Linux Programmer's Manual"
+.TH LRINT 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
lrint, lrintf, lrintl, llrint, llrintf, llrintl \- round to nearest integer
.SH SYNOPSIS
.nf
.B #include <math.h>
.PP
-.BI "long int lrint(double " x );
-.BI "long int lrintf(float " x );
-.BI "long int lrintl(long double " x );
+.BI "long lrint(double " x );
+.BI "long lrintf(float " x );
+.BI "long lrintl(long double " x );
.PP
-.BI "long long int llrint(double " x );
-.BI "long long int llrintf(float " x );
-.BI "long long int llrintl(long double " x );
+.BI "long long llrint(double " x );
+.BI "long long llrintf(float " x );
+.BI "long long llrintl(long double " x );
.fi
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
All functions shown above:
@@ -127,7 +127,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR rint (3),
.BR round (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/lround.3 b/man3/lround.3
index 7f2d99f10..a7684182d 100644
--- a/man3/lround.3
+++ b/man3/lround.3
@@ -24,7 +24,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH LROUND 3 2017-09-15 "" "Linux Programmer's Manual"
+.TH LROUND 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
lround, lroundf, lroundl, llround, llroundf, llroundl \- round to
nearest integer
@@ -32,21 +32,21 @@ nearest integer
.nf
.B #include <math.h>
.PP
-.BI "long int lround(double " x );
-.BI "long int lroundf(float " x );
-.BI "long int lroundl(long double " x );
+.BI "long lround(double " x );
+.BI "long lroundf(float " x );
+.BI "long lroundl(long double " x );
.PP
-.BI "long long int llround(double " x );
-.BI "long long int llroundf(float " x );
-.BI "long long int llroundl(long double " x );
+.BI "long long llround(double " x );
+.BI "long long llroundf(float " x );
+.BI "long long llroundl(long double " x );
.fi
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
All functions shown above:
@@ -130,7 +130,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR rint (3),
.BR round (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/lsearch.3 b/man3/lsearch.3
index 9fcbe6b43..abdbe3ed2 100644
--- a/man3/lsearch.3
+++ b/man3/lsearch.3
@@ -101,7 +101,7 @@ The naming is unfortunate.
.BR hsearch (3),
.BR tsearch (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/lseek64.3 b/man3/lseek64.3
index 09ac0cb32..043a3f7f9 100644
--- a/man3/lseek64.3
+++ b/man3/lseek64.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH LSEEK64 3 2017-09-15 "Linux" "Linux Programmer's Manual"
+.TH LSEEK64 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
lseek64 \- reposition 64-bit read/write file offset
.SH SYNOPSIS
@@ -140,6 +140,10 @@ glibc 2.1.3 added the link-time warning
.PP
This makes this function unusable if one desires a warning-free
compilation.
+Since glibc 2.28,
+.\" glibc commit 5c5c0dd747070db624c8e2c43691cec854f114ef
+this function symbol is no longer available to newly linked applications.
+.\"
.SS _llseek()
On 32-bit architectures,
this is the system call that is used to implement all of the above functions.
@@ -177,7 +181,7 @@ T} Thread safety MT-Safe
.BR llseek (2),
.BR lseek (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/makecontext.3 b/man3/makecontext.3
index 28986364b..6f6dc6cf6 100644
--- a/man3/makecontext.3
+++ b/man3/makecontext.3
@@ -238,7 +238,7 @@ main(int argc, char *argv[])
.BR getcontext (3),
.BR sigsetjmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/makedev.3 b/man3/makedev.3
index 1a506f5f0..6901f8ca3 100644
--- a/man3/makedev.3
+++ b/man3/makedev.3
@@ -108,7 +108,7 @@ no longer provides these definitions.
.BR mknod (2),
.BR stat (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mallinfo.3 b/man3/mallinfo.3
index ac3521c79..dbee8b87c 100644
--- a/man3/mallinfo.3
+++ b/man3/mallinfo.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH MALLINFO 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH MALLINFO 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
mallinfo \- obtain memory allocation information
.SH SYNOPSIS
@@ -53,7 +53,7 @@ struct mallinfo {
int smblks; /* Number of free fastbin blocks */
int hblks; /* Number of mmapped regions */
int hblkhd; /* Space allocated in mmapped regions (bytes) */
- int usmblks; /* Maximum total allocated space (bytes) */
+ int usmblks; /* See below */
int fsmblks; /* Space in freed fastbin blocks (bytes) */
int uordblks; /* Total allocated space (bytes) */
int fordblks; /* Total free space (bytes) */
@@ -76,6 +76,8 @@ This figure includes both in-use blocks and blocks on the free list.
The number of ordinary (i.e., non-fastbin) free blocks.
.TP
.I smblks
+.\" the glibc info page wrongly says this field is unused
+.\" https://sourceware.org/bugzilla/show_bug.cgi?id=26746
The number of fastbin free blocks (see
.BR mallopt (3)).
.TP
@@ -92,11 +94,15 @@ The number of bytes in blocks currently allocated using
.BR mmap (2).
.TP
.I usmblks
-The "highwater mark" for allocated space\(emthat is,
-the maximum amount of space that was ever allocated.
-This field is maintained only in nonthreading environments.
+This field is unused, and is always 0.
+.\" It seems to have been zero since at least as far back as glibc 2.15
+Historically, it was the "highwater mark" for allocated space\(emthat is,
+the maximum amount of space that was ever allocated (in bytes);
+this field was maintained only in nonthreading environments.
.TP
.I fsmblks
+.\" the glibc info page wrongly says this field is unused
+.\" https://sourceware.org/bugzilla/show_bug.cgi?id=26746
The total number of bytes in fastbin free blocks.
.TP
.I uordblks
@@ -263,7 +269,7 @@ main(int argc, char *argv[])
{
#define MAX_ALLOCS 2000000
char *alloc[MAX_ALLOCS];
- int numBlocks, j, freeBegin, freeEnd, freeStep;
+ int numBlocks, freeBegin, freeEnd, freeStep;
size_t blockSize;
if (argc < 3 || strcmp(argv[1], "\-\-help") == 0) {
@@ -281,7 +287,7 @@ main(int argc, char *argv[])
printf("============== Before allocating blocks ==============\en");
display_mallinfo();
- for (j = 0; j < numBlocks; j++) {
+ for (int j = 0; j < numBlocks; j++) {
if (numBlocks >= MAX_ALLOCS) {
fprintf(stderr, "Too many allocations\en");
exit(EXIT_FAILURE);
@@ -297,7 +303,7 @@ main(int argc, char *argv[])
printf("\en============== After allocating blocks ==============\en");
display_mallinfo();
- for (j = freeBegin; j < freeEnd; j += freeStep)
+ for (int j = freeBegin; j < freeEnd; j += freeStep)
free(alloc[j]);
printf("\en============== After freeing blocks ==============\en");
@@ -316,7 +322,7 @@ main(int argc, char *argv[])
.BR malloc_trim (3),
.BR mallopt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/malloc.3 b/man3/malloc.3
index 44b069ae7..9e27e3f3e 100644
--- a/man3/malloc.3
+++ b/man3/malloc.3
@@ -45,10 +45,10 @@ malloc, free, calloc, realloc, reallocarray \- allocate and free dynamic memory
.BI "void *reallocarray(void " "*ptr" ", size_t " nmemb ", size_t " "size" );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR reallocarray ():
.ad l
@@ -401,7 +401,7 @@ For details of the GNU C library implementation, see
.UR https://sourceware.org/glibc/wiki/MallocInternals
.UE .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/malloc_get_state.3 b/man3/malloc_get_state.3
index e71d190c3..82b0e5440 100644
--- a/man3/malloc_get_state.3
+++ b/man3/malloc_get_state.3
@@ -29,7 +29,7 @@ malloc_get_state, malloc_set_state \- record and restore state of malloc impleme
.nf
.B #include <malloc.h>
.PP
-.BI "void* malloc_get_state(void);"
+.BI "void *malloc_get_state(void);"
.PP
.BI "int malloc_set_state(void *" state );
.fi
@@ -129,7 +129,7 @@ then the hooks are reset to 0.
.BR malloc (3),
.BR mallopt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/malloc_hook.3 b/man3/malloc_hook.3
index 161480dfd..29e07a239 100644
--- a/man3/malloc_hook.3
+++ b/man3/malloc_hook.3
@@ -7,7 +7,7 @@
.\" Heavily based on glibc documentation
.\" Polished, added docs, removed glibc doc bug, 2002-07-20, aeb
.\"
-.TH MALLOC_HOOK 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH MALLOC_HOOK 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
__malloc_hook, __malloc_initialize_hook,
__memalign_hook, __free_hook, __realloc_hook,
@@ -130,8 +130,8 @@ my_malloc_hook(size_t size, const void *caller)
old_malloc_hook = __malloc_hook;
/* printf() might call malloc(), so protect it too. */
- printf("malloc(%u) called from %p returns %p\en",
- (unsigned int) size, caller, result);
+ printf("malloc(%zu) called from %p returns %p\en",
+ size, caller, result);
/* Restore our own hooks */
__malloc_hook = my_malloc_hook;
@@ -145,7 +145,7 @@ my_malloc_hook(size_t size, const void *caller)
.BR mcheck (3),
.BR mtrace (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/malloc_info.3 b/man3/malloc_info.3
index 281ed7c27..a3333a85a 100644
--- a/man3/malloc_info.3
+++ b/man3/malloc_info.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH MALLOC_INFO 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH MALLOC_INFO 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
malloc_info \- export malloc state to a stream
.SH SYNOPSIS
@@ -121,7 +121,7 @@ After the blocks of memory have been allocated,
.BR malloc_info ()
shows the state of two allocation arenas.
.PP
-.in +4
+.in +4n
.EX
.RB "$ " "getconf GNU_LIBC_VERSION"
glibc 2.13
@@ -194,13 +194,12 @@ static int numThreads, numBlocks;
static void *
thread_func(void *arg)
{
- int j;
int tn = (int) arg;
/* The multiplier \(aq(2 + tn)\(aq ensures that each thread (including
the main thread) allocates a different amount of memory */
- for (j = 0; j < numBlocks; j++)
+ for (int j = 0; j < numBlocks; j++)
if (malloc(blockSize * (2 + tn)) == NULL)
errExit("malloc\-thread");
@@ -211,8 +210,7 @@ thread_func(void *arg)
int
main(int argc, char *argv[])
{
- int j, tn, sleepTime;
- pthread_t *thr;
+ int sleepTime;
if (argc < 4) {
fprintf(stderr,
@@ -226,7 +224,7 @@ main(int argc, char *argv[])
blockSize = atoi(argv[3]);
sleepTime = (argc > 4) ? atoi(argv[4]) : 0;
- thr = calloc(numThreads, sizeof(pthread_t));
+ pthread_t *thr = calloc(numThreads, sizeof(*thr));
if (thr == NULL)
errExit("calloc");
@@ -235,7 +233,7 @@ main(int argc, char *argv[])
/* Create threads that allocate different amounts of memory */
- for (tn = 0; tn < numThreads; tn++) {
+ for (int tn = 0; tn < numThreads; tn++) {
errno = pthread_create(&thr[tn], NULL, thread_func,
(void *) tn);
if (errno != 0)
@@ -252,7 +250,7 @@ main(int argc, char *argv[])
/* The main thread also allocates some memory */
- for (j = 0; j < numBlocks; j++)
+ for (int j = 0; j < numBlocks; j++)
if (malloc(blockSize) == NULL)
errExit("malloc");
@@ -272,7 +270,7 @@ main(int argc, char *argv[])
.BR mallopt (3),
.BR open_memstream (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/malloc_stats.3 b/man3/malloc_stats.3
index 2a6dfcc1e..d454d922f 100644
--- a/man3/malloc_stats.3
+++ b/man3/malloc_stats.3
@@ -77,7 +77,7 @@ can be obtained using
.BR malloc_info (3),
.BR mallopt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/malloc_trim.3 b/man3/malloc_trim.3
index c76164f25..450af3a12 100644
--- a/man3/malloc_trim.3
+++ b/man3/malloc_trim.3
@@ -102,7 +102,7 @@ top of the heap in the main arena.
.BR malloc (3),
.BR mallopt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/malloc_usable_size.3 b/man3/malloc_usable_size.3
index 82e606e43..9e90c858e 100644
--- a/man3/malloc_usable_size.3
+++ b/man3/malloc_usable_size.3
@@ -74,7 +74,7 @@ The main use of this function is for debugging and introspection.
.SH SEE ALSO
.BR malloc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mallopt.3 b/man3/mallopt.3
index eec46e8f3..e36715e87 100644
--- a/man3/mallopt.3
+++ b/man3/mallopt.3
@@ -625,7 +625,7 @@ main(int argc, char *argv[])
.BR mtrace (3),
.BR posix_memalign (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/matherr.3 b/man3/matherr.3
index bd21910f9..056cd64a2 100644
--- a/man3/matherr.3
+++ b/man3/matherr.3
@@ -440,7 +440,7 @@ main(int argc, char *argv[])
.BR math_error (7),
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mblen.3 b/man3/mblen.3
index 9b8f8979b..136cc1e35 100644
--- a/man3/mblen.3
+++ b/man3/mblen.3
@@ -113,7 +113,7 @@ functionality.
.SH SEE ALSO
.BR mbrlen (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mbrlen.3 b/man3/mbrlen.3
index fd1b38c44..c7e1f15db 100644
--- a/man3/mbrlen.3
+++ b/man3/mbrlen.3
@@ -125,7 +125,7 @@ current locale.
.SH SEE ALSO
.BR mbrtowc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mbrtowc.3 b/man3/mbrtowc.3
index 7d257cc0a..8fa827869 100644
--- a/man3/mbrtowc.3
+++ b/man3/mbrtowc.3
@@ -197,7 +197,7 @@ current locale.
.BR mbsinit (3),
.BR mbsrtowcs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mbsinit.3 b/man3/mbsinit.3
index eb9ad42f2..ad9422483 100644
--- a/man3/mbsinit.3
+++ b/man3/mbsinit.3
@@ -13,7 +13,7 @@
.\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\" ISO/IEC 9899:1999
.\"
-.TH MBSINIT 3 2016-10-08 "GNU" "Linux Programmer's Manual"
+.TH MBSINIT 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
mbsinit \- test for initial shift state
.SH SYNOPSIS
@@ -59,7 +59,7 @@ in initial state is to set it to zero:
.in +4n
.EX
mbstate_t state;
-memset(&state,0,sizeof(mbstate_t));
+memset(&state, 0, sizeof(state));
.EE
.in
.PP
@@ -113,7 +113,7 @@ current locale.
.BR wcrtomb (3),
.BR wcsrtombs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mbsnrtowcs.3 b/man3/mbsnrtowcs.3
index 9820aaf19..c4d1c8e51 100644
--- a/man3/mbsnrtowcs.3
+++ b/man3/mbsnrtowcs.3
@@ -23,10 +23,10 @@ mbsnrtowcs \- convert a multibyte string to a wide-character string
.BI " size_t " nms ", size_t " len ", mbstate_t *" ps );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mbsnrtowcs ():
.PD 0
@@ -199,7 +199,7 @@ is not multithread safe.
.BR mbsinit (3),
.BR mbsrtowcs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mbsrtowcs.3 b/man3/mbsrtowcs.3
index b8cb37f3c..af2814d76 100644
--- a/man3/mbsrtowcs.3
+++ b/man3/mbsrtowcs.3
@@ -156,7 +156,7 @@ is not multithread safe.
.BR mbsnrtowcs (3),
.BR mbstowcs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mbstowcs.3 b/man3/mbstowcs.3
index f78f2962d..ff4dabdd9 100644
--- a/man3/mbstowcs.3
+++ b/man3/mbstowcs.3
@@ -14,7 +14,7 @@
.\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\" ISO/IEC 9899:1999
.\"
-.TH MBSTOWCS 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH MBSTOWCS 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
mbstowcs \- convert a multibyte string to a wide-character string
.SH SYNOPSIS
@@ -154,7 +154,6 @@ main(int argc, char *argv[])
{
size_t mbslen; /* Number of multibyte characters in source */
wchar_t *wcs; /* Pointer to converted wide character string */
- wchar_t *wp;
if (argc < 3) {
fprintf(stderr, "Usage: %s <locale> <string>\en", argv[0]);
@@ -186,7 +185,7 @@ main(int argc, char *argv[])
/* Allocate wide character string of the desired size. Add 1
to allow for terminating null wide character (L\(aq\e0\(aq). */
- wcs = calloc(mbslen + 1, sizeof(wchar_t));
+ wcs = calloc(mbslen + 1, sizeof(*wcs));
if (wcs == NULL) {
perror("calloc");
exit(EXIT_FAILURE);
@@ -206,7 +205,7 @@ main(int argc, char *argv[])
/* Now do some inspection of the classes of the characters in
the wide character string */
- for (wp = wcs; *wp != 0; wp++) {
+ for (wchar_t *wp = wcs; *wp != 0; wp++) {
printf(" %lc ", (wint_t) *wp);
if (!iswalpha(*wp))
@@ -234,7 +233,7 @@ main(int argc, char *argv[])
.BR wcstombs (3),
.BR wctomb (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mbtowc.3 b/man3/mbtowc.3
index ff742d492..2fe68d85d 100644
--- a/man3/mbtowc.3
+++ b/man3/mbtowc.3
@@ -145,7 +145,7 @@ a better interface to the same functionality.
.BR wcstombs (3),
.BR wctomb (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mcheck.3 b/man3/mcheck.3
index 777b956ea..9c2948628 100644
--- a/man3/mcheck.3
+++ b/man3/mcheck.3
@@ -227,7 +227,7 @@ main(int argc, char *argv[])
.BR mallopt (3),
.BR mtrace (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memccpy.3 b/man3/memccpy.3
index 0dc6a7079..2ac55e55c 100644
--- a/man3/memccpy.3
+++ b/man3/memccpy.3
@@ -89,7 +89,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.BR strcpy (3),
.BR strncpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memchr.3 b/man3/memchr.3
index bde9b2842..9ebb068a3 100644
--- a/man3/memchr.3
+++ b/man3/memchr.3
@@ -43,10 +43,10 @@ memchr, memrchr, rawmemchr \- scan memory for a character
.BI "void *rawmemchr(const void *" s ", int " c );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR memrchr (),
.BR rawmemchr ():
@@ -160,7 +160,7 @@ function is a GNU extension, available since glibc 2.1.
.BR strstr (3),
.BR wmemchr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memcmp.3 b/man3/memcmp.3
index bbbc1ed3d..3e2f096dd 100644
--- a/man3/memcmp.3
+++ b/man3/memcmp.3
@@ -95,7 +95,7 @@ On Linux, it may be necessary to implement such a function oneself.
.BR strncmp (3),
.BR wmemcmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memcpy.3 b/man3/memcpy.3
index 262bf7419..02850af42 100644
--- a/man3/memcpy.3
+++ b/man3/memcpy.3
@@ -116,7 +116,7 @@ implementation that was aliased to
.BR strncpy (3),
.BR wmemcpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memfrob.3 b/man3/memfrob.3
index 98f26cb05..8d73fcd08 100644
--- a/man3/memfrob.3
+++ b/man3/memfrob.3
@@ -76,7 +76,7 @@ GNU C Library.
.BR bstring (3),
.BR strfry (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memmem.3 b/man3/memmem.3
index 6261d203c..505083ede 100644
--- a/man3/memmem.3
+++ b/man3/memmem.3
@@ -100,7 +100,7 @@ This is fixed in glibc 2.1.
.BR bstring (3),
.BR strstr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memmove.3 b/man3/memmove.3
index 6e2223163..efb97cd6f 100644
--- a/man3/memmove.3
+++ b/man3/memmove.3
@@ -82,7 +82,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
.BR strncpy (3),
.BR wmemmove (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mempcpy.3 b/man3/mempcpy.3
index 09cbcaa26..7e90a31a1 100644
--- a/man3/mempcpy.3
+++ b/man3/mempcpy.3
@@ -87,7 +87,7 @@ combine(void *o1, size_t s1, void *o2, size_t s2)
.BR memmove (3),
.BR wmemcpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/memset.3 b/man3/memset.3
index adb8a60c3..66deee2a4 100644
--- a/man3/memset.3
+++ b/man3/memset.3
@@ -71,7 +71,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
.BR swab (3),
.BR wmemset (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mkdtemp.3 b/man3/mkdtemp.3
index 38b0dab94..1cda4d9e0 100644
--- a/man3/mkdtemp.3
+++ b/man3/mkdtemp.3
@@ -33,10 +33,10 @@ mkdtemp \- create a unique temporary directory
.BI "char *mkdtemp(char *" template );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mkdtemp ():
.br
@@ -109,7 +109,7 @@ This function is present on the BSDs.
.BR tmpfile (3),
.BR tmpnam (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mkfifo.3 b/man3/mkfifo.3
index 59a33396c..647258355 100644
--- a/man3/mkfifo.3
+++ b/man3/mkfifo.3
@@ -41,10 +41,10 @@ mkfifo, mkfifoat \- make a FIFO special file (a named pipe)
.BI "int mkfifoat(int " dirfd ", const char *" pathname ", mode_t " mode );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mkfifoat ():
.PD 0
@@ -210,7 +210,7 @@ POSIX.1-2008.
.BR write (2),
.BR fifo (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mkstemp.3 b/man3/mkstemp.3
index 409f9ecdd..54896222a 100644
--- a/man3/mkstemp.3
+++ b/man3/mkstemp.3
@@ -48,10 +48,10 @@ mkstemp, mkostemp, mkstemps, mkostemps \- create a unique temporary file
.BI "int mkostemps(char *" template ", int " suffixlen ", int " flags );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mkstemp ():
.ad l
@@ -254,7 +254,7 @@ is set appropriately before calling
.BR tmpfile (3),
.BR tmpnam (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mktemp.3 b/man3/mktemp.3
index e386037c7..3054bbed7 100644
--- a/man3/mktemp.3
+++ b/man3/mktemp.3
@@ -41,10 +41,10 @@ mktemp \- make a unique temporary filename
.BI "char *mktemp(char *" template );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mktemp ():
.ad l
@@ -136,7 +136,7 @@ and
.BR tmpfile (3),
.BR tmpnam (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/modf.3 b/man3/modf.3
index f21bc4caf..5717ef039 100644
--- a/man3/modf.3
+++ b/man3/modf.3
@@ -45,10 +45,10 @@ floating-point number
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR modf (),
@@ -109,7 +109,7 @@ SVr4, 4.3BSD, C89.
.BR frexp (3),
.BR ldexp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mpool.3 b/man3/mpool.3
index 7bc9a6623..ac5b85f8f 100644
--- a/man3/mpool.3
+++ b/man3/mpool.3
@@ -233,7 +233,7 @@ Present on the BSDs.
.BR hash (3),
.BR recno (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mq_close.3 b/man3/mq_close.3
index c6aa4ace1..de80aab03 100644
--- a/man3/mq_close.3
+++ b/man3/mq_close.3
@@ -83,7 +83,7 @@ or upon
.BR mq_unlink (3),
.BR mq_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mq_getattr.3 b/man3/mq_getattr.3
index 9a4555366..45e8f1662 100644
--- a/man3/mq_getattr.3
+++ b/man3/mq_getattr.3
@@ -241,7 +241,7 @@ main(int argc, char *argv[])
.BR mq_unlink (3),
.BR mq_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mq_notify.3 b/man3/mq_notify.3
index b1a702278..2b7df7187 100644
--- a/man3/mq_notify.3
+++ b/man3/mq_notify.3
@@ -284,7 +284,7 @@ main(int argc, char *argv[])
.BR mq_overview (7),
.BR sigevent (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mq_open.3 b/man3/mq_open.3
index d49281f26..0daef1d43 100644
--- a/man3/mq_open.3
+++ b/man3/mq_open.3
@@ -311,7 +311,7 @@ the process umask was not applied to the permissions specified in
.BR mq_unlink (3),
.BR mq_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mq_receive.3 b/man3/mq_receive.3
index c8d18b4c6..28377cf6b 100644
--- a/man3/mq_receive.3
+++ b/man3/mq_receive.3
@@ -43,10 +43,10 @@ mq_receive, mq_timedreceive \- receive a message from a message queue
Link with \fI\-lrt\fP.
.PP
.ad l
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mq_timedreceive ():
.RS 4
@@ -182,7 +182,7 @@ is a library function layered on top of that system call.
.BR mq_overview (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mq_send.3 b/man3/mq_send.3
index b5e326d2b..0cc614b1d 100644
--- a/man3/mq_send.3
+++ b/man3/mq_send.3
@@ -43,10 +43,10 @@ mq_send, mq_timedsend \- send a message to a message queue
Link with \fI\-lrt\fP.
.PP
.ad l
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR mq_timedsend ():
.RS 4
@@ -190,7 +190,7 @@ is a library function layered on top of that system call.
.BR mq_overview (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mq_unlink.3 b/man3/mq_unlink.3
index 85b16efca..f41d16253 100644
--- a/man3/mq_unlink.3
+++ b/man3/mq_unlink.3
@@ -81,7 +81,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR mq_send (3),
.BR mq_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/mtrace.3 b/man3/mtrace.3
index 6cec03f6e..a711cacbf 100644
--- a/man3/mtrace.3
+++ b/man3/mtrace.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH MTRACE 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH MTRACE 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
mtrace, muntrace \- malloc tracing
.SH SYNOPSIS
@@ -135,7 +135,7 @@ function and the
command in a program that has memory leaks at two different locations.
The demonstration uses the following program:
.PP
-.in +4
+.in +4n
.EX
.RB "$ " "cat t_mtrace.c"
#include <mcheck.h>
@@ -145,11 +145,9 @@ The demonstration uses the following program:
int
main(int argc, char *argv[])
{
- int j;
-
mtrace();
- for (j = 0; j < 2; j++)
+ for (int j = 0; j < 2; j++)
malloc(100); /* Never freed\-\-a memory leak */
calloc(16, 16); /* Never freed\-\-a memory leak */
@@ -192,7 +190,7 @@ The final message corresponds to the call to
.BR malloc_hook (3),
.BR mcheck (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/nan.3 b/man3/nan.3
index fcf15fe13..b7c4e388b 100644
--- a/man3/nan.3
+++ b/man3/nan.3
@@ -22,10 +22,10 @@ nan, nanf, nanl \- return 'Not a Number'
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR nan (),
@@ -93,7 +93,7 @@ recommended functions in IEEE 754/IEEE 854.
.BR strtod (3),
.BR math_error (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/netlink.3 b/man3/netlink.3
index b43f9f505..13e4b8243 100644
--- a/man3/netlink.3
+++ b/man3/netlink.3
@@ -85,7 +85,7 @@ than via the low-level kernel interface.
.BR libnetlink (3),
.BR netlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/newlocale.3 b/man3/newlocale.3
index 1a63eb0d2..d7d45a244 100644
--- a/man3/newlocale.3
+++ b/man3/newlocale.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH NEWLOCALE 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH NEWLOCALE 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
newlocale, freelocale \- create, modify, and free a locale object
.SH SYNOPSIS
@@ -35,10 +35,10 @@ newlocale, freelocale \- create, modify, and free a locale object
.BI "void freelocale(locale_t " locobj );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR newlocale (),
.BR freelocale ():
@@ -332,8 +332,8 @@ main(int argc, char *argv[])
/* If a second command\-line argument was specified, modify the
locale object to take the LC_TIME settings from the locale
specified in argv[2]. We assign the result of this newlocale()
- call to 'nloc' rather than 'loc', since in some cases, we might
- want to preserve 'loc' if this call fails. */
+ call to \(aqnloc\(aq rather than \(aqloc\(aq, since in some cases, we might
+ want to preserve \(aqloc\(aq if this call fails. */
if (argc > 2) {
nloc = newlocale(LC_TIME_MASK, argv[2], loc);
@@ -365,7 +365,7 @@ main(int argc, char *argv[])
/* Free the locale object */
- uselocale(LC_GLOBAL_HANDLE); /* So 'loc' is no longer in use */
+ uselocale(LC_GLOBAL_HANDLE); /* So \(aqloc\(aq is no longer in use */
freelocale(loc);
exit(EXIT_SUCCESS);
@@ -379,7 +379,7 @@ main(int argc, char *argv[])
.BR locale (5),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/nextafter.3 b/man3/nextafter.3
index 23e2daa05..22e36e4d4 100644
--- a/man3/nextafter.3
+++ b/man3/nextafter.3
@@ -29,10 +29,10 @@ floating-point number manipulation
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR nextafter ():
@@ -200,7 +200,7 @@ these functions did not set
.SH SEE ALSO
.BR nearbyint (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/nextup.3 b/man3/nextup.3
index b4d513a3c..913e2d546 100644
--- a/man3/nextup.3
+++ b/man3/nextup.3
@@ -110,7 +110,7 @@ and
.BR nearbyint (3),
.BR nextafter (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/nl_langinfo.3 b/man3/nl_langinfo.3
index a9fa38ad3..0fa5649da 100644
--- a/man3/nl_langinfo.3
+++ b/man3/nl_langinfo.3
@@ -27,10 +27,10 @@ nl_langinfo, nl_langinfo_l \- query language and locale information
.BI "char *nl_langinfo_l(nl_item " item ", locale_t " locale );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR nl_langinfo_l ():
@@ -350,7 +350,7 @@ main(int argc, char *argv[])
.PP
The GNU C Library Reference Manual
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ntp_gettime.3 b/man3/ntp_gettime.3
index 8a8b454fa..1c5a66b24 100644
--- a/man3/ntp_gettime.3
+++ b/man3/ntp_gettime.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH NTP_GETTIME 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH NTP_GETTIME 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
ntp_gettime, ntp_gettimex \- get time parameters (NTP daemon interface)
.SH SYNOPSIS
@@ -41,10 +41,10 @@ argument, a structure of the following type:
.in +4n
.EX
struct ntptimeval {
- struct timeval time; /* Current time */
- long int maxerror; /* Maximum error */
- long int esterror; /* Estimated error */
- long int tai; /* TAI offset */
+ struct timeval time; /* Current time */
+ long maxerror; /* Maximum error */
+ long esterror; /* Estimated error */
+ long tai; /* TAI offset */
/* Further padding bytes allowing for future expansion */
};
@@ -147,7 +147,7 @@ is a GNU extension.
NTP "Kernel Application Program Interface"
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/off_t.3 b/man3/off_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/off_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/offsetof.3 b/man3/offsetof.3
index a6bd38d1a..030305739 100644
--- a/man3/offsetof.3
+++ b/man3/offsetof.3
@@ -25,7 +25,7 @@
.\" References:
.\" /usr/lib/gcc/i486-linux-gnu/4.1.1/include/stddef.h
.\" glibc-doc
-.TH OFFSETOF 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH OFFSETOF 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
offsetof \- offset of a structure member
.SH SYNOPSIS
@@ -93,16 +93,16 @@ main(void)
/* Output is compiler dependent */
- printf("offsets: i=%zd; c=%zd; d=%zd a=%zd\en",
+ printf("offsets: i=%zu; c=%zu; d=%zu a=%zu\en",
offsetof(struct s, i), offsetof(struct s, c),
offsetof(struct s, d), offsetof(struct s, a));
- printf("sizeof(struct s)=%zd\en", sizeof(struct s));
+ printf("sizeof(struct s)=%zu\en", sizeof(struct s));
exit(EXIT_SUCCESS);
}
.EE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/on_exit.3 b/man3/on_exit.3
index b832c6eef..31b678881 100644
--- a/man3/on_exit.3
+++ b/man3/on_exit.3
@@ -38,10 +38,10 @@ on_exit \- register a function to be called at normal process termination
.BI "int on_exit(void (*" function ")(int , void *), void *" arg );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR on_exit ():
Since glibc 2.19:
@@ -115,7 +115,7 @@ it may however be a pointer to a heap variable or a global variable.
.BR atexit (3),
.BR exit (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/open_memstream.3 b/man3/open_memstream.3
index 9dc6694d0..5445fe02d 100644
--- a/man3/open_memstream.3
+++ b/man3/open_memstream.3
@@ -20,10 +20,10 @@ open_memstream, open_wmemstream \- open a dynamic memory buffer stream
.BI "FILE *open_wmemstream(wchar_t **" ptr ", size_t *" sizeloc );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR open_memstream (),
.BR open_wmemstream ():
@@ -144,7 +144,7 @@ See
.BR fopen (3),
.BR setbuf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/opendir.3 b/man3/opendir.3
index b4ef54cea..ec06399d2 100644
--- a/man3/opendir.3
+++ b/man3/opendir.3
@@ -41,10 +41,10 @@ opendir, fdopendir \- open a directory
.BI "DIR *fdopendir(int " fd );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR fdopendir ():
.PD 0
@@ -162,7 +162,7 @@ will set the close-on-exec flag for the file descriptor,
.BR seekdir (3),
.BR telldir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/openpty.3 b/man3/openpty.3
index f48ef8979..918b83db7 100644
--- a/man3/openpty.3
+++ b/man3/openpty.3
@@ -199,7 +199,7 @@ may not be secure.
.BR ttyname (3),
.BR pty (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/perror.3 b/man3/perror.3
index 042d701e7..e67029616 100644
--- a/man3/perror.3
+++ b/man3/perror.3
@@ -28,7 +28,7 @@
.\" (msmith@falcon.mercer.peachnet.edu) and various other changes.
.\" Modified 1996-05-16 by Martin Schulze (joey@infodrom.north.de)
.\"
-.TH PERROR 3 2019-03-06 "" "Linux Programmer's Manual"
+.TH PERROR 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
perror \- print a system error message
.SH SYNOPSIS
@@ -44,14 +44,14 @@ perror \- print a system error message
.br
.BI "int " errno "; \fR/* Not really declared this way; see errno(3) */"
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.IR sys_errlist ,
.IR sys_nerr :
- Since glibc 2.19:
+ From glibc 2.19 to 2.31:
_DEFAULT_SOURCE
Glibc 2.19 and earlier:
_BSD_SOURCE
@@ -111,6 +111,13 @@ Thus, if a failing call is not immediately followed by a call to
the value of
.I errno
should be saved.
+.SH VERSIONS
+Since glibc version 2.32, the declarations of
+.I sys_errlist
+and
+.I sys_nerr
+are no longer exposed by
+.IR <stdio.h> .
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
@@ -155,7 +162,7 @@ are defined by glibc, but in
.BR error (3),
.BR strerror (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pid_t.3 b/man3/pid_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/pid_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/popen.3 b/man3/popen.3
index 95ec08680..e32f83a9d 100644
--- a/man3/popen.3
+++ b/man3/popen.3
@@ -49,11 +49,11 @@ popen, pclose \- pipe stream to or from a process
.BI "int pclose(FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR popen (),
.BR pclose ():
@@ -232,7 +232,7 @@ The only hint is an exit status of 127.
.BR stdio (3),
.BR system (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/posix_fallocate.3 b/man3/posix_fallocate.3
index a6a77063c..bb158cfdb 100644
--- a/man3/posix_fallocate.3
+++ b/man3/posix_fallocate.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH POSIX_FALLOCATE 3 2017-09-15 "GNU" "Linux Programmer's Manual"
+.TH POSIX_FALLOCATE 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
posix_fallocate \- allocate file space
.SH SYNOPSIS
@@ -33,10 +33,10 @@ posix_fallocate \- allocate file space
.fi
.PP
.ad l
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR posix_fallocate ():
.RS 4
@@ -98,6 +98,13 @@ There is not enough space left on the device containing the file
referred to by
.IR fd .
.TP
+.B EOPNOTSUPP
+The filesystem containing the file referred to by
+.I fd
+does not support this operation.
+This error code can be returned by C libraries that don't perform the
+emulation shown in NOTES, such as musl libc.
+.TP
.B ESPIPE
.I fd
refers to a pipe.
@@ -184,7 +191,7 @@ fallback with all the same problems as the emulation provided by glibc.
.BR lseek (2),
.BR posix_fadvise (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/posix_madvise.3 b/man3/posix_madvise.3
index 6db3c2394..1537fc894 100644
--- a/man3/posix_madvise.3
+++ b/man3/posix_madvise.3
@@ -27,10 +27,10 @@ posix_madvise \- give advice about patterns of memory usage
.BI "int posix_madvise(void *" addr ", size_t " len ", int " advice );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR posix_madvise ():
.br
@@ -127,7 +127,7 @@ has destructive semantics.
.BR madvise (2),
.BR posix_fadvise (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/posix_memalign.3 b/man3/posix_memalign.3
index 2242fbbdb..49225ed71 100644
--- a/man3/posix_memalign.3
+++ b/man3/posix_memalign.3
@@ -43,10 +43,10 @@ posix_memalign, aligned_alloc, memalign, valloc, pvalloc \- allocate aligned mem
.BI "void *pvalloc(size_t " size );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR posix_memalign ():
@@ -305,7 +305,7 @@ needed only if you require larger alignment values.
.BR free (3),
.BR malloc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/posix_openpt.3 b/man3/posix_openpt.3
index d035fb745..2cb04e2e5 100644
--- a/man3/posix_openpt.3
+++ b/man3/posix_openpt.3
@@ -33,10 +33,10 @@ posix_openpt \- open a pseudoterminal device
.BI "int posix_openpt(int " flags ");"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR posix_openpt ():
@@ -122,7 +122,7 @@ The slave device pathname exists only as long as the master device is open.
.BR pts (4),
.BR pty (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/posix_spawn.3 b/man3/posix_spawn.3
index 6c35b7779..b58dbbca8 100644
--- a/man3/posix_spawn.3
+++ b/man3/posix_spawn.3
@@ -28,7 +28,7 @@
.\" POSIX 1003.1-2004 documentation
.\" (http://www.opengroup.org/onlinepubs/009695399)
.\"
-.TH POSIX_SPAWN 3 2020-04-11 "GNU" "Linux Programmer's Manual"
+.TH POSIX_SPAWN 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
posix_spawn, posix_spawnp \- spawn a process
.SH SYNOPSIS
@@ -41,9 +41,9 @@ posix_spawn, posix_spawnp \- spawn a process
.BI " char *const " argv[] ", char *const " envp[] );
.PP
.BI "int posix_spawnp(pid_t *" pid ", const char *" file ,
-.BI " const posix_spawn_file_actions_t *" file_actions ,
-.BI " const posix_spawnattr_t *" attrp ,
-.BI " char *const " argv[] ", char *const " envp[] );
+.BI " const posix_spawn_file_actions_t *" file_actions ,
+.BI " const posix_spawnattr_t *" attrp ,
+.BI " char *const " argv[] ", char *const " envp[] );
.fi
.SH DESCRIPTION
The
@@ -613,7 +613,7 @@ command is executed in the child, and the
.BR posix_spawn ()
call employs no file actions or attributes objects.
.PP
-.in +4
+.in +4n
.EX
$ \fB./a.out date\fP
PID of child: 7634
@@ -630,7 +630,7 @@ Consequently,
.BR date (1)
fails when trying to perform output and exits with a status of 1.
.PP
-.in +4
+.in +4n
.EX
$ \fB./a.out \-c date\fP
PID of child: 7636
@@ -654,7 +654,7 @@ is necessary
.RB ( SIGKILL
can't be blocked).
.PP
-.in +4
+.in +4n
.EX
$ \fB./a.out \-s sleep 60 &\fP
[1] 7637
@@ -671,7 +671,7 @@ When we try to execute a nonexistent command in the child, the
.BR exec (3)
fails and the child exits with a status of 127.
.PP
-.in +4
+.in +4n
.EX
$ \fB./a.out xxxxx
PID of child: 10190
@@ -682,6 +682,7 @@ Child status: exited, status=127
\&
.EX
#include <spawn.h>
+#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
@@ -780,7 +781,7 @@ main(int argc, char *argv[])
errExitEN(s, "posix_spawn_file_actions_destroy");
}
- printf("PID of child: %ld\en", (long) child_pid);
+ printf("PID of child: %jd\en", (intmax_t) child_pid);
/* Monitor status of the child until it terminates */
@@ -843,7 +844,7 @@ main(int argc, char *argv[])
Base Definitions volume of POSIX.1-2001,
.I http://www.opengroup.org/unix/online.html
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pow.3 b/man3/pow.3
index 42dfd7bb6..b8006de34 100644
--- a/man3/pow.3
+++ b/man3/pow.3
@@ -46,10 +46,10 @@ pow, powf, powl \- power functions
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR powf (),
@@ -379,7 +379,7 @@ in addition to the overflow or underflow exception.
.BR cpow (3),
.BR sqrt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pow10.3 b/man3/pow10.3
index 29495287f..5a682a94f 100644
--- a/man3/pow10.3
+++ b/man3/pow10.3
@@ -72,7 +72,7 @@ This functions are nonstandard GNU extensions.
.BR exp10 (3),
.BR pow (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/printf.3 b/man3/printf.3
index d6a279b23..1a4e21159 100644
--- a/man3/printf.3
+++ b/man3/printf.3
@@ -31,7 +31,7 @@
.\" 2000-07-26 jsm28@hermes.cam.ac.uk - three small fixes
.\" 2000-10-16 jsm28@hermes.cam.ac.uk - more fixes
.\"
-.TH PRINTF 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH PRINTF 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
printf, fprintf, dprintf, sprintf, snprintf, vprintf, vfprintf, vdprintf,
vsprintf, vsnprintf \- formatted output conversion
@@ -55,10 +55,10 @@ vsprintf, vsnprintf \- formatted output conversion
", va_list " ap );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR snprintf (),
@@ -467,24 +467,24 @@ argument.
.TP
.B h
A following integer conversion corresponds to a
-.I short int
+.I short
or
-.I unsigned short int
+.I unsigned short
argument, or a following
.B n
conversion corresponds to a pointer to a
-.I short int
+.I short
argument.
.TP
.B l
(ell) A following integer conversion corresponds to a
-.I long int
+.I long
or
-.I unsigned long int
+.I unsigned long
argument, or a following
.B n
conversion corresponds to a pointer to a
-.I long int
+.I long
argument, or a following
.B c
conversion corresponds to a
@@ -498,13 +498,13 @@ argument.
.B ll
(ell-ell).
A following integer conversion corresponds to a
-.I long long int
+.I long long
or
-.I unsigned long long int
+.I unsigned long long
argument, or a following
.B n
conversion corresponds to a pointer to a
-.I long long int
+.I long long
argument.
.TP
.B q
@@ -730,7 +730,7 @@ conversion, the
.I double
argument is converted to hexadecimal notation (using the letters abcdef)
in the style
-.RB [\-] 0x h \&. hhhh p \(+-;
+.RB [\-] 0x h \&. hhhh p \(+-d;
for
.B A
conversion the prefix
@@ -746,6 +746,8 @@ and otherwise is sufficiently large to distinguish values of type
.IR double .
The digit before the decimal point is unspecified for nonnormalized
numbers, and nonzero but otherwise unspecified for normalized numbers.
+The exponent always contains at least one
+digit; if the value is zero, the exponent is 0.
.TP
.B c
If no
@@ -948,7 +950,7 @@ with C99.
.\" locale, "%m$" and "*m$".
.\" It knows about the length modifiers \fBh\fP, \fBl\fP, \fBL\fP,
.\" \fBZ\fP, and \fBq\fP, but accepts \fBL\fP and \fBq\fP
-.\" both for \fIlong double\fP and for \fIlong long int\fP (this is a bug).
+.\" both for \fIlong double\fP and for \fIlong long\fP (this is a bug).
.\" It no longer recognizes \fBF\fP, \fBD\fP, \fBO\fP, and \fBU\fP,
.\" but adds the conversion character
.\" .BR m ,
@@ -1146,7 +1148,7 @@ make_message(const char *fmt, ...)
if (n < 0)
return NULL;
- /* One extra byte for '\e0' */
+ /* One extra byte for \(aq\e0\(aq */
size = (size_t) n + 1;
p = malloc(size);
@@ -1179,7 +1181,7 @@ error instead of being handled gracefully.
.BR wprintf (3),
.BR locale (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/profil.3 b/man3/profil.3
index da8627a3e..b1a009246 100644
--- a/man3/profil.3
+++ b/man3/profil.3
@@ -36,10 +36,10 @@ profil \- execution time profile
.BI " size_t " offset ", unsigned int " scale );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR profil ():
.nf
@@ -106,7 +106,7 @@ Libc 4.4 contained a kernel patch providing a system call profil.
.BR sigaction (2),
.BR signal (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/program_invocation_name.3 b/man3/program_invocation_name.3
index e820943f7..4f6f39983 100644
--- a/man3/program_invocation_name.3
+++ b/man3/program_invocation_name.3
@@ -63,7 +63,7 @@ file provides access to similar information.
.SH SEE ALSO
.BR proc (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/psignal.3 b/man3/psignal.3
index eb863e5a6..58d75d998 100644
--- a/man3/psignal.3
+++ b/man3/psignal.3
@@ -27,7 +27,7 @@
.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\" 386BSD man pages
.\" Modified Sat Jul 24 18:45:17 1993 by Rik Faith (faith@cs.unc.edu)
-.TH PSIGNAL 3 2017-09-15 "GNU" "Linux Programmer's Manual"
+.TH PSIGNAL 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
psignal, psiginfo \- print signal description
.SH SYNOPSIS
@@ -36,14 +36,12 @@ psignal, psiginfo \- print signal description
.PP
.BI "void psignal(int " sig ", const char *" s );
.BI "void psiginfo(const siginfo_t *" pinfo ", const char *" s );
-.PP
-.BI "extern const char *const " sys_siglist [];
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR psignal ():
Since glibc 2.19:
@@ -53,12 +51,6 @@ Feature Test Macro Requirements for glibc (see
.br
.BR psiginfo ():
_POSIX_C_SOURCE\ >=\ 200809L
-.br
-.IR sys_siglist :
- Since glibc 2.19:
- _DEFAULT_SOURCE
- Glibc 2.19 and earlier:
- _BSD_SOURCE
.SH DESCRIPTION
The
.BR psignal ()
@@ -89,9 +81,6 @@ and the user ID and process ID of the sender, for signals set using
.BR kill (2)
or
.BR sigqueue (3)).
-.PP
-The array \fIsys_siglist\fP holds the signal description strings
-indexed by signal number.
.SH RETURN VALUE
The
.BR psignal ()
@@ -136,7 +125,7 @@ Additional details are not displayed for real-time signals.
.BR strsignal (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_atfork.3 b/man3/pthread_atfork.3
index d8bb24e75..306474a1b 100644
--- a/man3/pthread_atfork.3
+++ b/man3/pthread_atfork.3
@@ -124,7 +124,7 @@ shall not fail with the error
.BR atexit (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_init.3 b/man3/pthread_attr_init.3
index 5899f8815..656201cea 100644
--- a/man3/pthread_attr_init.3
+++ b/man3/pthread_attr_init.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PTHREAD_ATTR_INIT 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_ATTR_INIT 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pthread_attr_init, pthread_attr_destroy \- initialize and destroy
thread attributes object
@@ -228,7 +228,7 @@ display_pthread_attr(pthread_attr_t *attr, char *prefix)
if (s != 0)
handle_error_en(s, "pthread_attr_getstack");
printf("%sStack address = %p\en", prefix, stkaddr);
- printf("%sStack size = 0x%zx bytes\en", prefix, v);
+ printf("%sStack size = %#zx bytes\en", prefix, v);
}
static void *
@@ -266,7 +266,7 @@ main(int argc, char *argv[])
and set attrp pointing to thread attributes object */
if (argc > 1) {
- int stack_size;
+ size_t stack_size;
void *sp;
attrp = &attr;
@@ -319,6 +319,7 @@ main(int argc, char *argv[])
.BR pthread_attr_setschedparam (3),
.BR pthread_attr_setschedpolicy (3),
.BR pthread_attr_setscope (3),
+.BR pthread_attr_setsigmask_np (3),
.BR pthread_attr_setstack (3),
.BR pthread_attr_setstackaddr (3),
.BR pthread_attr_setstacksize (3),
@@ -327,7 +328,7 @@ main(int argc, char *argv[])
.BR pthread_setattr_default_np (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setaffinity_np.3 b/man3/pthread_attr_setaffinity_np.3
index fb8568761..b7801b5a5 100644
--- a/man3/pthread_attr_setaffinity_np.3
+++ b/man3/pthread_attr_setaffinity_np.3
@@ -136,7 +136,7 @@ Instead the CPU set size given to the underlying system calls was always
.BR cpuset (7),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setdetachstate.3 b/man3/pthread_attr_setdetachstate.3
index 5955add86..5bc302801 100644
--- a/man3/pthread_attr_setdetachstate.3
+++ b/man3/pthread_attr_setdetachstate.3
@@ -128,7 +128,7 @@ See
.BR pthread_join (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setguardsize.3 b/man3/pthread_attr_setguardsize.3
index 40bc22299..e9635b12f 100644
--- a/man3/pthread_attr_setguardsize.3
+++ b/man3/pthread_attr_setguardsize.3
@@ -177,7 +177,7 @@ See
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setinheritsched.3 b/man3/pthread_attr_setinheritsched.3
index 99c32156c..3c939eac0 100644
--- a/man3/pthread_attr_setinheritsched.3
+++ b/man3/pthread_attr_setinheritsched.3
@@ -154,7 +154,7 @@ See
.BR pthreads (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setschedparam.3 b/man3/pthread_attr_setschedparam.3
index 912032360..00a0ea9b3 100644
--- a/man3/pthread_attr_setschedparam.3
+++ b/man3/pthread_attr_setschedparam.3
@@ -139,7 +139,7 @@ See
.BR pthreads (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setschedpolicy.3 b/man3/pthread_attr_setschedpolicy.3
index a3e8042cf..51807bc07 100644
--- a/man3/pthread_attr_setschedpolicy.3
+++ b/man3/pthread_attr_setschedpolicy.3
@@ -127,7 +127,7 @@ See
.BR pthreads (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setscope.3 b/man3/pthread_attr_setscope.3
index bbc5759ec..b00a9eb90 100644
--- a/man3/pthread_attr_setscope.3
+++ b/man3/pthread_attr_setscope.3
@@ -153,7 +153,7 @@ implementation-defined.
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setsigmask_np.3 b/man3/pthread_attr_setsigmask_np.3
new file mode 100644
index 000000000..26a90f80a
--- /dev/null
+++ b/man3/pthread_attr_setsigmask_np.3
@@ -0,0 +1,156 @@
+.\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk
+.\" <mtk.manpages@gmail.com>
+.\"
+.\" %%%LICENSE_START(VERBATIM)
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
+.\"
+.TH PTHREAD_ATTR_SETSIGMASK_NP 3 2020-11-01 "Linux" "Linux Programmer's Manual"
+.SH NAME
+pthread_attr_setsigmask_np, pthread_attr_getsigmask_np \- set/get
+signal mask attribute in thread attributes object
+.SH SYNOPSIS
+.nf
+.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
+.B #include <pthread.h>
+.PP
+.BI "int pthread_attr_setsigmask_np(pthread_attr_t *" attr ,
+.BI " const sigset_t *" sigmask );
+.BI "int pthread_attr_getsigmask_np(const pthread_attr_t *" attr ,
+.BI " sigset_t *" sigmask );
+.PP
+Compile and link with \fI\-pthread\fP.
+.fi
+.SH DESCRIPTION
+The
+.BR pthread_attr_setsigmask_np ()
+function sets the signal mask attribute of the
+thread attributes object referred to by
+.I attr
+to the value specified in
+.IR *sigmask .
+If
+.I sigmask
+is specified as NULL, then any existing signal mask attribute in
+.I attr
+is unset.
+.PP
+The
+.BR pthread_attr_getsigmask_np ()
+function returns the signal mask attribute of the thread attributes object
+referred to by
+.IR attr
+in the buffer pointed to by
+.IR sigmask .
+If the signal mask attribute is currently unset,
+then this function returns the special value
+.B PTHREAD_ATTR_NO_SIGMASK_NP
+as its result.
+.SH RETURN VALUE
+The
+.BR pthread_attr_setsigmask_np ()
+function returns 0 on success, or a nonzero error number on failure.
+.PP
+the
+.BR pthread_attr_getsigmask_np ()
+function returns either 0 or
+.BR PTHREAD_ATTR_NO_SIGMASK_NP .
+When 0 is returned, the signal mask attribute is returned via
+.IR sigmask .
+A return value of
+.B PTHREAD_ATTR_NO_SIGMASK_NP
+indicates that the signal mask attribute is not set in
+.IR attr .
+.PP
+On error, these functions return a positive error number.
+.SH ERRORS
+.TP
+.B ENOMEM
+.RB ( pthread_attr_setsigmask_np ())
+Could not allocate memory.
+.SH VERSIONS
+These functions are provided by glibc since version 2.32.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbw30 lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR pthread_attr_setsigmask_np (),
+.BR pthread_attr_getsigmask_np ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH CONFORMING TO
+These functions are nonstandard GNU extensions;
+hence the suffix "_np" (nonportable) in the names.
+.SH NOTES
+The signal mask attribute determines the signal mask that will be assigned to
+a thread created using the thread attributes object
+.IR attr .
+If this attribute is not set, then a thread created using
+.I attr
+will inherit a copy of the creating thread's signal mask.
+.PP
+For more details on signal masks, see
+.BR sigprocmask (2).
+For a description of a set of macros
+that can be used to manipulate and inspect signals sets, see
+.BR sigsetops (3).
+.PP
+In the absence of
+.BR pthread_attr_setsigmask_np ()
+it is possible to create a thread with a desired signal mask as follows:
+.IP \(bu 2
+The creating thread uses
+.BR pthread_sigmask (3)
+to save its current signal mask and set its mask to block all signals.
+.IP \(bu
+The new thread is then created using
+.BR pthread_create ();
+the new thread will inherit the creating thread's signal mask.
+.IP \(bu
+The new thread sets its signal mask to the desired value using
+.BR pthread_sigmask (3).
+.IP \(bu
+The creating thread restores its signal mask to the original value.
+.PP
+Following the above steps,
+there is no possibility for the new thread to receive a signal
+before it has adjusted its signal mask to the desired value.
+.SH SEE ALSO
+.BR sigprocmask (2),
+.BR pthread_attr_init (3),
+.BR pthread_sigmask (3),
+.BR pthreads (7),
+.BR signals (7)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man3/pthread_attr_setstack.3 b/man3/pthread_attr_setstack.3
index 7d15ddf53..8cd2b9c25 100644
--- a/man3/pthread_attr_setstack.3
+++ b/man3/pthread_attr_setstack.3
@@ -39,10 +39,10 @@ attributes in thread attributes object
Compile and link with \fI\-pthread\fP.
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR pthread_attr_getstack (),
@@ -178,7 +178,7 @@ See
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setstackaddr.3 b/man3/pthread_attr_setstackaddr.3
index da9bdea31..7f4837f81 100644
--- a/man3/pthread_attr_setstackaddr.3
+++ b/man3/pthread_attr_setstackaddr.3
@@ -127,7 +127,7 @@ argument specifies the range of the stack).
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_attr_setstacksize.3 b/man3/pthread_attr_setstacksize.3
index 3acbb1b40..59a2363a0 100644
--- a/man3/pthread_attr_setstacksize.3
+++ b/man3/pthread_attr_setstacksize.3
@@ -129,7 +129,7 @@ See
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_cancel.3 b/man3/pthread_cancel.3
index 644ea9c56..0b9452f3a 100644
--- a/man3/pthread_cancel.3
+++ b/man3/pthread_cancel.3
@@ -249,7 +249,7 @@ main(void)
.BR pthread_testcancel (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_cleanup_push.3 b/man3/pthread_cleanup_push.3
index c09a9b024..56385dde8 100644
--- a/man3/pthread_cleanup_push.3
+++ b/man3/pthread_cleanup_push.3
@@ -333,7 +333,7 @@ main(int argc, char *argv[])
.BR pthread_testcancel (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_cleanup_push_defer_np.3 b/man3/pthread_cleanup_push_defer_np.3
index 625f56067..2a4c2c546 100644
--- a/man3/pthread_cleanup_push_defer_np.3
+++ b/man3/pthread_cleanup_push_defer_np.3
@@ -38,10 +38,10 @@ thread cancellation clean-up handlers while saving cancelability type
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR pthread_cleanup_push_defer_np (),
@@ -121,7 +121,7 @@ hence the suffix "_np" (nonportable) in the names.
.BR pthread_testcancel (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_create.3 b/man3/pthread_create.3
index 0b2933cfe..05e31bdd3 100644
--- a/man3/pthread_create.3
+++ b/man3/pthread_create.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PTHREAD_CREATE 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_CREATE 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pthread_create \- create a new thread
.SH SYNOPSIS
@@ -305,7 +305,7 @@ static void *
thread_start(void *arg)
{
struct thread_info *tinfo = arg;
- char *uargv, *p;
+ char *uargv;
printf("Thread %d: top of stack near %p; argv_string=%s\en",
tinfo\->thread_num, &p, tinfo\->argv_string);
@@ -314,7 +314,7 @@ thread_start(void *arg)
if (uargv == NULL)
handle_error("strdup");
- for (p = uargv; *p != \(aq\e0\(aq; p++)
+ for (char *p = uargv; *p != \(aq\e0\(aq; p++)
*p = toupper(*p);
return uargv;
@@ -323,10 +323,9 @@ thread_start(void *arg)
int
main(int argc, char *argv[])
{
- int s, tnum, opt, num_threads;
- struct thread_info *tinfo;
+ int s, opt, num_threads;
pthread_attr_t attr;
- int stack_size;
+ size_t stack_size;
void *res;
/* The "\-s" option specifies a stack size for our threads */
@@ -361,13 +360,13 @@ main(int argc, char *argv[])
/* Allocate memory for pthread_create() arguments */
- tinfo = calloc(num_threads, sizeof(struct thread_info));
+ struct thread_info *tinfo = calloc(num_threads, sizeof(*tinfo));
if (tinfo == NULL)
handle_error("calloc");
/* Create one thread for each command\-line argument */
- for (tnum = 0; tnum < num_threads; tnum++) {
+ for (int tnum = 0; tnum < num_threads; tnum++) {
tinfo[tnum].thread_num = tnum + 1;
tinfo[tnum].argv_string = argv[optind + tnum];
@@ -389,7 +388,7 @@ main(int argc, char *argv[])
/* Now join with each thread, and display its returned value */
- for (tnum = 0; tnum < num_threads; tnum++) {
+ for (int tnum = 0; tnum < num_threads; tnum++) {
s = pthread_join(tinfo[tnum].thread_id, &res);
if (s != 0)
handle_error_en(s, "pthread_join");
@@ -418,7 +417,7 @@ main(int argc, char *argv[])
.BR pthread_setattr_default_np (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_detach.3 b/man3/pthread_detach.3
index b2f182f5b..7d4c1f475 100644
--- a/man3/pthread_detach.3
+++ b/man3/pthread_detach.3
@@ -115,7 +115,7 @@ The following statement detaches the calling thread:
.BR pthread_join (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_equal.3 b/man3/pthread_equal.3
index 154c7b7ff..d6544f6b2 100644
--- a/man3/pthread_equal.3
+++ b/man3/pthread_equal.3
@@ -70,7 +70,7 @@ values.
.BR pthread_self (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_exit.3 b/man3/pthread_exit.3
index 629ff8adb..97bc1a5c8 100644
--- a/man3/pthread_exit.3
+++ b/man3/pthread_exit.3
@@ -119,7 +119,7 @@ sent to a foreground process whose thread group leader has already called
.BR pthread_join (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_getattr_default_np.3 b/man3/pthread_getattr_default_np.3
index 999f26827..1e956f922 100644
--- a/man3/pthread_getattr_default_np.3
+++ b/man3/pthread_getattr_default_np.3
@@ -210,7 +210,7 @@ main(int argc, char *argv[])
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_getattr_np.3 b/man3/pthread_getattr_np.3
index 1ebeb27a4..86245a752 100644
--- a/man3/pthread_getattr_np.3
+++ b/man3/pthread_getattr_np.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PTHREAD_GETATTR_NP 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_GETATTR_NP 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pthread_getattr_np \- get attributes of created thread
.SH SYNOPSIS
@@ -213,7 +213,7 @@ display_stack_related_attributes(pthread_attr_t *attr, char *prefix)
s = pthread_attr_getguardsize(attr, &guard_size);
if (s != 0)
handle_error_en(s, "pthread_attr_getguardsize");
- printf("%sGuard size = %d bytes\en", prefix, guard_size);
+ printf("%sGuard size = %zu bytes\en", prefix, guard_size);
s = pthread_attr_getstack(attr, &stack_addr, &stack_size);
if (s != 0)
@@ -222,7 +222,7 @@ display_stack_related_attributes(pthread_attr_t *attr, char *prefix)
if (stack_size > 0)
printf(" (EOS = %p)", (char *) stack_addr + stack_size);
printf("\en");
- printf("%sStack size = 0x%x (%d) bytes\en",
+ printf("%sStack size = %#zx (%zu) bytes\en",
prefix, stack_size, stack_size);
}
@@ -268,8 +268,8 @@ get_thread_attributes_from_cl(int argc, char *argv[],
pthread_attr_t *attrp)
{
int s, opt, allocate_stack;
- long stack_size, guard_size;
- void *stack_addr;
+ size_t stack_size, guard_size;
+ void *stack_addr;
pthread_attr_t *ret_attrp = NULL; /* Set to attrp if we initialize
a thread attributes object */
allocate_stack = 0;
@@ -373,7 +373,7 @@ main(int argc, char *argv[])
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_getcpuclockid.3 b/man3/pthread_getcpuclockid.3
index 93ec57fb0..c104c5128 100644
--- a/man3/pthread_getcpuclockid.3
+++ b/man3/pthread_getcpuclockid.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PTHREAD_GETCPUCLOCKID 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_GETCPUCLOCKID 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pthread_getcpuclockid \- retrieve ID of a thread's CPU time clock
.SH SYNOPSIS
@@ -115,6 +115,7 @@ Subthread CPU time: 0.992
#include <time.h>
#include <stdio.h>
+#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
@@ -143,7 +144,7 @@ pclock(char *msg, clockid_t cid)
printf("%s", msg);
if (clock_gettime(cid, &ts) == \-1)
handle_error("clock_gettime");
- printf("%4ld.%03ld\en", ts.tv_sec, ts.tv_nsec / 1000000);
+ printf("%4jd.%03ld\en", (intmax_t) ts.tv_sec, ts.tv_nsec / 1000000);
}
int
@@ -151,7 +152,7 @@ main(int argc, char *argv[])
{
pthread_t thread;
clockid_t cid;
- int j, s;
+ int s;
s = pthread_create(&thread, NULL, thread_start, NULL);
if (s != 0)
@@ -161,7 +162,7 @@ main(int argc, char *argv[])
sleep(1);
printf("Main thread consuming some CPU time...\en");
- for (j = 0; j < 2000000; j++)
+ for (int j = 0; j < 2000000; j++)
getppid();
pclock("Process total CPU time: ", CLOCK_PROCESS_CPUTIME_ID);
@@ -191,7 +192,7 @@ main(int argc, char *argv[])
.BR pthreads (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_join.3 b/man3/pthread_join.3
index 667e905e1..cf6d30988 100644
--- a/man3/pthread_join.3
+++ b/man3/pthread_join.3
@@ -148,7 +148,7 @@ See
.BR pthread_tryjoin_np (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_kill.3 b/man3/pthread_kill.3
index dc8e5d3f6..53bba6e35 100644
--- a/man3/pthread_kill.3
+++ b/man3/pthread_kill.3
@@ -35,10 +35,10 @@ pthread_kill \- send a signal to a thread
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR pthread_kill ():
@@ -123,7 +123,7 @@ can, for example, cause a segmentation fault.
.BR pthreads (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_kill_other_threads_np.3 b/man3/pthread_kill_other_threads_np.3
index 4d507667a..3d9fe79ef 100644
--- a/man3/pthread_kill_other_threads_np.3
+++ b/man3/pthread_kill_other_threads_np.3
@@ -82,7 +82,7 @@ because the implementation does the right thing during an
.BR pthread_setcanceltype (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_mutex_consistent.3 b/man3/pthread_mutex_consistent.3
index 10d374d68..eed8dd616 100644
--- a/man3/pthread_mutex_consistent.3
+++ b/man3/pthread_mutex_consistent.3
@@ -35,10 +35,10 @@ pthread_mutex_consistent \- make a robust mutex consistent
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR pthread_mutex_consistent ():
.br
@@ -105,7 +105,7 @@ See
.BR pthread_mutexattr_setrobust (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_mutexattr_getpshared.3 b/man3/pthread_mutexattr_getpshared.3
index 8d99f985c..0e0decc5f 100644
--- a/man3/pthread_mutexattr_getpshared.3
+++ b/man3/pthread_mutexattr_getpshared.3
@@ -97,7 +97,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR pthread_mutexattr_init (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_mutexattr_init.3 b/man3/pthread_mutexattr_init.3
index 16910e265..b49c3b06e 100644
--- a/man3/pthread_mutexattr_init.3
+++ b/man3/pthread_mutexattr_init.3
@@ -69,7 +69,7 @@ have already been initialized using that object.
.BR pthread_mutexattr_getrobust (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_mutexattr_setrobust.3 b/man3/pthread_mutexattr_setrobust.3
index af656c901..0e020cb67 100644
--- a/man3/pthread_mutexattr_setrobust.3
+++ b/man3/pthread_mutexattr_setrobust.3
@@ -39,10 +39,10 @@ pthread_mutexattr_getrobust, pthread_mutexattr_setrobust
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR pthread_mutexattr_getrobust (),
.BR pthread_mutexattr_setrobust ():
@@ -283,7 +283,7 @@ main(int argc, char *argv[])
.BR pthread_mutex_lock (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_rwlockattr_setkind_np.3 b/man3/pthread_rwlockattr_setkind_np.3
index ce5d6403d..14b2e06ab 100644
--- a/man3/pthread_rwlockattr_setkind_np.3
+++ b/man3/pthread_rwlockattr_setkind_np.3
@@ -38,10 +38,10 @@ the read-write lock kind of the thread read-write lock attribute object
Compile and link with \fI\-pthread\fP.
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR pthread_rwlockattr_setkind_np (),
.BR pthread_rwlockattr_getkind_np ():
@@ -143,7 +143,7 @@ hence the suffix "_np" (nonportable) in the names.
.SH SEE ALSO
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_self.3 b/man3/pthread_self.3
index b8495984f..eb439f53f 100644
--- a/man3/pthread_self.3
+++ b/man3/pthread_self.3
@@ -90,7 +90,7 @@ is not the same thing as the kernel thread ID returned by a call to
.BR pthread_equal (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_setaffinity_np.3 b/man3/pthread_setaffinity_np.3
index bb1e44608..a06dd6229 100644
--- a/man3/pthread_setaffinity_np.3
+++ b/man3/pthread_setaffinity_np.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PTHREAD_SETAFFINITY_NP 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_SETAFFINITY_NP 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pthread_setaffinity_np, pthread_getaffinity_np \- set/get
CPU affinity of a thread
@@ -182,7 +182,7 @@ to check the resulting CPU affinity mask of the thread.
int
main(int argc, char *argv[])
{
- int s, j;
+ int s;
cpu_set_t cpuset;
pthread_t thread;
@@ -191,21 +191,21 @@ main(int argc, char *argv[])
/* Set affinity mask to include CPUs 0 to 7 */
CPU_ZERO(&cpuset);
- for (j = 0; j < 8; j++)
+ for (int j = 0; j < 8; j++)
CPU_SET(j, &cpuset);
- s = pthread_setaffinity_np(thread, sizeof(cpu_set_t), &cpuset);
+ s = pthread_setaffinity_np(thread, sizeof(cpuset), &cpuset);
if (s != 0)
handle_error_en(s, "pthread_setaffinity_np");
/* Check the actual affinity mask assigned to the thread */
- s = pthread_getaffinity_np(thread, sizeof(cpu_set_t), &cpuset);
+ s = pthread_getaffinity_np(thread, sizeof(cpuset), &cpuset);
if (s != 0)
handle_error_en(s, "pthread_getaffinity_np");
printf("Set returned by pthread_getaffinity_np() contained:\en");
- for (j = 0; j < CPU_SETSIZE; j++)
+ for (int j = 0; j < CPU_SETSIZE; j++)
if (CPU_ISSET(j, &cpuset))
printf(" CPU %d\en", j);
@@ -222,7 +222,7 @@ main(int argc, char *argv[])
.BR pthreads (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_setcancelstate.3 b/man3/pthread_setcancelstate.3
index a08ce6b96..0b68ab1e8 100644
--- a/man3/pthread_setcancelstate.3
+++ b/man3/pthread_setcancelstate.3
@@ -211,7 +211,7 @@ See
.BR pthread_testcancel (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_setconcurrency.3 b/man3/pthread_setconcurrency.3
index 14af6fc2f..c003120bb 100644
--- a/man3/pthread_setconcurrency.3
+++ b/man3/pthread_setconcurrency.3
@@ -114,7 +114,7 @@ and they have no effect on the execution of a program.
.BR pthread_attr_setscope (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_setname_np.3 b/man3/pthread_setname_np.3
index ec295790b..2fd7ed2f7 100644
--- a/man3/pthread_setname_np.3
+++ b/man3/pthread_setname_np.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PTHREAD_SETNAME_NP 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_SETNAME_NP 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pthread_setname_np, pthread_getname_np \- set/get the name of a thread
.SH SYNOPSIS
@@ -141,7 +141,7 @@ Created a thread. Default name is: a.out
The thread name after setting it is THREADFOO.
\fB\(haZ\fP # Suspend the program
[1]+ Stopped ./a.out
-.RB "$ " "ps H \-C a.out \-o 'pid tid cmd comm'"
+.RB "$ " "ps H \-C a.out \-o \(aqpid tid cmd comm\(aq"
PID TID CMD COMMAND
5990 5990 ./a.out a.out
5990 5991 ./a.out THREADFOO
@@ -165,8 +165,8 @@ THREADFOO
#define NAMELEN 16
#define errExitEN(en, msg) \e
- do { errno = en; perror(msg); exit(EXIT_FAILURE); \e
- } while (0)
+ do { errno = en; perror(msg); \e
+ exit(EXIT_FAILURE); } while (0)
static void *
threadfunc(void *parm)
@@ -218,7 +218,7 @@ main(int argc, char **argv)
.BR pthread_create (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_setschedparam.3 b/man3/pthread_setschedparam.3
index 5493eed7f..40d4c3ece 100644
--- a/man3/pthread_setschedparam.3
+++ b/man3/pthread_setschedparam.3
@@ -458,7 +458,7 @@ main(int argc, char *argv[])
.BR pthreads (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_setschedprio.3 b/man3/pthread_setschedprio.3
index ae9220b28..ebd6678e4 100644
--- a/man3/pthread_setschedprio.3
+++ b/man3/pthread_setschedprio.3
@@ -115,7 +115,7 @@ in each scheduling policy, see
.BR pthreads (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_sigmask.3 b/man3/pthread_sigmask.3
index 9e5a2a918..a60e32739 100644
--- a/man3/pthread_sigmask.3
+++ b/man3/pthread_sigmask.3
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH PTHREAD_SIGMASK 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PTHREAD_SIGMASK 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pthread_sigmask \- examine and change mask of blocked signals
.SH SYNOPSIS
@@ -36,10 +36,10 @@ pthread_sigmask \- examine and change mask of blocked signals
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR pthread_sigmask ():
@@ -154,7 +154,7 @@ main(int argc, char *argv[])
if (s != 0)
handle_error_en(s, "pthread_sigmask");
- s = pthread_create(&thread, NULL, &sig_thread, (void *) &set);
+ s = pthread_create(&thread, NULL, &sig_thread, &set);
if (s != 0)
handle_error_en(s, "pthread_create");
@@ -168,13 +168,14 @@ main(int argc, char *argv[])
.BR sigaction (2),
.BR sigpending (2),
.BR sigprocmask (2),
+.BR pthread_attr_setsigmask_np (3),
.BR pthread_create (3),
.BR pthread_kill (3),
.BR sigsetops (3),
.BR pthreads (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_sigqueue.3 b/man3/pthread_sigqueue.3
index f3d722c0f..72a36cfe9 100644
--- a/man3/pthread_sigqueue.3
+++ b/man3/pthread_sigqueue.3
@@ -36,10 +36,10 @@ pthread_sigqueue \- queue a signal and data to a thread
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR pthread_sigqueue ():
_GNU_SOURCE
@@ -124,7 +124,7 @@ for details.
.BR pthreads (7),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_spin_init.3 b/man3/pthread_spin_init.3
index 4e71ebbed..8b120dae3 100644
--- a/man3/pthread_spin_init.3
+++ b/man3/pthread_spin_init.3
@@ -35,10 +35,10 @@ pthread_spin_init, pthread_spin_destroy \- initialize or destroy a spin lock
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR pthread_spin_init (),
.BR pthread_spin_destroy ():
@@ -168,7 +168,7 @@ thread placement, and priority assignment.
.BR pthread_spin_unlock (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_spin_lock.3 b/man3/pthread_spin_lock.3
index 888af0d21..382e68f9f 100644
--- a/man3/pthread_spin_lock.3
+++ b/man3/pthread_spin_lock.3
@@ -37,10 +37,10 @@ lock and unlock a spin lock
.PP
Compile and link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR pthread_spin_lock (),
.BR pthread_spin_trylock ():
@@ -122,7 +122,7 @@ Carefully read NOTES in
.BR pthread_spin_init (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_testcancel.3 b/man3/pthread_testcancel.3
index 184a0ecdb..a51a93613 100644
--- a/man3/pthread_testcancel.3
+++ b/man3/pthread_testcancel.3
@@ -78,7 +78,7 @@ See
.BR pthread_setcancelstate (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_tryjoin_np.3 b/man3/pthread_tryjoin_np.3
index 235201509..d7bdf4f2b 100644
--- a/man3/pthread_tryjoin_np.3
+++ b/man3/pthread_tryjoin_np.3
@@ -163,7 +163,7 @@ if (s != 0) {
.BR pthread_join (3),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/pthread_yield.3 b/man3/pthread_yield.3
index 5e7d42b9f..c4377fff1 100644
--- a/man3/pthread_yield.3
+++ b/man3/pthread_yield.3
@@ -88,7 +88,7 @@ is unspecified and very likely means your application design is broken.
.BR pthreads (7),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ptrdiff_t.3 b/man3/ptrdiff_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/ptrdiff_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/ptsname.3 b/man3/ptsname.3
index e5b91a555..84233951c 100644
--- a/man3/ptsname.3
+++ b/man3/ptsname.3
@@ -14,10 +14,10 @@ ptsname, ptsname_r \- get the name of the slave pseudoterminal
.br
.BI "int ptsname_r(int " fd ", char *" buf ", size_t " buflen ");"
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR ptsname ():
@@ -131,7 +131,7 @@ Avoid using this function in portable programs.
.BR pts (4),
.BR pty (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/putenv.3 b/man3/putenv.3
index f7c280d3c..cdedeb4a2 100644
--- a/man3/putenv.3
+++ b/man3/putenv.3
@@ -44,10 +44,10 @@ putenv \- change or add an environment variable
.\" Not: const char *
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR putenv ():
_XOPEN_SOURCE
@@ -149,7 +149,7 @@ then the named variable is removed from the caller's environment.
.BR unsetenv (3),
.BR environ (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/putgrent.3 b/man3/putgrent.3
index 599c41921..4b76b6e8f 100644
--- a/man3/putgrent.3
+++ b/man3/putgrent.3
@@ -60,7 +60,7 @@ This function is a GNU extension.
.BR getgrent (3),
.BR group (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/putpwent.3 b/man3/putpwent.3
index 83ed6ffbd..fca46fc2d 100644
--- a/man3/putpwent.3
+++ b/man3/putpwent.3
@@ -39,10 +39,10 @@ putpwent \- write a password file entry
.BI "int putpwent(const struct passwd *" p ", FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR putpwent ():
Since glibc 2.19:
@@ -106,7 +106,7 @@ SVr4.
.BR getpwuid (3),
.BR setpwent (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/puts.3 b/man3/puts.3
index abbc57817..6e1b8ed40 100644
--- a/man3/puts.3
+++ b/man3/puts.3
@@ -138,7 +138,7 @@ will be undefined and very probably not what you want.
.BR scanf (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/putwchar.3 b/man3/putwchar.3
index b3b362f2f..4b8b3e05a 100644
--- a/man3/putwchar.3
+++ b/man3/putwchar.3
@@ -88,7 +88,7 @@ the multibyte sequence corresponding to the wide character
.BR fputwc (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/qecvt.3 b/man3/qecvt.3
index 83ea7fcff..f8fbd284b 100644
--- a/man3/qecvt.3
+++ b/man3/qecvt.3
@@ -39,10 +39,10 @@ qecvt, qfcvt, qgcvt \- convert a floating-point number to a string
.PP
.BI "char *qgcvt(long double " number ", int " ndigit ", char *" buf );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR qecvt (),
@@ -117,7 +117,7 @@ is recommended.
.BR gcvt (3),
.BR sprintf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/qsort.3 b/man3/qsort.3
index 439ec7c78..a39c76213 100644
--- a/man3/qsort.3
+++ b/man3/qsort.3
@@ -34,7 +34,7 @@
.\" and Ben Bacarisse <software@bsb.me.uk>
.\" Document qsort_r()
.\"
-.TH QSORT 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH QSORT 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
qsort, qsort_r \- sort an array
.SH SYNOPSIS
@@ -49,10 +49,10 @@ qsort, qsort_r \- sort an array
.BI " void *" arg ");"
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR qsort_r ():
@@ -137,14 +137,12 @@ cmpstringp(const void *p1, const void *p2)
pointers to char", but strcmp(3) arguments are "pointers
to char", hence the following cast plus dereference */
- return strcmp(* (char * const *) p1, * (char * const *) p2);
+ return strcmp(*(const char **) p1, *(const char **) p2);
}
int
main(int argc, char *argv[])
{
- int j;
-
if (argc < 2) {
fprintf(stderr, "Usage: %s <string>...\en", argv[0]);
exit(EXIT_FAILURE);
@@ -152,7 +150,7 @@ main(int argc, char *argv[])
qsort(&argv[1], argc \- 1, sizeof(char *), cmpstringp);
- for (j = 1; j < argc; j++)
+ for (int j = 1; j < argc; j++)
puts(argv[j]);
exit(EXIT_SUCCESS);
}
@@ -163,7 +161,7 @@ main(int argc, char *argv[])
.BR strcmp (3),
.BR versionsort (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/queue.3 b/man3/queue.3
index 85ef54d76..000e4b150 100644
--- a/man3/queue.3
+++ b/man3/queue.3
@@ -1,1240 +1 @@
-.\" Copyright (c) 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
-.\" Redistribution and use in source and binary forms, 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.
-.\" %%%LICENSE_END
-.\"
-.\" @(#)queue.3 8.2 (Berkeley) 1/24/94
-.\" $FreeBSD$
-.\"
-.Dd February 7, 2015
-.Dt QUEUE 3
-.Os
-.Sh NAME
-.Nm SLIST_EMPTY ,
-.Nm SLIST_ENTRY ,
-.Nm SLIST_FIRST ,
-.Nm SLIST_FOREACH ,
-.\" .Nm SLIST_FOREACH_FROM ,
-.\" .Nm SLIST_FOREACH_SAFE ,
-.\" .Nm SLIST_FOREACH_FROM_SAFE ,
-.Nm SLIST_HEAD ,
-.Nm SLIST_HEAD_INITIALIZER ,
-.Nm SLIST_INIT ,
-.Nm SLIST_INSERT_AFTER ,
-.Nm SLIST_INSERT_HEAD ,
-.Nm SLIST_NEXT ,
-.\" .Nm SLIST_REMOVE_AFTER ,
-.Nm SLIST_REMOVE_HEAD ,
-.Nm SLIST_REMOVE ,
-.\" .Nm SLIST_SWAP ,
-.Nm STAILQ_CONCAT ,
-.Nm STAILQ_EMPTY ,
-.Nm STAILQ_ENTRY ,
-.Nm STAILQ_FIRST ,
-.Nm STAILQ_FOREACH ,
-.\" .Nm STAILQ_FOREACH_FROM ,
-.\" .Nm STAILQ_FOREACH_SAFE ,
-.\" .Nm STAILQ_FOREACH_FROM_SAFE ,
-.Nm STAILQ_HEAD ,
-.Nm STAILQ_HEAD_INITIALIZER ,
-.Nm STAILQ_INIT ,
-.Nm STAILQ_INSERT_AFTER ,
-.Nm STAILQ_INSERT_HEAD ,
-.Nm STAILQ_INSERT_TAIL ,
-.\" .Nm STAILQ_LAST ,
-.Nm STAILQ_NEXT ,
-.\" .Nm STAILQ_REMOVE_AFTER ,
-.Nm STAILQ_REMOVE_HEAD ,
-.Nm STAILQ_REMOVE ,
-.\" .Nm STAILQ_SWAP ,
-.Nm LIST_EMPTY ,
-.Nm LIST_ENTRY ,
-.Nm LIST_FIRST ,
-.Nm LIST_FOREACH ,
-.\" .Nm LIST_FOREACH_FROM ,
-.\" .Nm LIST_FOREACH_SAFE ,
-.\" .Nm LIST_FOREACH_FROM_SAFE ,
-.Nm LIST_HEAD ,
-.Nm LIST_HEAD_INITIALIZER ,
-.Nm LIST_INIT ,
-.Nm LIST_INSERT_AFTER ,
-.Nm LIST_INSERT_BEFORE ,
-.Nm LIST_INSERT_HEAD ,
-.Nm LIST_NEXT ,
-.\" .Nm LIST_PREV ,
-.Nm LIST_REMOVE ,
-.\" .Nm LIST_SWAP ,
-.Nm TAILQ_CONCAT ,
-.Nm TAILQ_EMPTY ,
-.Nm TAILQ_ENTRY ,
-.Nm TAILQ_FIRST ,
-.Nm TAILQ_FOREACH ,
-.\" .Nm TAILQ_FOREACH_FROM ,
-.\" .Nm TAILQ_FOREACH_SAFE ,
-.\" .Nm TAILQ_FOREACH_FROM_SAFE ,
-.Nm TAILQ_FOREACH_REVERSE ,
-.\" .Nm TAILQ_FOREACH_REVERSE_FROM ,
-.\" .Nm TAILQ_FOREACH_REVERSE_SAFE ,
-.\" .Nm TAILQ_FOREACH_REVERSE_FROM_SAFE ,
-.Nm TAILQ_HEAD ,
-.Nm TAILQ_HEAD_INITIALIZER ,
-.Nm TAILQ_INIT ,
-.Nm TAILQ_INSERT_AFTER ,
-.Nm TAILQ_INSERT_BEFORE ,
-.Nm TAILQ_INSERT_HEAD ,
-.Nm TAILQ_INSERT_TAIL ,
-.Nm TAILQ_LAST ,
-.Nm TAILQ_NEXT ,
-.Nm TAILQ_PREV ,
-.Nm TAILQ_REMOVE
-.\" .Nm TAILQ_SWAP
-.Nd implementations of singly-linked lists, singly-linked tail queues,
-lists and tail queues
-.Sh SYNOPSIS
-.In sys/queue.h
-.\"
-.Fn SLIST_EMPTY "SLIST_HEAD *head"
-.Fn SLIST_ENTRY "TYPE"
-.Fn SLIST_FIRST "SLIST_HEAD *head"
-.Fn SLIST_FOREACH "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
-.\" .Fn SLIST_FOREACH_FROM "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME"
-.\" .Fn SLIST_FOREACH_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var"
-.\" .Fn SLIST_FOREACH_FROM_SAFE "TYPE *var" "SLIST_HEAD *head" "SLIST_ENTRY NAME" "TYPE *temp_var"
-.Fn SLIST_HEAD "HEADNAME" "TYPE"
-.Fn SLIST_HEAD_INITIALIZER "SLIST_HEAD head"
-.Fn SLIST_INIT "SLIST_HEAD *head"
-.Fn SLIST_INSERT_AFTER "TYPE *listelm" "TYPE *elm" "SLIST_ENTRY NAME"
-.Fn SLIST_INSERT_HEAD "SLIST_HEAD *head" "TYPE *elm" "SLIST_ENTRY NAME"
-.Fn SLIST_NEXT "TYPE *elm" "SLIST_ENTRY NAME"
-.\" .Fn SLIST_REMOVE_AFTER "TYPE *elm" "SLIST_ENTRY NAME"
-.Fn SLIST_REMOVE_HEAD "SLIST_HEAD *head" "SLIST_ENTRY NAME"
-.Fn SLIST_REMOVE "SLIST_HEAD *head" "TYPE *elm" "TYPE" "SLIST_ENTRY NAME"
-.\" .Fn SLIST_SWAP "SLIST_HEAD *head1" "SLIST_HEAD *head2" "SLIST_ENTRY NAME"
-.\"
-.Fn STAILQ_CONCAT "STAILQ_HEAD *head1" "STAILQ_HEAD *head2"
-.Fn STAILQ_EMPTY "STAILQ_HEAD *head"
-.Fn STAILQ_ENTRY "TYPE"
-.Fn STAILQ_FIRST "STAILQ_HEAD *head"
-.Fn STAILQ_FOREACH "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
-.\" .Fn STAILQ_FOREACH_FROM "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
-.\" .Fn STAILQ_FOREACH_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var"
-.\" .Fn STAILQ_FOREACH_FROM_SAFE "TYPE *var" "STAILQ_HEAD *head" "STAILQ_ENTRY NAME" "TYPE *temp_var"
-.Fn STAILQ_HEAD "HEADNAME" "TYPE"
-.Fn STAILQ_HEAD_INITIALIZER "STAILQ_HEAD head"
-.Fn STAILQ_INIT "STAILQ_HEAD *head"
-.Fn STAILQ_INSERT_AFTER "STAILQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "STAILQ_ENTRY NAME"
-.Fn STAILQ_INSERT_HEAD "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME"
-.Fn STAILQ_INSERT_TAIL "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME"
-.\" .Fn STAILQ_LAST "STAILQ_HEAD *head" "TYPE" "STAILQ_ENTRY NAME"
-.Fn STAILQ_NEXT "TYPE *elm" "STAILQ_ENTRY NAME"
-.\" .Fn STAILQ_REMOVE_AFTER "STAILQ_HEAD *head" "TYPE *elm" "STAILQ_ENTRY NAME"
-.Fn STAILQ_REMOVE_HEAD "STAILQ_HEAD *head" "STAILQ_ENTRY NAME"
-.Fn STAILQ_REMOVE "STAILQ_HEAD *head" "TYPE *elm" "TYPE" "STAILQ_ENTRY NAME"
-.\" .Fn STAILQ_SWAP "STAILQ_HEAD *head1" "STAILQ_HEAD *head2" "STAILQ_ENTRY NAME"
-.\"
-.Fn LIST_EMPTY "LIST_HEAD *head"
-.Fn LIST_ENTRY "TYPE"
-.Fn LIST_FIRST "LIST_HEAD *head"
-.Fn LIST_FOREACH "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
-.\" .Fn LIST_FOREACH_FROM "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME"
-.\" .Fn LIST_FOREACH_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var"
-.\" .Fn LIST_FOREACH_FROM_SAFE "TYPE *var" "LIST_HEAD *head" "LIST_ENTRY NAME" "TYPE *temp_var"
-.Fn LIST_HEAD "HEADNAME" "TYPE"
-.Fn LIST_HEAD_INITIALIZER "LIST_HEAD head"
-.Fn LIST_INIT "LIST_HEAD *head"
-.Fn LIST_INSERT_AFTER "TYPE *listelm" "TYPE *elm" "LIST_ENTRY NAME"
-.Fn LIST_INSERT_BEFORE "TYPE *listelm" "TYPE *elm" "LIST_ENTRY NAME"
-.Fn LIST_INSERT_HEAD "LIST_HEAD *head" "TYPE *elm" "LIST_ENTRY NAME"
-.Fn LIST_NEXT "TYPE *elm" "LIST_ENTRY NAME"
-.\" .Fn LIST_PREV "TYPE *elm" "LIST_HEAD *head" "TYPE" "LIST_ENTRY NAME"
-.Fn LIST_REMOVE "TYPE *elm" "LIST_ENTRY NAME"
-.\" .Fn LIST_SWAP "LIST_HEAD *head1" "LIST_HEAD *head2" "TYPE" "LIST_ENTRY NAME"
-.\"
-.Fn TAILQ_CONCAT "TAILQ_HEAD *head1" "TAILQ_HEAD *head2" "TAILQ_ENTRY NAME"
-.Fn TAILQ_EMPTY "TAILQ_HEAD *head"
-.Fn TAILQ_ENTRY "TYPE"
-.Fn TAILQ_FIRST "TAILQ_HEAD *head"
-.Fn TAILQ_FOREACH "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
-.\" .Fn TAILQ_FOREACH_FROM "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME"
-.\" .Fn TAILQ_FOREACH_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var"
-.\" .Fn TAILQ_FOREACH_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "TAILQ_ENTRY NAME" "TYPE *temp_var"
-.Fn TAILQ_FOREACH_REVERSE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
-.\" .Fn TAILQ_FOREACH_REVERSE_FROM "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME"
-.\" .Fn TAILQ_FOREACH_REVERSE_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var"
-.\" .Fn TAILQ_FOREACH_REVERSE_FROM_SAFE "TYPE *var" "TAILQ_HEAD *head" "HEADNAME" "TAILQ_ENTRY NAME" "TYPE *temp_var"
-.Fn TAILQ_HEAD "HEADNAME" "TYPE"
-.Fn TAILQ_HEAD_INITIALIZER "TAILQ_HEAD head"
-.Fn TAILQ_INIT "TAILQ_HEAD *head"
-.Fn TAILQ_INSERT_AFTER "TAILQ_HEAD *head" "TYPE *listelm" "TYPE *elm" "TAILQ_ENTRY NAME"
-.Fn TAILQ_INSERT_BEFORE "TYPE *listelm" "TYPE *elm" "TAILQ_ENTRY NAME"
-.Fn TAILQ_INSERT_HEAD "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME"
-.Fn TAILQ_INSERT_TAIL "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME"
-.Fn TAILQ_LAST "TAILQ_HEAD *head" "HEADNAME"
-.Fn TAILQ_NEXT "TYPE *elm" "TAILQ_ENTRY NAME"
-.Fn TAILQ_PREV "TYPE *elm" "HEADNAME" "TAILQ_ENTRY NAME"
-.Fn TAILQ_REMOVE "TAILQ_HEAD *head" "TYPE *elm" "TAILQ_ENTRY NAME"
-.\" .Fn TAILQ_SWAP "TAILQ_HEAD *head1" "TAILQ_HEAD *head2" "TYPE" "TAILQ_ENTRY NAME"
-.\"
-.Sh DESCRIPTION
-These macros define and operate on four types of data structures:
-singly-linked lists, singly-linked tail queues, lists, and tail queues.
-All four structures support the following functionality:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-Insertion of a new entry at the head of the list.
-.It
-Insertion of a new entry after any element in the list.
-.It
-O(1) removal of an entry from the head of the list.
-.It
-Forward traversal through the list.
-.\" .It
-.\" Swapping the contents of two lists.
-.El
-.Pp
-Singly-linked lists are the simplest of the four data structures
-and support only the above functionality.
-Singly-linked lists are ideal for applications with large datasets
-and few or no removals,
-or for implementing a LIFO queue.
-Singly-linked lists add the following functionality:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-O(n) removal of any entry in the list.
-.El
-.Pp
-Singly-linked tail queues add the following functionality:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-Entries can be added at the end of a list.
-.It
-O(n) removal of any entry in the list.
-.It
-They may be concatenated.
-.El
-.Pp
-However:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-All list insertions must specify the head of the list.
-.It
-Each head entry requires two pointers rather than one.
-.It
-Code size is about 15% greater and operations run about 20% slower
-than singly-linked lists.
-.El
-.Pp
-Singly-linked tail queues are ideal for applications with large datasets and
-few or no removals,
-or for implementing a FIFO queue.
-.Pp
-All doubly linked types of data structures (lists and tail queues)
-additionally allow:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-Insertion of a new entry before any element in the list.
-.It
-O(1) removal of any entry in the list.
-.El
-.Pp
-However:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-Each element requires two pointers rather than one.
-.It
-Code size and execution time of operations (except for removal) is about
-twice that of the singly-linked data-structures.
-.El
-.Pp
-Linked lists are the simplest of the doubly linked data structures.
-They add the following functionality over the above:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-They may be traversed backwards.
-.El
-.Pp
-However:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-To traverse backwards, an entry to begin the traversal and the list in
-which it is contained must be specified.
-.El
-.Pp
-Tail queues add the following functionality:
-.Bl -enum -compact -offset indent
-.It
-Entries can be added at the end of a list.
-.It
-They may be traversed backwards, from tail to head.
-.It
-They may be concatenated.
-.El
-.Pp
-However:
-.Pp
-.Bl -enum -compact -offset indent
-.It
-All list insertions and removals must specify the head of the list.
-.It
-Each head entry requires two pointers rather than one.
-.It
-Code size is about 15% greater and operations run about 20% slower
-than singly-linked lists.
-.El
-.Pp
-In the macro definitions,
-.Fa TYPE
-is the name of a user defined structure,
-that must contain a field of type
-.Li SLIST_ENTRY ,
-.Li STAILQ_ENTRY ,
-.Li LIST_ENTRY ,
-or
-.Li TAILQ_ENTRY ,
-named
-.Fa NAME .
-The argument
-.Fa HEADNAME
-is the name of a user defined structure that must be declared
-using the macros
-.Li SLIST_HEAD ,
-.Li STAILQ_HEAD ,
-.Li LIST_HEAD ,
-or
-.Li TAILQ_HEAD .
-See the examples below for further explanation of how these
-macros are used.
-.Ss Singly-linked lists
-A singly-linked list is headed by a structure defined by the
-.Nm SLIST_HEAD
-macro.
-This structure contains a single pointer to the first element
-on the list.
-The elements are singly linked for minimum space and pointer manipulation
-overhead at the expense of O(n) removal for arbitrary elements.
-New elements can be added to the list after an existing element or
-at the head of the list.
-An
-.Fa SLIST_HEAD
-structure is declared as follows:
-.Bd -literal -offset indent
-SLIST_HEAD(HEADNAME, TYPE) head;
-.Ed
-.Pp
-where
-.Fa HEADNAME
-is the name of the structure to be defined, and
-.Fa TYPE
-is the type of the elements to be linked into the list.
-A pointer to the head of the list can later be declared as:
-.Bd -literal -offset indent
-struct HEADNAME *headp;
-.Ed
-.Pp
-(The names
-.Li head
-and
-.Li headp
-are user selectable.)
-.Pp
-The macro
-.Nm SLIST_HEAD_INITIALIZER
-evaluates to an initializer for the list
-.Fa head .
-.Pp
-The macro
-.Nm SLIST_EMPTY
-evaluates to true if there are no elements in the list.
-.Pp
-The macro
-.Nm SLIST_ENTRY
-declares a structure that connects the elements in
-the list.
-.Pp
-The macro
-.Nm SLIST_FIRST
-returns the first element in the list or NULL if the list is empty.
-.Pp
-The macro
-.Nm SLIST_FOREACH
-traverses the list referenced by
-.Fa head
-in the forward direction, assigning each element in
-turn to
-.Fa var .
-.\" .Pp
-.\" The macro
-.\" .Nm SLIST_FOREACH_FROM
-.\" behaves identically to
-.\" .Nm SLIST_FOREACH
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found SLIST element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the SLIST referenced by
-.\" .Fa head .
-.\" .Pp
-.\" The macro
-.\" .Nm SLIST_FOREACH_SAFE
-.\" traverses the list referenced by
-.\" .Fa head
-.\" in the forward direction, assigning each element in
-.\" turn to
-.\" .Fa var .
-.\" However, unlike
-.\" .Fn SLIST_FOREACH
-.\" here it is permitted to both remove
-.\" .Fa var
-.\" as well as free it from within the loop safely without interfering with the
-.\" traversal.
-.\" .Pp
-.\" The macro
-.\" .Nm SLIST_FOREACH_FROM_SAFE
-.\" behaves identically to
-.\" .Nm SLIST_FOREACH_SAFE
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found SLIST element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the SLIST referenced by
-.\" .Fa head .
-.Pp
-The macro
-.Nm SLIST_INIT
-initializes the list referenced by
-.Fa head .
-.Pp
-The macro
-.Nm SLIST_INSERT_HEAD
-inserts the new element
-.Fa elm
-at the head of the list.
-.Pp
-The macro
-.Nm SLIST_INSERT_AFTER
-inserts the new element
-.Fa elm
-after the element
-.Fa listelm .
-.Pp
-The macro
-.Nm SLIST_NEXT
-returns the next element in the list.
-.\" .Pp
-.\" The macro
-.\" .Nm SLIST_REMOVE_AFTER
-.\" removes the element after
-.\" .Fa elm
-.\" from the list.
-.\" Unlike
-.\" .Fa SLIST_REMOVE ,
-.\" this macro does not traverse the entire list.
-.Pp
-The macro
-.Nm SLIST_REMOVE_HEAD
-removes the element
-.Fa elm
-from the head of the list.
-For optimum efficiency,
-elements being removed from the head of the list should explicitly use
-this macro instead of the generic
-.Fa SLIST_REMOVE
-macro.
-.Pp
-The macro
-.Nm SLIST_REMOVE
-removes the element
-.Fa elm
-from the list.
-.\" .Pp
-.\" The macro
-.\" .Nm SLIST_SWAP
-.\" swaps the contents of
-.\" .Fa head1
-.\" and
-.\" .Fa head2 .
-.Ss Singly-linked list example
-.Bd -literal
-SLIST_HEAD(slisthead, entry) head =
- SLIST_HEAD_INITIALIZER(head);
-struct slisthead *headp; /* Singly-linked List
- head. */
-struct entry {
- ...
- SLIST_ENTRY(entry) entries; /* Singly-linked List. */
- ...
-} *n1, *n2, *n3, *np;
-
-SLIST_INIT(&head); /* Initialize the list. */
-
-n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
-SLIST_INSERT_HEAD(&head, n1, entries);
-
-n2 = malloc(sizeof(struct entry)); /* Insert after. */
-SLIST_INSERT_AFTER(n1, n2, entries);
-
-SLIST_REMOVE(&head, n2, entry, entries);/* Deletion. */
-free(n2);
-
-n3 = SLIST_FIRST(&head);
-SLIST_REMOVE_HEAD(&head, entries); /* Deletion from the head. */
-free(n3);
- /* Forward traversal. */
-SLIST_FOREACH(np, &head, entries)
- np\-> ...
-.\" /* Safe forward traversal. */
-.\"SLIST_FOREACH_SAFE(np, &head, entries, np_temp) {
-.\" np\->do_stuff();
-.\" ...
-.\" SLIST_REMOVE(&head, np, entry, entries);
-.\" free(np);
-.\"}
-
-while (!SLIST_EMPTY(&head)) { /* List Deletion. */
- n1 = SLIST_FIRST(&head);
- SLIST_REMOVE_HEAD(&head, entries);
- free(n1);
-}
-.Ed
-.Ss Singly-linked tail queues
-A singly-linked tail queue is headed by a structure defined by the
-.Nm STAILQ_HEAD
-macro.
-This structure contains a pair of pointers,
-one to the first element in the tail queue and the other to
-the last element in the tail queue.
-The elements are singly linked for minimum space and pointer
-manipulation overhead at the expense of O(n) removal for arbitrary
-elements.
-New elements can be added to the tail queue after an existing element,
-at the head of the tail queue, or at the end of the tail queue.
-A
-.Fa STAILQ_HEAD
-structure is declared as follows:
-.Bd -literal -offset indent
-STAILQ_HEAD(HEADNAME, TYPE) head;
-.Ed
-.Pp
-where
-.Li HEADNAME
-is the name of the structure to be defined, and
-.Li TYPE
-is the type of the elements to be linked into the tail queue.
-A pointer to the head of the tail queue can later be declared as:
-.Bd -literal -offset indent
-struct HEADNAME *headp;
-.Ed
-.Pp
-(The names
-.Li head
-and
-.Li headp
-are user selectable.)
-.Pp
-The macro
-.Nm STAILQ_HEAD_INITIALIZER
-evaluates to an initializer for the tail queue
-.Fa head .
-.Pp
-The macro
-.Nm STAILQ_CONCAT
-concatenates the tail queue headed by
-.Fa head2
-onto the end of the one headed by
-.Fa head1
-removing all entries from the former.
-.Pp
-The macro
-.Nm STAILQ_EMPTY
-evaluates to true if there are no items on the tail queue.
-.Pp
-The macro
-.Nm STAILQ_ENTRY
-declares a structure that connects the elements in
-the tail queue.
-.Pp
-The macro
-.Nm STAILQ_FIRST
-returns the first item on the tail queue or NULL if the tail queue
-is empty.
-.Pp
-The macro
-.Nm STAILQ_FOREACH
-traverses the tail queue referenced by
-.Fa head
-in the forward direction, assigning each element
-in turn to
-.Fa var .
-.\" .Pp
-.\" The macro
-.\" .Nm STAILQ_FOREACH_FROM
-.\" behaves identically to
-.\" .Nm STAILQ_FOREACH
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found STAILQ element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the STAILQ referenced by
-.\" .Fa head .
-.\" .Pp
-.\" The macro
-.\" .Nm STAILQ_FOREACH_SAFE
-.\" traverses the tail queue referenced by
-.\" .Fa head
-.\" in the forward direction, assigning each element
-.\" in turn to
-.\" .Fa var .
-.\" However, unlike
-.\" .Fn STAILQ_FOREACH
-.\" here it is permitted to both remove
-.\" .Fa var
-.\" as well as free it from within the loop safely without interfering with the
-.\" traversal.
-.\" .Pp
-.\" The macro
-.\" .Nm STAILQ_FOREACH_FROM_SAFE
-.\" behaves identically to
-.\" .Nm STAILQ_FOREACH_SAFE
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found STAILQ element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the STAILQ referenced by
-.\" .Fa head .
-.Pp
-The macro
-.Nm STAILQ_INIT
-initializes the tail queue referenced by
-.Fa head .
-.Pp
-The macro
-.Nm STAILQ_INSERT_HEAD
-inserts the new element
-.Fa elm
-at the head of the tail queue.
-.Pp
-The macro
-.Nm STAILQ_INSERT_TAIL
-inserts the new element
-.Fa elm
-at the end of the tail queue.
-.Pp
-The macro
-.Nm STAILQ_INSERT_AFTER
-inserts the new element
-.Fa elm
-after the element
-.Fa listelm .
-.\" .Pp
-.\" The macro
-.\" .Nm STAILQ_LAST
-.\" returns the last item on the tail queue.
-.\" If the tail queue is empty the return value is
-.\" .Dv NULL .
-.Pp
-The macro
-.Nm STAILQ_NEXT
-returns the next item on the tail queue, or NULL this item is the last.
-.\" .Pp
-.\" The macro
-.\" .Nm STAILQ_REMOVE_AFTER
-.\" removes the element after
-.\" .Fa elm
-.\" from the tail queue.
-.\" Unlike
-.\" .Fa STAILQ_REMOVE ,
-.\" this macro does not traverse the entire tail queue.
-.Pp
-The macro
-.Nm STAILQ_REMOVE_HEAD
-removes the element at the head of the tail queue.
-For optimum efficiency,
-elements being removed from the head of the tail queue should
-use this macro explicitly rather than the generic
-.Fa STAILQ_REMOVE
-macro.
-.Pp
-The macro
-.Nm STAILQ_REMOVE
-removes the element
-.Fa elm
-from the tail queue.
-.\" .Pp
-.\" The macro
-.\" .Nm STAILQ_SWAP
-.\" swaps the contents of
-.\" .Fa head1
-.\" and
-.\" .Fa head2 .
-.Ss Singly-linked tail queue example
-.Bd -literal
-STAILQ_HEAD(stailhead, entry) head =
- STAILQ_HEAD_INITIALIZER(head);
-struct stailhead *headp; /* Singly-linked tail queue head. */
-struct entry {
- ...
- STAILQ_ENTRY(entry) entries; /* Tail queue. */
- ...
-} *n1, *n2, *n3, *np;
-
-STAILQ_INIT(&head); /* Initialize the queue. */
-
-n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
-STAILQ_INSERT_HEAD(&head, n1, entries);
-
-n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */
-STAILQ_INSERT_TAIL(&head, n1, entries);
-
-n2 = malloc(sizeof(struct entry)); /* Insert after. */
-STAILQ_INSERT_AFTER(&head, n1, n2, entries);
- /* Deletion. */
-STAILQ_REMOVE(&head, n2, entry, entries);
-free(n2);
- /* Deletion from the head. */
-n3 = STAILQ_FIRST(&head);
-STAILQ_REMOVE_HEAD(&head, entries);
-free(n3);
- /* Forward traversal. */
-STAILQ_FOREACH(np, &head, entries)
- np\-> ...
-.\" /* Safe forward traversal. */
-.\"STAILQ_FOREACH_SAFE(np, &head, entries, np_temp) {
-.\" np\->do_stuff();
-.\" ...
-.\" STAILQ_REMOVE(&head, np, entry, entries);
-.\" free(np);
-.\"}
- /* TailQ Deletion. */
-while (!STAILQ_EMPTY(&head)) {
- n1 = STAILQ_FIRST(&head);
- STAILQ_REMOVE_HEAD(&head, entries);
- free(n1);
-}
- /* Faster TailQ Deletion. */
-n1 = STAILQ_FIRST(&head);
-while (n1 != NULL) {
- n2 = STAILQ_NEXT(n1, entries);
- free(n1);
- n1 = n2;
-}
-STAILQ_INIT(&head);
-.Ed
-.Ss Lists
-A list is headed by a structure defined by the
-.Nm LIST_HEAD
-macro.
-This structure contains a single pointer to the first element
-on the list.
-The elements are doubly linked so that an arbitrary element can be
-removed without traversing the list.
-New elements can be added to the list after an existing element,
-before an existing element, or at the head of the list.
-A
-.Fa LIST_HEAD
-structure is declared as follows:
-.Bd -literal -offset indent
-LIST_HEAD(HEADNAME, TYPE) head;
-.Ed
-.Pp
-where
-.Fa HEADNAME
-is the name of the structure to be defined, and
-.Fa TYPE
-is the type of the elements to be linked into the list.
-A pointer to the head of the list can later be declared as:
-.Bd -literal -offset indent
-struct HEADNAME *headp;
-.Ed
-.Pp
-(The names
-.Li head
-and
-.Li headp
-are user selectable.)
-.Pp
-The macro
-.Nm LIST_HEAD_INITIALIZER
-evaluates to an initializer for the list
-.Fa head .
-.Pp
-The macro
-.Nm LIST_EMPTY
-evaluates to true if there are no elements in the list.
-.Pp
-The macro
-.Nm LIST_ENTRY
-declares a structure that connects the elements in
-the list.
-.Pp
-The macro
-.Nm LIST_FIRST
-returns the first element in the list or NULL if the list
-is empty.
-.Pp
-The macro
-.Nm LIST_FOREACH
-traverses the list referenced by
-.Fa head
-in the forward direction, assigning each element in turn to
-.Fa var .
-.\" .Pp
-.\" The macro
-.\" .Nm LIST_FOREACH_FROM
-.\" behaves identically to
-.\" .Nm LIST_FOREACH
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found LIST element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the LIST referenced by
-.\" .Fa head .
-.\" .Pp
-.\" The macro
-.\" .Nm LIST_FOREACH_SAFE
-.\" traverses the list referenced by
-.\" .Fa head
-.\" in the forward direction, assigning each element in turn to
-.\" .Fa var .
-.\" However, unlike
-.\" .Fn LIST_FOREACH
-.\" here it is permitted to both remove
-.\" .Fa var
-.\" as well as free it from within the loop safely without interfering with the
-.\" traversal.
-.\" .Pp
-.\" The macro
-.\" .Nm LIST_FOREACH_FROM_SAFE
-.\" behaves identically to
-.\" .Nm LIST_FOREACH_SAFE
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found LIST element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the LIST referenced by
-.\" .Fa head .
-.Pp
-The macro
-.Nm LIST_INIT
-initializes the list referenced by
-.Fa head .
-.Pp
-The macro
-.Nm LIST_INSERT_HEAD
-inserts the new element
-.Fa elm
-at the head of the list.
-.Pp
-The macro
-.Nm LIST_INSERT_AFTER
-inserts the new element
-.Fa elm
-after the element
-.Fa listelm .
-.Pp
-The macro
-.Nm LIST_INSERT_BEFORE
-inserts the new element
-.Fa elm
-before the element
-.Fa listelm .
-.Pp
-The macro
-.Nm LIST_NEXT
-returns the next element in the list, or NULL if this is the last.
-.\" .Pp
-.\" The macro
-.\" .Nm LIST_PREV
-.\" returns the previous element in the list, or NULL if this is the first.
-.\" List
-.\" .Fa head
-.\" must contain element
-.\" .Fa elm .
-.Pp
-The macro
-.Nm LIST_REMOVE
-removes the element
-.Fa elm
-from the list.
-.\" .Pp
-.\" The macro
-.\" .Nm LIST_SWAP
-.\" swaps the contents of
-.\" .Fa head1
-.\" and
-.\" .Fa head2 .
-.Ss List example
-.Bd -literal
-LIST_HEAD(listhead, entry) head =
- LIST_HEAD_INITIALIZER(head);
-struct listhead *headp; /* List head. */
-struct entry {
- ...
- LIST_ENTRY(entry) entries; /* List. */
- ...
-} *n1, *n2, *n3, *np, *np_temp;
-
-LIST_INIT(&head); /* Initialize the list. */
-
-n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
-LIST_INSERT_HEAD(&head, n1, entries);
-
-n2 = malloc(sizeof(struct entry)); /* Insert after. */
-LIST_INSERT_AFTER(n1, n2, entries);
-
-n3 = malloc(sizeof(struct entry)); /* Insert before. */
-LIST_INSERT_BEFORE(n2, n3, entries);
-
-LIST_REMOVE(n2, entries); /* Deletion. */
-free(n2);
- /* Forward traversal. */
-LIST_FOREACH(np, &head, entries)
- np\-> ...
-
-.\" /* Safe forward traversal. */
-.\" LIST_FOREACH_SAFE(np, &head, entries, np_temp) {
-.\" np\->do_stuff();
-.\" ...
-.\" LIST_REMOVE(np, entries);
-.\" free(np);
-.\" }
-.\"
-while (!LIST_EMPTY(&head)) { /* List Deletion. */
- n1 = LIST_FIRST(&head);
- LIST_REMOVE(n1, entries);
- free(n1);
-}
-
-n1 = LIST_FIRST(&head); /* Faster List Deletion. */
-while (n1 != NULL) {
- n2 = LIST_NEXT(n1, entries);
- free(n1);
- n1 = n2;
-}
-LIST_INIT(&head);
-.Ed
-.Ss Tail queues
-A tail queue is headed by a structure defined by the
-.Nm TAILQ_HEAD
-macro.
-This structure contains a pair of pointers,
-one to the first element in the tail queue and the other to
-the last element in the tail queue.
-The elements are doubly linked so that an arbitrary element can be
-removed without traversing the tail queue.
-New elements can be added to the tail queue after an existing element,
-before an existing element, at the head of the tail queue,
-or at the end of the tail queue.
-A
-.Fa TAILQ_HEAD
-structure is declared as follows:
-.Bd -literal -offset indent
-TAILQ_HEAD(HEADNAME, TYPE) head;
-.Ed
-.Pp
-where
-.Li HEADNAME
-is the name of the structure to be defined, and
-.Li TYPE
-is the type of the elements to be linked into the tail queue.
-A pointer to the head of the tail queue can later be declared as:
-.Bd -literal -offset indent
-struct HEADNAME *headp;
-.Ed
-.Pp
-(The names
-.Li head
-and
-.Li headp
-are user selectable.)
-.Pp
-The macro
-.Nm TAILQ_HEAD_INITIALIZER
-evaluates to an initializer for the tail queue
-.Fa head .
-.Pp
-The macro
-.Nm TAILQ_CONCAT
-concatenates the tail queue headed by
-.Fa head2
-onto the end of the one headed by
-.Fa head1
-removing all entries from the former.
-.Pp
-The macro
-.Nm TAILQ_EMPTY
-evaluates to true if there are no items on the tail queue.
-.Pp
-The macro
-.Nm TAILQ_ENTRY
-declares a structure that connects the elements in
-the tail queue.
-.Pp
-The macro
-.Nm TAILQ_FIRST
-returns the first item on the tail queue or NULL if the tail queue
-is empty.
-.Pp
-The macro
-.Nm TAILQ_FOREACH
-traverses the tail queue referenced by
-.Fa head
-in the forward direction, assigning each element in turn to
-.Fa var .
-.Fa var
-is set to
-.Dv NULL
-if the loop completes normally, or if there were no elements.
-.\" .Pp
-.\" The macro
-.\" .Nm TAILQ_FOREACH_FROM
-.\" behaves identically to
-.\" .Nm TAILQ_FOREACH
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found TAILQ element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the TAILQ referenced by
-.\" .Fa head .
-.Pp
-The macro
-.Nm TAILQ_FOREACH_REVERSE
-traverses the tail queue referenced by
-.Fa head
-in the reverse direction, assigning each element in turn to
-.Fa var .
-.\" .Pp
-.\" The macro
-.\" .Nm TAILQ_FOREACH_REVERSE_FROM
-.\" behaves identically to
-.\" .Nm TAILQ_FOREACH_REVERSE
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found TAILQ element and begins the reverse loop at
-.\" .Fa var
-.\" instead of the last element in the TAILQ referenced by
-.\" .Fa head .
-.\" .Pp
-.\" The macros
-.\" .Nm TAILQ_FOREACH_SAFE
-.\" and
-.\" .Nm TAILQ_FOREACH_REVERSE_SAFE
-.\" traverse the list referenced by
-.\" .Fa head
-.\" in the forward or reverse direction respectively,
-.\" assigning each element in turn to
-.\" .Fa var .
-.\" However, unlike their unsafe counterparts,
-.\" .Nm TAILQ_FOREACH
-.\" and
-.\" .Nm TAILQ_FOREACH_REVERSE
-.\" permit to both remove
-.\" .Fa var
-.\" as well as free it from within the loop safely without interfering with the
-.\" traversal.
-.\" .Pp
-.\" The macro
-.\" .Nm TAILQ_FOREACH_FROM_SAFE
-.\" behaves identically to
-.\" .Nm TAILQ_FOREACH_SAFE
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found TAILQ element and begins the loop at
-.\" .Fa var
-.\" instead of the first element in the TAILQ referenced by
-.\" .Fa head .
-.\" .Pp
-.\" The macro
-.\" .Nm TAILQ_FOREACH_REVERSE_FROM_SAFE
-.\" behaves identically to
-.\" .Nm TAILQ_FOREACH_REVERSE_SAFE
-.\" when
-.\" .Fa var
-.\" is NULL, else it treats
-.\" .Fa var
-.\" as a previously found TAILQ element and begins the reverse loop at
-.\" .Fa var
-.\" instead of the last element in the TAILQ referenced by
-.\" .Fa head .
-.Pp
-The macro
-.Nm TAILQ_INIT
-initializes the tail queue referenced by
-.Fa head .
-.Pp
-The macro
-.Nm TAILQ_INSERT_HEAD
-inserts the new element
-.Fa elm
-at the head of the tail queue.
-.Pp
-The macro
-.Nm TAILQ_INSERT_TAIL
-inserts the new element
-.Fa elm
-at the end of the tail queue.
-.Pp
-The macro
-.Nm TAILQ_INSERT_AFTER
-inserts the new element
-.Fa elm
-after the element
-.Fa listelm .
-.Pp
-The macro
-.Nm TAILQ_INSERT_BEFORE
-inserts the new element
-.Fa elm
-before the element
-.Fa listelm .
-.Pp
-The macro
-.Nm TAILQ_LAST
-returns the last item on the tail queue.
-If the tail queue is empty the return value is
-.Dv NULL .
-.Pp
-The macro
-.Nm TAILQ_NEXT
-returns the next item on the tail queue, or NULL if this item is the last.
-.Pp
-The macro
-.Nm TAILQ_PREV
-returns the previous item on the tail queue, or NULL if this item
-is the first.
-.Pp
-The macro
-.Nm TAILQ_REMOVE
-removes the element
-.Fa elm
-from the tail queue.
-.\" .Pp
-.\" The macro
-.\" .Nm TAILQ_SWAP
-.\" swaps the contents of
-.\" .Fa head1
-.\" and
-.\" .Fa head2 .
-.Ss Tail queue example
-.Bd -literal
-TAILQ_HEAD(tailhead, entry) head =
- TAILQ_HEAD_INITIALIZER(head);
-struct tailhead *headp; /* Tail queue head. */
-struct entry {
- ...
- TAILQ_ENTRY(entry) entries; /* Tail queue. */
- ...
-} *n1, *n2, *n3, *np;
-
-TAILQ_INIT(&head); /* Initialize the queue. */
-
-n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
-TAILQ_INSERT_HEAD(&head, n1, entries);
-
-n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */
-TAILQ_INSERT_TAIL(&head, n1, entries);
-
-n2 = malloc(sizeof(struct entry)); /* Insert after. */
-TAILQ_INSERT_AFTER(&head, n1, n2, entries);
-
-n3 = malloc(sizeof(struct entry)); /* Insert before. */
-TAILQ_INSERT_BEFORE(n2, n3, entries);
-
-TAILQ_REMOVE(&head, n2, entries); /* Deletion. */
-free(n2);
- /* Forward traversal. */
-TAILQ_FOREACH(np, &head, entries)
- np\-> ...
-.\" /* Safe forward traversal. */
-.\" TAILQ_FOREACH_SAFE(np, &head, entries, np_temp) {
-.\" np\->do_stuff();
-.\" ...
-.\" TAILQ_REMOVE(&head, np, entries);
-.\" free(np);
-.\" }
- /* Reverse traversal. */
-TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)
- np\-> ...
- /* TailQ Deletion. */
-while (!TAILQ_EMPTY(&head)) {
- n1 = TAILQ_FIRST(&head);
- TAILQ_REMOVE(&head, n1, entries);
- free(n1);
-}
- /* Faster TailQ Deletion. */
-n1 = TAILQ_FIRST(&head);
-while (n1 != NULL) {
- n2 = TAILQ_NEXT(n1, entries);
- free(n1);
- n1 = n2;
-}
-
-TAILQ_INIT(&head);
-.Ed
-.Sh CONFORMING TO
-Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008.
-Present on the BSDs.
-.Nm queue
-functions first appeared in
-.Bx 4.4 .
-.Sh SEE ALSO
-.Xr insque 3
-.\" .Xr tree 3
-.Sh COLOPHON
-This page is part of release 5.08 of the Linux
-.Em man-pages
-project.
-A description of the project,
-information about reporting bugs,
-and the latest version of this page,
-can be found at
-\%https://www.kernel.org/doc/man\-pages/.
+.so man7/queue.7
diff --git a/man3/raise.3 b/man3/raise.3
index 4f5ff8769..f7dad1dae 100644
--- a/man3/raise.3
+++ b/man3/raise.3
@@ -94,7 +94,7 @@ using
.BR pthread_kill (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rand.3 b/man3/rand.3
index ce5ef8683..693d5d236 100644
--- a/man3/rand.3
+++ b/man3/rand.3
@@ -38,7 +38,7 @@
.\" Modified 2003-11-15, aeb, added rand_r
.\" 2010-09-13, mtk, added example program
.\"
-.TH RAND 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH RAND 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
rand, rand_r, srand \- pseudo-random number generator
.SH SYNOPSIS
@@ -52,10 +52,10 @@ rand, rand_r, srand \- pseudo-random number generator
.BI "void srand(unsigned int " seed );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR rand_r ():
.RS 4
@@ -213,7 +213,7 @@ when given a particular seed.
int
main(int argc, char *argv[])
{
- int j, r, nloops;
+ int r, nloops;
unsigned int seed;
if (argc != 3) {
@@ -225,7 +225,7 @@ main(int argc, char *argv[])
nloops = atoi(argv[2]);
srand(seed);
- for (j = 0; j < nloops; j++) {
+ for (int j = 0; j < nloops; j++) {
r = rand();
printf("%d\en", r);
}
@@ -238,7 +238,7 @@ main(int argc, char *argv[])
.BR drand48 (3),
.BR random (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/random.3 b/man3/random.3
index ca1e9164d..d7940f4aa 100644
--- a/man3/random.3
+++ b/man3/random.3
@@ -30,26 +30,26 @@
.\" Modified Sat Jul 24 18:13:39 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Sun Aug 20 21:47:07 2000, aeb
.\"
-.TH RANDOM 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH RANDOM 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
random, srandom, initstate, setstate \- random number generator
.SH SYNOPSIS
.nf
.B #include <stdlib.h>
.PP
-.B long int random(void);
+.B long random(void);
.PP
-.BI "void srandom(unsigned int " seed );
+.BI "void srandom(unsigned " seed );
.PP
-.BI "char *initstate(unsigned int " seed ", char *" state ", size_t " n );
+.BI "char *initstate(unsigned " seed ", char *" state ", size_t " n );
.PP
.BI "char *setstate(char *" state );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR random (),
@@ -209,7 +209,7 @@ is (as specified) set on error, but the function does not return NULL.
.BR random_r (3),
.BR srand (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/random_r.3 b/man3/random_r.3
index 438086155..c4fa2e40f 100644
--- a/man3/random_r.3
+++ b/man3/random_r.3
@@ -41,10 +41,10 @@ random number generator
.BI "int setstate_r(char *" statebuf ", struct random_data *" buf );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR random_r (),
@@ -191,7 +191,7 @@ field to NULL or zero out the entire structure before the call.
.BR rand (3),
.BR random (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rcmd.3 b/man3/rcmd.3
index c458cd9a7..4807f8c65 100644
--- a/man3/rcmd.3
+++ b/man3/rcmd.3
@@ -75,10 +75,10 @@ stream to a remote command
", sa_family_t " af );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR rcmd (),
.BR rcmd_af (),
@@ -318,7 +318,7 @@ are declared in glibc headers only since version 2.12.
.BR rlogind (8),
.BR rshd (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/re_comp.3 b/man3/re_comp.3
index 0610b7a69..156611b8e 100644
--- a/man3/re_comp.3
+++ b/man3/re_comp.3
@@ -87,7 +87,7 @@ should be used instead.
.BR regex (7),
GNU regex manual
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/readdir.3 b/man3/readdir.3
index 1e1e6631f..94cb969a0 100644
--- a/man3/readdir.3
+++ b/man3/readdir.3
@@ -312,7 +312,7 @@ structure shown above.
.BR seekdir (3),
.BR telldir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/readdir_r.3 b/man3/readdir_r.3
index 35b204313..e7435a4b8 100644
--- a/man3/readdir_r.3
+++ b/man3/readdir_r.3
@@ -34,11 +34,11 @@ readdir_r \- read a directory
", struct dirent **" result );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR readdir_r ():
.RS 4
@@ -157,7 +157,7 @@ POSIX.1-2001, POSIX.1-2008.
.SH SEE ALSO
.BR readdir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/realpath.3 b/man3/realpath.3
index 69851df8a..82a11a97f 100644
--- a/man3/realpath.3
+++ b/man3/realpath.3
@@ -36,10 +36,10 @@ realpath \- return the canonicalized absolute pathname
.BI "char *realpath(const char *" path ", char *" resolved_path );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR realpath ():
.ad l
@@ -246,7 +246,7 @@ but standardized in POSIX.1-2008, allows this design problem to be avoided.
.BR pathconf (3),
.BR sysconf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/recno.3 b/man3/recno.3
index 4963d4a50..3b924fcd3 100644
--- a/man3/recno.3
+++ b/man3/recno.3
@@ -231,7 +231,7 @@ Only big and little endian byte order is supported.
Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman,
Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/regex.3 b/man3/regex.3
index 255615ad2..995aa3b0e 100644
--- a/man3/regex.3
+++ b/man3/regex.3
@@ -32,7 +32,6 @@
regcomp, regexec, regerror, regfree \- POSIX regex functions
.SH SYNOPSIS
.nf
-.B #include <sys/types.h>
.B #include <regex.h>
.PP
.BI "int regcomp(regex_t *" preg ", const char *" regex ", int " cflags );
@@ -71,7 +70,7 @@ must always be supplied with the address of a
initialized pattern buffer.
.PP
.I cflags
-may be the
+is the
.RB bitwise- or
of zero or more of the following:
.TP
@@ -134,13 +133,9 @@ and
.I pmatch
are used to provide information regarding the location of any matches.
.I eflags
-may be the
+is the
.RB bitwise- or
-of one or both of
-.B REG_NOTBOL
-and
-.B REG_NOTEOL
-which cause changes in matching behavior described below.
+of zero or more of the following flags:
.TP
.B REG_NOTBOL
The match-beginning-of-line operator always fails to match (but see the
@@ -342,6 +337,48 @@ T} Thread safety MT-Safe
.TE
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008.
+.SH EXAMPLES
+.EX
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <regex.h>
+
+#define ARRAY_SIZE(arr) (sizeof((arr)) / sizeof((arr)[0]))
+
+static const char *const str =
+ "1) John Driverhacker;\en2) John Doe;\en3) John Foo;\en";
+static const char *const re = "John.*o";
+
+int main(void)
+{
+ static const char *s = str;
+ regex_t regex;
+ regmatch_t pmatch[1];
+ regoff_t off, len;
+
+ if (regcomp(&regex, re, REG_NEWLINE))
+ exit(EXIT_FAILURE);
+
+ printf("String = \e"%s\e"\en", str);
+ printf("Matches:\en");
+
+ for (int i = 0; ; i++) {
+ if (regexec(&regex, s, ARRAY_SIZE(pmatch), pmatch, 0))
+ break;
+
+ off = pmatch[0].rm_so + (s \- str);
+ len = pmatch[0].rm_eo \- pmatch[0].rm_so;
+ printf("#%d:\en", i);
+ printf("offset = %jd; length = %jd\en", (intmax_t) off, (intmax_t) len);
+ printf("substring = \e"%.*s\e"\en", len, s + pmatch[0].rm_so);
+
+ s += pmatch[0].rm_eo;
+ }
+
+ exit(EXIT_SUCCESS);
+}
+.EE
.SH SEE ALSO
.BR grep (1),
.BR regex (7)
@@ -349,7 +386,7 @@ POSIX.1-2001, POSIX.1-2008.
The glibc manual section,
.I "Regular Expressions"
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/regex_t.3 b/man3/regex_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/regex_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/regmatch_t.3 b/man3/regmatch_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/regmatch_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/regoff_t.3 b/man3/regoff_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/regoff_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/remainder.3 b/man3/remainder.3
index 4a1dfd59b..0b6f56fb1 100644
--- a/man3/remainder.3
+++ b/man3/remainder.3
@@ -55,10 +55,10 @@ floating-point remainder function
.fi
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR remainder ():
@@ -241,7 +241,7 @@ The call "remainder(29.0, 3.0)" returns \-1.
.BR fmod (3),
.BR remquo (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/remove.3 b/man3/remove.3
index d1ae05a57..8d214b603 100644
--- a/man3/remove.3
+++ b/man3/remove.3
@@ -102,7 +102,7 @@ disappearance of files which are still being used.
.BR mkfifo (3),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/remquo.3 b/man3/remquo.3
index 9a8a8a667..c037bc8f4 100644
--- a/man3/remquo.3
+++ b/man3/remquo.3
@@ -23,10 +23,10 @@ remquo, remquof, remquol \- remainder and part of quotient
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR remquo (),
@@ -136,7 +136,7 @@ C99, POSIX.1-2001, POSIX.1-2008.
.BR logb (3),
.BR remainder (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/resolver.3 b/man3/resolver.3
index f0bf8a5db..6cf743acd 100644
--- a/man3/resolver.3
+++ b/man3/resolver.3
@@ -519,7 +519,7 @@ T} Thread safety MT-Safe
The GNU C library source file
.IR resolv/README .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rewinddir.3 b/man3/rewinddir.3
index 4cb061e96..d3370dee2 100644
--- a/man3/rewinddir.3
+++ b/man3/rewinddir.3
@@ -72,7 +72,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.BR seekdir (3),
.BR telldir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rexec.3 b/man3/rexec.3
index 2c2248221..c60f7acb0 100644
--- a/man3/rexec.3
+++ b/man3/rexec.3
@@ -182,7 +182,7 @@ for explanations.
.BR rcmd (3),
.BR rexecd (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rint.3 b/man3/rint.3
index 2c08ed3a5..20db5fdd5 100644
--- a/man3/rint.3
+++ b/man3/rint.3
@@ -43,10 +43,10 @@ to nearest integer
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR nearbyint (),
@@ -160,7 +160,7 @@ instead.
.BR round (3),
.BR trunc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/round.3 b/man3/round.3
index 9700c082f..3289fe072 100644
--- a/man3/round.3
+++ b/man3/round.3
@@ -38,10 +38,10 @@ round, roundf, roundl \- round to nearest integer, away from zero
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR round (),
@@ -124,7 +124,7 @@ instead.
.BR rint (3),
.BR trunc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rpc.3 b/man3/rpc.3
index 3ecacaabe..8dd3915a2 100644
--- a/man3/rpc.3
+++ b/man3/rpc.3
@@ -8,7 +8,7 @@
.\"
.\" 2007-12-30, mtk, Convert function prototypes to modern C syntax
.\"
-.TH RPC 3 2017-09-15 "" "Linux Programmer's Manual"
+.TH RPC 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
rpc \- library routines for remote procedure calls
.SH SYNOPSIS AND DESCRIPTION
@@ -29,7 +29,7 @@ To take use of these routines, include the header file
The prototypes below make use of the following types:
.PP
-.in +4n
+.RS 4
.EX
.BI "typedef int " bool_t ;
.PP
@@ -38,7 +38,7 @@ The prototypes below make use of the following types:
.BI "typedef bool_t (*" resultproc_t ") (caddr_t " resp ,
.BI " struct sockaddr_in *" raddr );
.EE
-.in
+.RE
.PP
See the header files for the declarations of the
.IR AUTH ,
@@ -264,7 +264,7 @@ will be ignored in all future calls.
.IP
.in +4n
.EX
-\fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // get server's address
+\fBCLGET_SERVER_ADDR\fP \fIstruct sockaddr_in \fP // get server\(aqs address
.EE
.in
.IP
@@ -1230,7 +1230,7 @@ rpcgen Programming Guide
RFC\ 1050, Sun Microsystems, Inc.,
USC-ISI.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rpmatch.3 b/man3/rpmatch.3
index e0d9be2c4..337f64240 100644
--- a/man3/rpmatch.3
+++ b/man3/rpmatch.3
@@ -36,10 +36,10 @@ rpmatch \- determine if the answer to a question is affirmative or negative
.BI "int rpmatch(const char *" response );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR rpmatch ():
Since glibc 2.19:
@@ -164,7 +164,7 @@ main(int argc, char *argv[])
.BR regcomp (3),
.BR setlocale (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rtime.3 b/man3/rtime.3
index 277e53043..521f97024 100644
--- a/man3/rtime.3
+++ b/man3/rtime.3
@@ -143,7 +143,7 @@ main(void)
.\" .BR rdate (1),
.BR inetd (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/rtnetlink.3 b/man3/rtnetlink.3
index c8c15a2d1..effa79004 100644
--- a/man3/rtnetlink.3
+++ b/man3/rtnetlink.3
@@ -9,7 +9,7 @@
.\"
.\" $Id: rtnetlink.3,v 1.2 1999/05/18 10:35:10 freitag Exp $
.\"
-.TH RTNETLINK 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH RTNETLINK 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
rtnetlink \- macros to manipulate rtnetlink messages
.SH SYNOPSIS
@@ -105,7 +105,7 @@ unsigned int mtu = 1000;
int rtnetlink_sk = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE);
memset(&req, 0, sizeof(req));
-req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
+req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(req.if));
req.nh.nlmsg_flags = NLM_F_REQUEST;
req.nh.nlmsg_type = RTM_NEWLINK;
req.if.ifi_family = AF_UNSPEC;
@@ -114,7 +114,7 @@ req.if.ifi_change = 0xffffffff; /* ??? */
rta = (struct rtattr *)(((char *) &req) +
NLMSG_ALIGN(req.nh.nlmsg_len));
rta\->rta_type = IFLA_MTU;
-rta\->rta_len = RTA_LENGTH(sizeof(unsigned int));
+rta\->rta_len = RTA_LENGTH(sizeof(mtu));
req.nh.nlmsg_len = NLMSG_ALIGN(req.nh.nlmsg_len) +
RTA_LENGTH(sizeof(mtu));
memcpy(RTA_DATA(rta), &mtu, sizeof(mtu));
@@ -126,7 +126,7 @@ send(rtnetlink_sk, &req, req.nh.nlmsg_len, 0);
.BR netlink (7),
.BR rtnetlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/scalb.3 b/man3/scalb.3
index e18302f07..a70ba15de 100644
--- a/man3/scalb.3
+++ b/man3/scalb.3
@@ -39,10 +39,10 @@ by integral power of radix (OBSOLETE)
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR scalb ():
@@ -220,7 +220,7 @@ for domain and range errors.
.BR ldexp (3),
.BR scalbln (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/scalbln.3 b/man3/scalbln.3
index d03ed12c4..d9447326d 100644
--- a/man3/scalbln.3
+++ b/man3/scalbln.3
@@ -24,18 +24,18 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH SCALBLN 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH SCALBLN 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
scalbn, scalbnf, scalbnl, scalbln, scalblnf, scalblnl \-
multiply floating-point number by integral power of radix
.SH SYNOPSIS
.B #include <math.h>
.PP
-.BI "double scalbln(double " x ", long int " exp );
+.BI "double scalbln(double " x ", long " exp );
.br
-.BI "float scalblnf(float " x ", long int " exp );
+.BI "float scalblnf(float " x ", long " exp );
.br
-.BI "long double scalblnl(long double " x ", long int " exp );
+.BI "long double scalblnl(long double " x ", long " exp );
.PP
.BI "double scalbn(double " x ", int " exp );
.br
@@ -45,10 +45,10 @@ multiply floating-point number by integral power of radix
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR scalbln (),
@@ -193,7 +193,7 @@ for range errors.
.BR ldexp (3),
.BR scalb (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/scandir.3 b/man3/scandir.3
index 780ddf88b..4299013d6 100644
--- a/man3/scandir.3
+++ b/man3/scandir.3
@@ -90,10 +90,10 @@ a directory for matching entries
.RE
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR scandir (),
.BR alphasort ():
@@ -332,7 +332,7 @@ main(void)
.BR strverscmp (3),
.BR telldir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/scanf.3 b/man3/scanf.3
index 4094ed163..df493d1d9 100644
--- a/man3/scanf.3
+++ b/man3/scanf.3
@@ -67,10 +67,10 @@ scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf \- input format conversion
.BI "int vfscanf(FILE *" stream ", const char *" format ", va_list " ap );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
.BR vscanf (),
@@ -247,7 +247,7 @@ type modifier is used with integer conversions such as
to specify that the corresponding
.I pointer
argument refers to a
-.I "long int"
+.I "long"
rather than a pointer to an
.IR int .
.TP
@@ -293,9 +293,9 @@ can appear in a conversion specification:
Indicates that the conversion will be one of
\fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, or \fBn\fP
and the next pointer is a pointer to a
-.I short int
+.I short
or
-.I unsigned short int
+.I unsigned short
(rather than
.IR int ).
.TP
@@ -320,9 +320,9 @@ This modifier was introduced in C99.
Indicates either that the conversion will be one of
\fBd\fP, \fBi\fP, \fBo\fP, \fBu\fP, \fBx\fP, \fBX\fP, or \fBn\fP
and the next pointer is a pointer to a
-.I long int
+.I long
or
-.I unsigned long int
+.I unsigned long
(rather than
.IR int ),
or that the conversion will be one of
@@ -773,7 +773,7 @@ call successfully read a string.
.BR strtol (3),
.BR strtoul (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sched_getcpu.3 b/man3/sched_getcpu.3
index 0bcd0b5b0..ba875d0be 100644
--- a/man3/sched_getcpu.3
+++ b/man3/sched_getcpu.3
@@ -33,10 +33,10 @@ sched_getcpu \- determine CPU on which the calling thread is running
.B int sched_getcpu(void);
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR sched_getcpu ():
.ad l
@@ -108,7 +108,7 @@ cpu = (s == \-1) ? s : c;
.BR getcpu (2),
.BR sched (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/seekdir.3 b/man3/seekdir.3
index 615dd7e8a..17e2c3f84 100644
--- a/man3/seekdir.3
+++ b/man3/seekdir.3
@@ -39,10 +39,10 @@ stream.
.BI "void seekdir(DIR *" dirp ", long " loc );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR seekdir ():
_XOPEN_SOURCE
@@ -98,7 +98,7 @@ assumptions about the value in this argument.
.BR scandir (3),
.BR telldir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_close.3 b/man3/sem_close.3
index 7ad049f39..82d2acee7 100644
--- a/man3/sem_close.3
+++ b/man3/sem_close.3
@@ -77,7 +77,7 @@ termination, or upon
.BR sem_wait (3),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_destroy.3 b/man3/sem_destroy.3
index 8c61aafde..809402fb4 100644
--- a/man3/sem_destroy.3
+++ b/man3/sem_destroy.3
@@ -88,7 +88,7 @@ Failure to do this can result in resource leaks on some implementations.
.BR sem_wait (3),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_getvalue.3 b/man3/sem_getvalue.3
index 6cdec7e25..063ae5f1e 100644
--- a/man3/sem_getvalue.3
+++ b/man3/sem_getvalue.3
@@ -87,7 +87,7 @@ returns.
.BR sem_wait (3),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_init.3 b/man3/sem_init.3
index 7f5893db5..8b043247a 100644
--- a/man3/sem_init.3
+++ b/man3/sem_init.3
@@ -121,7 +121,7 @@ and
.BR sem_wait (3),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_open.3 b/man3/sem_open.3
index 7cfcffcb6..9f5536a02 100644
--- a/man3/sem_open.3
+++ b/man3/sem_open.3
@@ -189,7 +189,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR sem_wait (3),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_post.3 b/man3/sem_post.3
index 3e57b1fca..3aa1f563f 100644
--- a/man3/sem_post.3
+++ b/man3/sem_post.3
@@ -86,7 +86,7 @@ and
.BR sem_overview (7),
.BR signal\-safety (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_unlink.3 b/man3/sem_unlink.3
index 9cd4a0cc9..6a0e64431 100644
--- a/man3/sem_unlink.3
+++ b/man3/sem_unlink.3
@@ -79,7 +79,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR sem_wait (3),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sem_wait.3 b/man3/sem_wait.3
index df742333f..80caecc3d 100644
--- a/man3/sem_wait.3
+++ b/man3/sem_wait.3
@@ -38,10 +38,10 @@ sem_wait, sem_timedwait, sem_trywait \- lock a semaphore
.PP
Link with \fI\-pthread\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR sem_timedwait ():
_POSIX_C_SOURCE\ >=\ 200112L
@@ -270,7 +270,7 @@ main(int argc, char *argv[])
.BR sem_overview (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/setaliasent.3 b/man3/setaliasent.3
index 3cfc5a02b..7ee3926a6 100644
--- a/man3/setaliasent.3
+++ b/man3/setaliasent.3
@@ -173,7 +173,7 @@ main(void)
.\" Yellow Pages
.\" newaliases, postalias
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/setbuf.3 b/man3/setbuf.3
index 021d0f990..52c5a4389 100644
--- a/man3/setbuf.3
+++ b/man3/setbuf.3
@@ -62,10 +62,10 @@ setbuf, setbuffer, setlinebuf, setvbuf \- stream buffering operations
", size_t " size );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR setbuffer (),
.BR setlinebuf ():
@@ -224,7 +224,7 @@ main(void)
.BR printf (3),
.BR puts (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/setenv.3 b/man3/setenv.3
index 2be091f7a..978790bc1 100644
--- a/man3/setenv.3
+++ b/man3/setenv.3
@@ -46,10 +46,10 @@ setenv \- change or add an environment variable
.BI "int unsetenv(const char *" name );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR setenv (),
@@ -166,7 +166,7 @@ however, versions of glibc before 2.3.4 allowed an \(aq=\(aq sign in
.BR putenv (3),
.BR environ (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/setjmp.3 b/man3/setjmp.3
index 59a985481..ee6b42725 100644
--- a/man3/setjmp.3
+++ b/man3/setjmp.3
@@ -35,10 +35,10 @@ setjmp, sigsetjmp, longjmp, siglongjmp \- performing a nonlocal goto
.BI "void siglongjmp(sigjmp_buf " env ", int " val );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR setjmp ():
see NOTES.
@@ -326,7 +326,7 @@ returning from the initial call to
.BR signal (7),
.BR signal\-safety (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/setlocale.3 b/man3/setlocale.3
index cb2915570..90bdc720b 100644
--- a/man3/setlocale.3
+++ b/man3/setlocale.3
@@ -212,7 +212,7 @@ The remaining categories are GNU extensions.
.BR charsets (7),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/setlogmask.3 b/man3/setlogmask.3
index 4bcd292f5..84c036b83 100644
--- a/man3/setlogmask.3
+++ b/man3/setlogmask.3
@@ -97,7 +97,7 @@ will be included in the next release of the POSIX specification (Issue 8).
.BR openlog (3),
.BR syslog (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/setnetgrent.3 b/man3/setnetgrent.3
index 226a7410e..1c27079d6 100644
--- a/man3/setnetgrent.3
+++ b/man3/setnetgrent.3
@@ -28,10 +28,10 @@ handle network group entries
.BI " const char *" user ", const char *" domain );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR setnetgrent (),
@@ -156,7 +156,7 @@ returns void.
.BR setprotoent (3),
.BR setservent (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/shm_open.3 b/man3/shm_open.3
index 6387ba29d..995d87069 100644
--- a/man3/shm_open.3
+++ b/man3/shm_open.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH SHM_OPEN 3 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH SHM_OPEN 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
shm_open, shm_unlink \- create/open or unlink POSIX shared memory objects
.SH SYNOPSIS
@@ -382,7 +382,7 @@ main(int argc, char *argv[])
/* Map the object into the caller\(aqs address space */
- struct shmbuf *shmp = mmap(NULL, sizeof(struct shmbuf),
+ struct shmbuf *shmp = mmap(NULL, sizeof(*shmp),
PROT_READ | PROT_WRITE,
MAP_SHARED, fd, 0);
if (shmp == MAP_FAILED)
@@ -471,7 +471,7 @@ main(int argc, char *argv[])
if (fd == \-1)
errExit("shm_open");
- struct shmbuf *shmp = mmap(NULL, sizeof(struct shmbuf),
+ struct shmbuf *shmp = mmap(NULL, sizeof(*shmp),
PROT_READ | PROT_WRITE,
MAP_SHARED, fd, 0);
if (shmp == MAP_FAILED)
@@ -515,7 +515,7 @@ main(int argc, char *argv[])
.BR umask (2),
.BR shm_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sigabbrev_np.3 b/man3/sigabbrev_np.3
new file mode 100644
index 000000000..f64f75692
--- /dev/null
+++ b/man3/sigabbrev_np.3
@@ -0,0 +1 @@
+.so man3/strsignal.3
diff --git a/man3/sigdescr_np.3 b/man3/sigdescr_np.3
new file mode 100644
index 000000000..f64f75692
--- /dev/null
+++ b/man3/sigdescr_np.3
@@ -0,0 +1 @@
+.so man3/strsignal.3
diff --git a/man3/siginfo_t.3 b/man3/siginfo_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/siginfo_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/siginterrupt.3 b/man3/siginterrupt.3
index f7ae926eb..a598be215 100644
--- a/man3/siginterrupt.3
+++ b/man3/siginterrupt.3
@@ -38,10 +38,10 @@ siginterrupt \- allow signals to interrupt system calls
.BI "int siginterrupt(int " sig ", int " flag );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR siginterrupt ():
.ad l
@@ -108,7 +108,7 @@ flag instead.
.SH SEE ALSO
.BR signal (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/signbit.3 b/man3/signbit.3
index d632fb1fc..39450918c 100644
--- a/man3/signbit.3
+++ b/man3/signbit.3
@@ -18,10 +18,10 @@ signbit \- test sign of a real floating-point number
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR signbit ():
@@ -73,7 +73,7 @@ recommended functions in IEEE 754/IEEE 854).
.SH SEE ALSO
.BR copysign (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/significand.3 b/man3/significand.3
index 121c94fde..6f38c9bb7 100644
--- a/man3/significand.3
+++ b/man3/significand.3
@@ -21,10 +21,10 @@ get mantissa of floating-point number
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR significand (),
@@ -76,7 +76,7 @@ version is available on a number of other systems.
.BR ilogb (3),
.BR scalb (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sigpause.3 b/man3/sigpause.3
index e05ac71ac..fcb97adde 100644
--- a/man3/sigpause.3
+++ b/man3/sigpause.3
@@ -139,7 +139,7 @@ should be amended to use
.BR sigvec (3),
.BR feature_test_macros (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sigqueue.3 b/man3/sigqueue.3
index be545be2d..05f196598 100644
--- a/man3/sigqueue.3
+++ b/man3/sigqueue.3
@@ -33,10 +33,10 @@ sigqueue \- queue a signal and data to a process
.PP
.BI "int sigqueue(pid_t " pid ", int " sig ", const union sigval " value );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR sigqueue ():
_POSIX_C_SOURCE\ >=\ 199309L
@@ -172,7 +172,7 @@ uinfo.si_value = val; /* Argument supplied to sigqueue() */
.BR sigwait (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sigset.3 b/man3/sigset.3
index 961430bce..caca3edb8 100644
--- a/man3/sigset.3
+++ b/man3/sigset.3
@@ -38,10 +38,10 @@ sigset, sighold, sigrelse, sigignore \- System V signal API
.PP
.BI "int sigignore(int " sig );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sigset (),
@@ -289,7 +289,7 @@ These problems have been fixed since glibc 2.5.
.BR sigvec (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sigset_t.3 b/man3/sigset_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/sigset_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/sigsetops.3 b/man3/sigsetops.3
index a8b93613f..dab8f243b 100644
--- a/man3/sigsetops.3
+++ b/man3/sigsetops.3
@@ -45,10 +45,10 @@ signal set operations
.PP
.BI "int sigismember(const sigset_t *" set ", int " signum );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sigemptyset (),
@@ -206,7 +206,7 @@ functions) and their use should be avoided in portable applications.
.BR sigprocmask (2),
.BR sigsuspend (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sigval.3 b/man3/sigval.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/sigval.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/sigvec.3 b/man3/sigvec.3
index d304ef08d..257da1397 100644
--- a/man3/sigvec.3
+++ b/man3/sigvec.3
@@ -38,10 +38,10 @@ sigvec, sigblock, sigsetmask, siggetmask, sigmask \- BSD signal API
.PP
.B int siggetmask(void);
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
All functions shown above:
Since glibc 2.19:
@@ -287,7 +287,7 @@ for details.
.BR sigset (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sigwait.3 b/man3/sigwait.3
index 3ec659a7f..5d05fc073 100644
--- a/man3/sigwait.3
+++ b/man3/sigwait.3
@@ -33,10 +33,10 @@ sigwait \- wait for a signal
.BI " int sigwait(const sigset_t *" set ", int *" sig );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sigwait ():
@@ -121,7 +121,7 @@ See
.BR sigsetops (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sin.3 b/man3/sin.3
index b4801946c..7a35782d9 100644
--- a/man3/sin.3
+++ b/man3/sin.3
@@ -46,10 +46,10 @@ sin, sinf, sinl \- sine function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sinf (),
@@ -137,7 +137,7 @@ when a domain error occurred.
.BR sincos (3),
.BR tan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sincos.3 b/man3/sincos.3
index a592be018..1d87973b0 100644
--- a/man3/sincos.3
+++ b/man3/sincos.3
@@ -109,7 +109,7 @@ when a domain error occurred.
.BR sin (3),
.BR tan (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sinh.3 b/man3/sinh.3
index d05deacc4..2cb7b8397 100644
--- a/man3/sinh.3
+++ b/man3/sinh.3
@@ -47,10 +47,10 @@ sinh, sinhf, sinhl \- hyperbolic sine function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sinhf (),
@@ -144,7 +144,7 @@ SVr4, 4.3BSD, C89.
.BR csinh (3),
.BR tanh (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/size_t.3 b/man3/size_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/size_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/sleep.3 b/man3/sleep.3
index dc5cce5f2..01776948e 100644
--- a/man3/sleep.3
+++ b/man3/sleep.3
@@ -91,7 +91,7 @@ while sleeping will cause undefined results.
.BR signal (2),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/slist.3 b/man3/slist.3
new file mode 100644
index 000000000..b0c397df5
--- /dev/null
+++ b/man3/slist.3
@@ -0,0 +1,366 @@
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\" and Copyright (c) 2020 by Alejandro Colomar <colomar.6.4.3@gmail.com>
+.\"
+.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
+.\" Redistribution and use in source and binary forms, 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.
+.\" %%%LICENSE_END
+.\"
+.\"
+.TH SLIST 3 2020-10-21 "GNU" "Linux Programmer's Manual"
+.SH NAME
+SLIST_EMPTY,
+SLIST_ENTRY,
+SLIST_FIRST,
+SLIST_FOREACH,
+.\"SLIST_FOREACH_FROM,
+.\"SLIST_FOREACH_FROM_SAFE,
+.\"SLIST_FOREACH_SAFE,
+SLIST_HEAD,
+SLIST_HEAD_INITIALIZER,
+SLIST_INIT,
+SLIST_INSERT_AFTER,
+SLIST_INSERT_HEAD,
+SLIST_NEXT,
+SLIST_REMOVE,
+.\"SLIST_REMOVE_AFTER,
+SLIST_REMOVE_HEAD
+.\"SLIST_SWAP
+\- implementation of a singly linked list
+.SH SYNOPSIS
+.nf
+.B #include <sys/queue.h>
+.PP
+.BI "int SLIST_EMPTY(SLIST_HEAD *" head ");"
+.PP
+.B SLIST_ENTRY(TYPE);
+.PP
+.BI "struct TYPE *SLIST_FIRST(SLIST_HEAD *" head ");"
+.PP
+.BI "SLIST_FOREACH(struct TYPE *" var ", SLIST_HEAD *" head ", SLIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "SLIST_FOREACH_FROM(struct TYPE *" var ", SLIST_HEAD *" head ", SLIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "SLIST_FOREACH_FROM_SAFE(struct TYPE *" var ", SLIST_HEAD *" head ", SLIST_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.\".PP
+.\".BI "SLIST_FOREACH_SAFE(struct TYPE *" var ", SLIST_HEAD *" head ", SLIST_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.PP
+.B SLIST_HEAD(HEADNAME, TYPE);
+.PP
+.BI "SLIST_HEAD SLIST_HEAD_INITIALIZER(SLIST_HEAD " head ");"
+.PP
+.BI "void SLIST_INIT(SLIST_HEAD *" head ");"
+.PP
+.BI "void SLIST_INSERT_AFTER(struct TYPE *" listelm ", struct TYPE *" elm ","
+.BI " SLIST_ENTRY " NAME ");"
+.PP
+.BI "void SLIST_INSERT_HEAD(SLIST_HEAD *" head ", struct TYPE *" elm ","
+.BI " SLIST_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *SLIST_NEXT(struct TYPE *" elm ", SLIST_ENTRY " NAME ");"
+.PP
+.BI "void SLIST_REMOVE(SLIST_HEAD *" head ", struct TYPE *" elm ", SLIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "void SLIST_REMOVE_AFTER(struct TYPE *" elm ", SLIST_ENTRY " NAME ");"
+.PP
+.BI "void SLIST_REMOVE_HEAD(SLIST_HEAD *" head ", SLIST_ENTRY " NAME ");"
+.\".PP
+.\".BI "void SLIST_SWAP(SLIST_HEAD *" head1 ", SLIST_HEAD *" head2 ", SLIST_ENTRY " NAME ");"
+.fi
+.SH DESCRIPTION
+These macros define and operate on doubly linked lists.
+.PP
+In the macro definitions,
+.I TYPE
+is the name of a user-defined structure,
+that must contain a field of type
+.IR SLIST_ENTRY ,
+named
+.IR NAME .
+The argument
+.IR HEADNAME
+is the name of a user-defined structure that must be declared
+using the macro
+.BR SLIST_HEAD ().
+.PP
+A singly linked list is headed by a structure defined by the
+.BR SLIST_HEAD ()
+macro.
+This structure contains a single pointer to the first element
+on the list.
+The elements are singly linked for minimum space and pointer manipulation
+overhead at the expense of O(n) removal for arbitrary elements.
+New elements can be added to the list after an existing element or
+at the head of the list.
+An
+.I SLIST_HEAD
+structure is declared as follows:
+.PP
+.in +4
+.EX
+SLIST_HEAD(HEADNAME, TYPE) head;
+.EE
+.in
+.PP
+where
+.I struct HEADNAME
+is the structure to be defined, and
+.I struct TYPE
+is the type of the elements to be linked into the list.
+A pointer to the head of the list can later be declared as:
+.PP
+.in +4
+.EX
+struct HEADNAME *headp;
+.EE
+.in
+.PP
+(The names
+.I head
+and
+.I headp
+are user selectable.)
+.PP
+The macro
+.BR SLIST_HEAD_INITIALIZER ()
+evaluates to an initializer for the list
+.IR head .
+.PP
+The macro
+.BR SLIST_EMPTY ()
+evaluates to true if there are no elements in the list.
+.PP
+The macro
+.BR SLIST_ENTRY ()
+declares a structure that connects the elements in
+the list.
+.PP
+The macro
+.BR SLIST_FIRST ()
+returns the first element in the list or NULL if the list is empty.
+.PP
+The macro
+.BR SLIST_FOREACH ()
+traverses the list referenced by
+.I head
+in the forward direction, assigning each element in
+turn to
+.IR var .
+.\" .PP
+.\" The macro
+.\" .BR SLIST_FOREACH_FROM ()
+.\" behaves identically to
+.\" .BR SLIST_FOREACH ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found SLIST element and begins the loop at
+.\" .I var
+.\" instead of the first element in the SLIST referenced by
+.\" .IR head .
+.\" .Pp
+.\" The macro
+.\" .BR SLIST_FOREACH_SAFE ()
+.\" traverses the list referenced by
+.\" .I head
+.\" in the forward direction, assigning each element in
+.\" turn to
+.\" .IR var .
+.\" However, unlike
+.\" .BR SLIST_FOREACH ()
+.\" here it is permitted to both remove
+.\" .I var
+.\" as well as free it from within the loop safely without interfering with the
+.\" traversal.
+.\" .PP
+.\" The macro
+.\" .BR SLIST_FOREACH_FROM_SAFE ()
+.\" behaves identically to
+.\" .BR SLIST_FOREACH_SAFE ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found SLIST element and begins the loop at
+.\" .I var
+.\" instead of the first element in the SLIST referenced by
+.\" .IR head .
+.PP
+The macro
+.BR SLIST_INIT ()
+initializes the list referenced by
+.IR head .
+.PP
+The macro
+.BR SLIST_INSERT_HEAD ()
+inserts the new element
+.I elm
+at the head of the list.
+.PP
+The macro
+.BR SLIST_INSERT_AFTER ()
+inserts the new element
+.I elm
+after the element
+.IR listelm .
+.PP
+The macro
+.BR SLIST_NEXT ()
+returns the next element in the list.
+.\" .PP
+.\" The macro
+.\" .BR SLIST_REMOVE_AFTER ()
+.\" removes the element after
+.\" .I elm
+.\" from the list.
+.\" Unlike
+.\" .IR SLIST_REMOVE ,
+.\" this macro does not traverse the entire list.
+.PP
+The macro
+.BR SLIST_REMOVE_HEAD ()
+removes the element
+.I elm
+from the head of the list.
+For optimum efficiency,
+elements being removed from the head of the list should explicitly use
+this macro instead of the generic
+.I SLIST_REMOVE
+macro.
+.PP
+The macro
+.BR SLIST_REMOVE ()
+removes the element
+.I elm
+from the list.
+.\" .PP
+.\" The macro
+.\" .BR SLIST_SWAP ()
+.\" swaps the contents of
+.\" .I head1
+.\" and
+.\" .IR head2 .
+.SH RETURN VALUE
+.BR SLIST_EMPTY ()
+returns nonzero if the list is empty,
+and zero if the list contains at least one entry.
+.PP
+.BR SLIST_FIRST (),
+and
+.BR SLIST_NEXT ()
+return a pointer to the first or next
+.I TYPE
+structure, respectively.
+.PP
+.BR SLIST_HEAD_INITIALIZER ()
+returns an initializer that can be assigned to the list
+.IR head .
+.SH CONFORMING TO
+Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008.
+Present on the BSDs
+(SLIST macros first appeared in 4.4BSD).
+.SH BUGS
+The macro
+.BR SLIST_FOREACH ()
+doesn't allow
+.I var
+to be removed or freed within the loop,
+as it would interfere with the traversal.
+The macro
+.BR SLIST_FOREACH_SAFE (),
+which is present on the BSDs but is not present in glibc,
+fixes this limitation by allowing
+.I var
+to safely be removed from the list and freed from within the loop
+without interfering with the traversal.
+.SH EXAMPLES
+.EX
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/queue.h>
+
+struct entry {
+ int data;
+ SLIST_ENTRY(entry) entries; /* Singly linked List. */
+};
+
+SLIST_HEAD(slisthead, entry);
+
+int
+main(void)
+{
+ struct entry *n1, *n2, *n3, *np;
+ struct slisthead head; /* Singly linked List
+ head. */
+
+ SLIST_INIT(&head); /* Initialize the queue. */
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
+ SLIST_INSERT_HEAD(&head, n1, entries);
+
+ n2 = malloc(sizeof(struct entry)); /* Insert after. */
+ SLIST_INSERT_AFTER(n1, n2, entries);
+
+ SLIST_REMOVE(&head, n2, entry, entries);/* Deletion. */
+ free(n2);
+
+ n3 = SLIST_FIRST(&head);
+ SLIST_REMOVE_HEAD(&head, entries); /* Deletion from the head. */
+ free(n3);
+
+ for (int i = 0; i < 5; i++) {
+ n1 = malloc(sizeof(struct entry));
+ SLIST_INSERT_HEAD(&head, n1, entries);
+ n1->data = i;
+ }
+
+ /* Forward traversal. */
+ SLIST_FOREACH(np, &head, entries)
+ printf("%i\en", np->data);
+
+ while (!SLIST_EMPTY(&head)) { /* List Deletion. */
+ n1 = SLIST_FIRST(&head);
+ SLIST_REMOVE_HEAD(&head, entries);
+ free(n1);
+ }
+ SLIST_INIT(&head);
+
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
+.BR insque (3),
+.BR queue (7)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man3/sockatmark.3 b/man3/sockatmark.3
index 909a4aa71..3e771fce7 100644
--- a/man3/sockatmark.3
+++ b/man3/sockatmark.3
@@ -30,10 +30,10 @@ sockatmark \- determine whether socket is at out-of-band mark
.PP
.BI "int sockatmark(int " sockfd );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sockatmark ():
@@ -149,7 +149,7 @@ and then read the byte of data at the mark:
.BR send (2),
.BR tcp (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sqrt.3 b/man3/sqrt.3
index 0de9e7116..839c3be79 100644
--- a/man3/sqrt.3
+++ b/man3/sqrt.3
@@ -45,10 +45,10 @@ sqrt, sqrtf, sqrtl \- square root function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR sqrtf (),
@@ -124,7 +124,7 @@ SVr4, 4.3BSD, C89.
.BR csqrt (3),
.BR hypot (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ssize_t.3 b/man3/ssize_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/ssize_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/stailq.3 b/man3/stailq.3
new file mode 100644
index 000000000..d31eb62c8
--- /dev/null
+++ b/man3/stailq.3
@@ -0,0 +1,404 @@
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\" and Copyright (c) 2020 by Alejandro Colomar <colomar.6.4.3@gmail.com>
+.\"
+.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
+.\" Redistribution and use in source and binary forms, 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.
+.\" %%%LICENSE_END
+.\"
+.\"
+.TH STAILQ 3 2020-10-21 "GNU" "Linux Programmer's Manual"
+.SH NAME
+STAILQ_CONCAT,
+STAILQ_EMPTY,
+STAILQ_ENTRY,
+STAILQ_FIRST,
+STAILQ_FOREACH,
+.\"STAILQ_FOREACH_FROM,
+.\"STAILQ_FOREACH_FROM_SAFE,
+.\"STAILQ_FOREACH_SAFE,
+STAILQ_HEAD,
+STAILQ_HEAD_INITIALIZER,
+STAILQ_INIT,
+STAILQ_INSERT_AFTER,
+STAILQ_INSERT_HEAD,
+STAILQ_INSERT_TAIL,
+.\"STAILQ_LAST,
+STAILQ_NEXT,
+STAILQ_REMOVE,
+.\"STAILQ_REMOVE_AFTER,
+STAILQ_REMOVE_HEAD,
+.\"STAILQ_SWAP
+\- implementation of a singly linked tail queue
+.SH SYNOPSIS
+.nf
+.B #include <sys/queue.h>
+.PP
+.BI "void STAILQ_CONCAT(STAILQ_HEAD *" head1 ", STAILQ_HEAD *" head2 ");"
+.PP
+.BI "int STAILQ_EMPTY(STAILQ_HEAD *" head ");"
+.PP
+.B STAILQ_ENTRY(TYPE);
+.PP
+.BI "struct TYPE *STAILQ_FIRST(STAILQ_HEAD *" head ");"
+.PP
+.BI "STAILQ_FOREACH(struct TYPE *" var ", STAILQ_HEAD *" head ", STAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "STAILQ_FOREACH_FROM(struct TYPE *" var ", STAILQ_HEAD *" head ", STAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "STAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head ", STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.\" .PP
+.\" .BI "STAILQ_FOREACH_SAFE(struct TYPE *" var ", STAILQ_HEAD *" head ", STAILQ_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.PP
+.B STAILQ_HEAD(HEADNAME, TYPE);
+.PP
+.BI "STAILQ_HEAD STAILQ_HEAD_INITIALIZER(STAILQ_HEAD " head ");"
+.PP
+.BI "void STAILQ_INIT(STAILQ_HEAD *" head ");"
+.PP
+.BI "void STAILQ_INSERT_AFTER(STAILQ_HEAD *" head ", struct TYPE *" listelm ","
+.BI " struct TYPE *" elm ", STAILQ_ENTRY " NAME ");"
+.PP
+.BI "void STAILQ_INSERT_HEAD(STAILQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " STAILQ_ENTRY " NAME ");"
+.PP
+.BI "void STAILQ_INSERT_TAIL(STAILQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " STAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "struct TYPE *STAILQ_LAST(STAILQ_HEAD *" head ", struct TYPE *" elm ", STAILQ_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *STAILQ_NEXT(struct TYPE *" elm ", STAILQ_ENTRY " NAME ");"
+.PP
+.BI "void STAILQ_REMOVE(STAILQ_HEAD *" head ", struct TYPE *" elm ", TYPE,"
+.BI " STAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "void STAILQ_REMOVE_AFTER(STAILQ_HEAD *" head ", struct TYPE *" elm ","
+.\" .BI " STAILQ_ENTRY " NAME ");"
+.PP
+.BI "void STAILQ_REMOVE_HEAD(STAILQ_HEAD *" head ", STAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "void STAILQ_SWAP(STAILQ_HEAD *" head1 ", STAILQ_HEAD *" head2 ","
+.\" .BI " STAILQ_ENTRY " NAME ");"
+.fi
+.SH DESCRIPTION
+These macros define and operate on singly linked tail queues.
+.PP
+In the macro definitions,
+.I TYPE
+is the name of a user-defined structure,
+that must contain a field of type
+.IR STAILQ_ENTRY ,
+named
+.IR NAME .
+The argument
+.I HEADNAME
+is the name of a user-defined structure that must be declared
+using the macro
+.BR STAILQ_HEAD ().
+.PP
+A singly linked tail queue is headed by a structure defined by the
+.BR STAILQ_HEAD ()
+macro.
+This structure contains a pair of pointers,
+one to the first element in the tail queue and the other to
+the last element in the tail queue.
+The elements are singly linked for minimum space and pointer
+manipulation overhead at the expense of O(n) removal for arbitrary
+elements.
+New elements can be added to the tail queue after an existing element,
+at the head of the tail queue, or at the end of the tail queue.
+A
+.I STAILQ_HEAD
+structure is declared as follows:
+.PP
+.in +4
+.EX
+STAILQ_HEAD(HEADNAME, TYPE) head;
+.EE
+.in
+.PP
+where
+.I struct HEADNAME
+is the structure to be defined, and
+.I struct TYPE
+is the type of the elements to be linked into the tail queue.
+A pointer to the head of the tail queue can later be declared as:
+.PP
+.in +4
+.EX
+struct HEADNAME *headp;
+.EE
+.in
+.PP
+(The names
+.I head
+and
+.I headp
+are user selectable.)
+.PP
+The macro
+.BR STAILQ_HEAD_INITIALIZER ()
+evaluates to an initializer for the tail queue
+.IR head .
+.PP
+The macro
+.BR STAILQ_CONCAT ()
+concatenates the tail queue headed by
+.I head2
+onto the end of the one headed by
+.I head1
+removing all entries from the former.
+.PP
+The macro
+.BR STAILQ_EMPTY ()
+evaluates to true if there are no items on the tail queue.
+.PP
+The macro
+.BR STAILQ_ENTRY ()
+declares a structure that connects the elements in
+the tail queue.
+.PP
+The macro
+.BR STAILQ_FIRST ()
+returns the first item on the tail queue or NULL if the tail queue
+is empty.
+.PP
+The macro
+.BR STAILQ_FOREACH ()
+traverses the tail queue referenced by
+.I head
+in the forward direction, assigning each element
+in turn to
+.IR var .
+.\" .PP
+.\" The macro
+.\" .BR STAILQ_FOREACH_FROM ()
+.\" behaves identically to
+.\" .BR STAILQ_FOREACH ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found STAILQ element and begins the loop at
+.\" .I var
+.\" instead of the first element in the STAILQ referenced by
+.\" .IR head .
+.\" .PP
+.\" The macro
+.\" .BR STAILQ_FOREACH_SAFE ()
+.\" traverses the tail queue referenced by
+.\" .I head
+.\" in the forward direction, assigning each element
+.\" in turn to
+.\" .IR var .
+.\" However, unlike
+.\" .BR STAILQ_FOREACH ()
+.\" here it is permitted to both remove
+.\" .I var
+.\" as well as free it from within the loop safely without interfering with the
+.\" traversal.
+.\" .PP
+.\" The macro
+.\" .BR STAILQ_FOREACH_FROM_SAFE ()
+.\" behaves identically to
+.\" .BR STAILQ_FOREACH_SAFE ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found STAILQ element and begins the loop at
+.\" .I var
+.\" instead of the first element in the STAILQ referenced by
+.\" .IR head .
+.PP
+The macro
+.BR STAILQ_INIT ()
+initializes the tail queue referenced by
+.IR head .
+.PP
+The macro
+.BR STAILQ_INSERT_HEAD ()
+inserts the new element
+.I elm
+at the head of the tail queue.
+.PP
+The macro
+.BR STAILQ_INSERT_TAIL ()
+inserts the new element
+.I elm
+at the end of the tail queue.
+.PP
+The macro
+.BR STAILQ_INSERT_AFTER ()
+inserts the new element
+.I elm
+after the element
+.IR listelm .
+.\" .PP
+.\" The macro
+.\" .BR STAILQ_LAST ()
+.\" returns the last item on the tail queue.
+.\" If the tail queue is empty the return value is NULL .
+.PP
+The macro
+.BR STAILQ_NEXT ()
+returns the next item on the tail queue, or NULL this item is the last.
+.\" .PP
+.\" The macro
+.\" .BR STAILQ_REMOVE_AFTER ()
+.\" removes the element after
+.\" .I elm
+.\" from the tail queue.
+.\" Unlike
+.\" .BR STAILQ_REMOVE (),
+.\" this macro does not traverse the entire tail queue.
+.PP
+The macro
+.BR STAILQ_REMOVE_HEAD ()
+removes the element at the head of the tail queue.
+For optimum efficiency,
+elements being removed from the head of the tail queue should
+use this macro explicitly rather than the generic
+.BR STAILQ_REMOVE ()
+macro.
+.PP
+The macro
+.BR STAILQ_REMOVE ()
+removes the element
+.I elm
+from the tail queue.
+.\" .PP
+.\" The macro
+.\" .BR STAILQ_SWAP ()
+.\" swaps the contents of
+.\" .I head1
+.\" and
+.\" .IR head2 .
+.SH RETURN VALUE
+.BR STAILQ_EMPTY ()
+returns nonzero if the queue is empty,
+and zero if the queue contains at least one entry.
+.PP
+.BR STAILQ_FIRST (),
+and
+.BR STAILQ_NEXT ()
+return a pointer to the first or next
+.I TYPE
+structure, respectively.
+.PP
+.BR STAILQ_HEAD_INITIALIZER ()
+returns an initializer that can be assigned to the queue
+.IR head .
+.SH CONFORMING TO
+Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008.
+Present on the BSDs
+(STAILQ macros first appeared in 4.4BSD).
+.SH BUGS
+The macro
+.BR STAILQ_FOREACH ()
+doesn't allow
+.I var
+to be removed or freed within the loop,
+as it would interfere with the traversal.
+The macro
+.BR STAILQ_FOREACH_SAFE (),
+which is present on the BSDs but is not present in glibc,
+fixes this limitation by allowing
+.I var
+to safely be removed from the list and freed from within the loop
+without interfering with the traversal.
+.SH EXAMPLES
+.EX
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/queue.h>
+
+struct entry {
+ int data;
+ STAILQ_ENTRY(entry) entries; /* Singly linked tail queue. */
+};
+
+STAILQ_HEAD(stailhead, entry);
+
+int
+main(void)
+{
+ struct entry *n1, *n2, *n3, *np;
+ struct stailhead head; /* Singly linked tail queue
+ head. */
+
+ STAILQ_INIT(&head); /* Initialize the queue. */
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
+ STAILQ_INSERT_HEAD(&head, n1, entries);
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */
+ STAILQ_INSERT_TAIL(&head, n1, entries);
+
+ n2 = malloc(sizeof(struct entry)); /* Insert after. */
+ STAILQ_INSERT_AFTER(&head, n1, n2, entries);
+
+ STAILQ_REMOVE(&head, n2, entry, entries);/* Deletion. */
+ free(n2);
+
+ n3 = STAILQ_FIRST(&head);
+ STAILQ_REMOVE_HEAD(&head, entries); /* Deletion from the head. */
+ free(n3);
+
+ n1 = STAILQ_FIRST(&head);
+ n1->data = 0;
+ for (int i = 1; i < 5; i++) {
+ n1 = malloc(sizeof(struct entry));
+ STAILQ_INSERT_HEAD(&head, n1, entries);
+ n1->data = i;
+ }
+ /* Forward traversal. */
+ STAILQ_FOREACH(np, &head, entries)
+ printf("%i\en", np->data);
+ /* TailQ Deletion. */
+ n1 = STAILQ_FIRST(&head);
+ while (n1 != NULL) {
+ n2 = STAILQ_NEXT(n1, entries);
+ free(n1);
+ n1 = n2;
+ }
+ STAILQ_INIT(&head);
+
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
+.BR insque (3),
+.BR queue (7)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man3/statvfs.3 b/man3/statvfs.3
index 148bebbfa..c3d1573bb 100644
--- a/man3/statvfs.3
+++ b/man3/statvfs.3
@@ -257,7 +257,7 @@ with the argument
.SH SEE ALSO
.BR statfs (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/stdarg.3 b/man3/stdarg.3
index 3c7eeec96..f56d7bc54 100644
--- a/man3/stdarg.3
+++ b/man3/stdarg.3
@@ -40,7 +40,7 @@
.\" Converted for Linux, Mon Nov 29 15:11:11 1993, faith@cs.unc.edu
.\" Additions, 2001-10-14, aeb
.\"
-.TH STDARG 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH STDARG 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
stdarg, va_start, va_arg, va_end, va_copy \- variable argument lists
.SH SYNOPSIS
@@ -280,12 +280,13 @@ with each format character based on the type.
#include <stdarg.h>
void
-foo(char *fmt, ...) /* '...' is C syntax for a variadic function */
+foo(char *fmt, ...) /* \(aq...\(aq is C syntax for a variadic function */
{
va_list ap;
int d;
- char c, *s;
+ char c;
+ char *s;
va_start(ap, fmt);
while (*fmt)
@@ -313,7 +314,7 @@ foo(char *fmt, ...) /* '...' is C syntax for a variadic function */
.BR vscanf (3),
.BR vsyslog (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/stdin.3 b/man3/stdin.3
index 797b46c03..657cb5c70 100644
--- a/man3/stdin.3
+++ b/man3/stdin.3
@@ -158,7 +158,7 @@ and
.BR fopen (3),
.BR stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/stdio.3 b/man3/stdio.3
index 91f6e922e..25e3d4030 100644
--- a/man3/stdio.3
+++ b/man3/stdio.3
@@ -254,7 +254,7 @@ library conforms to C89.
.BR stdout (3),
.BR unlocked_stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/stdio_ext.3 b/man3/stdio_ext.3
index 980897924..dd1786f81 100644
--- a/man3/stdio_ext.3
+++ b/man3/stdio_ext.3
@@ -151,7 +151,7 @@ T} Thread safety MT-Safe
.BR flockfile (3),
.BR fpurge (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/stpcpy.3 b/man3/stpcpy.3
index a9ff36b57..8e973de8b 100644
--- a/man3/stpcpy.3
+++ b/man3/stpcpy.3
@@ -32,10 +32,10 @@ stpcpy \- copy a string returning a pointer to its end
.BI "char *stpcpy(char *" dest ", const char *" src );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR stpcpy ():
.PD 0
@@ -129,7 +129,7 @@ main(void)
.BR string (3),
.BR wcpcpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/stpncpy.3 b/man3/stpncpy.3
index 79adf8985..584384b96 100644
--- a/man3/stpncpy.3
+++ b/man3/stpncpy.3
@@ -21,10 +21,10 @@ stpncpy \- copy a fixed-size string, returning a pointer to its end
.BI "char *stpncpy(char *" dest ", const char *" src ", size_t " n );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR stpncpy ():
.PD 0
@@ -108,7 +108,7 @@ It first appeared in version 1.07 of the GNU C library in 1993.
.BR strncpy (3),
.BR wcpncpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strcasecmp.3 b/man3/strcasecmp.3
index 3f95f2413..7a5ea6948 100644
--- a/man3/strcasecmp.3
+++ b/man3/strcasecmp.3
@@ -124,7 +124,7 @@ Otherwise, the results are unspecified.
.BR wcscasecmp (3),
.BR wcsncasecmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strcat.3 b/man3/strcat.3
index 660fd3f86..8dc08dfba 100644
--- a/man3/strcat.3
+++ b/man3/strcat.3
@@ -29,7 +29,7 @@
.\" Modified Sat Jul 24 18:11:47 1993 by Rik Faith (faith@cs.unc.edu)
.\" 2007-06-15, Marc Boyer <marc.boyer@enseeiht.fr> + mtk
.\" Improve discussion of strncat().
-.TH STRCAT 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH STRCAT 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
strcat, strncat \- concatenate two strings
.SH SYNOPSIS
@@ -200,6 +200,7 @@ will provide better performance.)
.SS Program source
\&
.EX
+#include <stdint.h>
#include <string.h>
#include <time.h>
#include <stdio.h>
@@ -208,16 +209,15 @@ int
main(int argc, char *argv[])
{
#define LIM 4000000
- int j;
char p[LIM + 1]; /* +1 for terminating null byte */
time_t base;
base = time(NULL);
p[0] = \(aq\e0\(aq;
- for (j = 0; j < LIM; j++) {
+ for (int j = 0; j < LIM; j++) {
if ((j % 10000) == 0)
- printf("%d %ld\en", j, (long) (time(NULL) \- base));
+ printf("%d %jd\en", j, (intmax_t) (time(NULL) \- base));
strcat(p, "a");
}
}
@@ -233,7 +233,7 @@ main(int argc, char *argv[])
.BR wcscat (3),
.BR wcsncat (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strchr.3 b/man3/strchr.3
index 39cfbea68..f5d853224 100644
--- a/man3/strchr.3
+++ b/man3/strchr.3
@@ -137,7 +137,7 @@ is a GNU extension.
.BR wcschr (3),
.BR wcsrchr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strcmp.3 b/man3/strcmp.3
index c0b5680a2..5466a8217 100644
--- a/man3/strcmp.3
+++ b/man3/strcmp.3
@@ -112,7 +112,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
POSIX.1 specifies only that:
.RS
.PP
-The sign of a non-zero return value shall be determined by the sign
+The sign of a nonzero return value shall be determined by the sign
of the difference between the values of the first pair of bytes
(both interpreted as type
.IR "unsigned char" )
@@ -219,7 +219,7 @@ main(int argc, char *argv[])
.BR wcsncmp (3),
.BR ascii (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strcoll.3 b/man3/strcoll.3
index ef8513d58..6c66a73aa 100644
--- a/man3/strcoll.3
+++ b/man3/strcoll.3
@@ -99,7 +99,7 @@ is equivalent to
.BR string (3),
.BR strxfrm (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strcpy.3 b/man3/strcpy.3
index 661050396..4dce2a919 100644
--- a/man3/strcpy.3
+++ b/man3/strcpy.3
@@ -242,7 +242,7 @@ in ways that may make the impossible possible.
.BR wcscpy (3),
.BR wcsncpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strdup.3 b/man3/strdup.3
index f474408c4..303ba1393 100644
--- a/man3/strdup.3
+++ b/man3/strdup.3
@@ -42,10 +42,10 @@ strdup, strndup, strdupa, strndupa \- duplicate a string
.BI "char *strndupa(const char *" s ", size_t " n );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.PD 0
.ad l
@@ -154,7 +154,7 @@ are GNU extensions.
.BR string (3),
.BR wcsdup (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strerror.3 b/man3/strerror.3
index 2f059047c..5b5055c35 100644
--- a/man3/strerror.3
+++ b/man3/strerror.3
@@ -1,5 +1,5 @@
.\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk)
-.\" and Copyright (C) 2005, 2014 Michael Kerrisk <mtk.manpages@gmail.com>
+.\" and Copyright (C) 2005, 2014, 2020 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
@@ -36,14 +36,16 @@
.\" 2005-12-13, mtk, Substantial rewrite of strerror_r() description
.\" Addition of extra material on portability and standards.
.\"
-.TH STRERROR 3 2019-03-06 "" "Linux Programmer's Manual"
+.TH STRERROR 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
-strerror, strerror_r, strerror_l \- return string describing error number
+strerror, strerrorname_np, strerrordesc_np, strerror_r, strerror_l \- return string describing error number
.SH SYNOPSIS
.nf
.B #include <string.h>
.PP
.BI "char *strerror(int " errnum );
+.BI "const char *strerrorname_np(int " errnum );
+.BI "const char *strerrordesc_np(int " errnum );
.PP
.BI "int strerror_r(int " errnum ", char *" buf ", size_t " buflen );
/* XSI-compliant */
@@ -54,12 +56,17 @@ strerror, strerror_r, strerror_l \- return string describing error number
.BI "char *strerror_l(int " errnum ", locale_t " locale );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
+.PD 0
+.BR strerrorname_np (),
+.BR strerrordesc_np ():
+ _GNU_SOURCE
+.PP
.BR strerror_r ():
.RS 4
The XSI-compliant version is provided if:
@@ -68,6 +75,7 @@ The XSI-compliant version is provided if:
.br
Otherwise, the GNU-specific version is provided.
.RE
+.PD
.ad
.SH DESCRIPTION
The
@@ -91,6 +99,25 @@ or
No other library function, including
.BR perror (3),
will modify this string.
+.PP
+Like
+.BR strerror (),
+the
+.BR strerrordesc_np ()
+function returns a pointer to a string that describes the error
+code passed in the argument
+.IR errnum ,
+with the difference that the returned string is not translated
+according to the current locale.
+.PP
+The
+.BR strerrorname_np ()
+function returns a pointer to a string containing the name of the error
+code passed in the argument
+.IR errnum .
+For example, given
+.BR EPERM
+as an argument, this function returns a pointer to the string "EPERM".
.\"
.SS strerror_r()
The
@@ -167,6 +194,15 @@ functions return
the appropriate error description string,
or an "Unknown error nnn" message if the error number is unknown.
.PP
+On success,
+.BR strerrorname_np ()
+and
+.BR strerrordesc_np ()
+return the appropriate error description string.
+If
+.I errnum
+is an invalid error number, these functions return NULL.
+.PP
The XSI-compliant
.BR strerror_r ()
function returns 0 on success.
@@ -208,13 +244,17 @@ For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
-lbw14 lb lb
+lbw18 lb lb
l l l.
Interface Attribute Value
T{
.BR strerror ()
T} Thread safety MT-Unsafe race:strerror
T{
+.BR strerrorname_np (),
+.BR strerrordesc ()
+T} Thread safety MT-Safe
+T{
.BR strerror_r (),
.br
.BR strerror_l ()
@@ -233,9 +273,12 @@ is specified by POSIX.1-2001 and POSIX.1-2008.
.BR strerror_l ()
is specified in POSIX.1-2008.
.PP
-The GNU-specific
-.BR strerror_r ()
-function is a nonstandard extension.
+The GNU-specific functions
+.BR strerror_r (),
+.BR strerrorname_np (),
+and
+.BR strerrordesc_np ()
+are nonstandard extensions.
.PP
POSIX.1-2001 permits
.BR strerror ()
@@ -263,6 +306,11 @@ This buffer size therefore should be sufficient to avoid an
.B ERANGE
error when calling
.BR strerror_r ().
+.PP
+.BR strerrorname_np ()
+and
+.BR strerrordesc_np ()
+are thread-safe and async-signal-safe.
.SH SEE ALSO
.BR err (3),
.BR errno (3),
@@ -271,7 +319,7 @@ error when calling
.BR strsignal (3),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strerrordesc_np.3 b/man3/strerrordesc_np.3
new file mode 100644
index 000000000..649dd6d91
--- /dev/null
+++ b/man3/strerrordesc_np.3
@@ -0,0 +1 @@
+.so man3/strerror.3
diff --git a/man3/strerrorname_np.3 b/man3/strerrorname_np.3
new file mode 100644
index 000000000..649dd6d91
--- /dev/null
+++ b/man3/strerrorname_np.3
@@ -0,0 +1 @@
+.so man3/strerror.3
diff --git a/man3/strfmon.3 b/man3/strfmon.3
index 4885d8b68..26d7dedb1 100644
--- a/man3/strfmon.3
+++ b/man3/strfmon.3
@@ -21,7 +21,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH STRFMON 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH STRFMON 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
strfmon, strfmon_l \- convert monetary value to a string
.SH SYNOPSIS
@@ -206,7 +206,7 @@ locales yield
.in +4n
.EX
[ **1234,57 €] [ **1.234,57 EUR]
-[ Fr. **1234.57] [ CHF **1'234.57]
+[ Fr. **1234.57] [ CHF **1\(aq234.57]
[ $**1234.57] [ AUD**1,234.57]
[ £**1234.57] [ GBP**1,234.57]
.EE
@@ -217,7 +217,7 @@ locales yield
.BR sprintf (3),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strfromd.3 b/man3/strfromd.3
index ae80ade66..98e0d3909 100644
--- a/man3/strfromd.3
+++ b/man3/strfromd.3
@@ -45,10 +45,10 @@ a string
.BI " const char *restrict " format ", long double " fp ");"
.fi
.PP
-.in -4
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR strfromd (),
@@ -210,7 +210,7 @@ category of the current locale.
To convert the value 12.1 as a float type to a string using decimal
notation, resulting in "12.100000":
.PP
-.in +4
+.in +4n
.EX
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
@@ -223,7 +223,7 @@ strfromf(s, ssize, "%f", 12.1);
To convert the value 12.3456 as a float type to a string using
decimal notation with two digits of precision, resulting in "12.35":
.PP
-.in +4
+.in +4n
.EX
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
@@ -236,7 +236,7 @@ strfromf(s, ssize, "%.2f", 12.3456);
To convert the value 12.345e19 as a double type to a string using
scientific notation with zero digits of precision, resulting in "1E+20":
.PP
-.in +4
+.in +4n
.EX
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
@@ -250,7 +250,7 @@ strfromd(s, ssize, "%.E", 12.345e19);
.BR snprintf (3),
.BR strtod (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strfry.3 b/man3/strfry.3
index 1966cadca..08326018c 100644
--- a/man3/strfry.3
+++ b/man3/strfry.3
@@ -71,7 +71,7 @@ GNU C Library.
.BR memfrob (3),
.BR string (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strftime.3 b/man3/strftime.3
index 880c089c8..3fe80d9d4 100644
--- a/man3/strftime.3
+++ b/man3/strftime.3
@@ -685,14 +685,20 @@ so that the above workaround is no longer required.
.BR "RFC\ 2822-compliant date format"
(with an English locale for %a and %b)
.PP
-.in +2n
+.in +4n
+.EX
"%a,\ %d\ %b\ %Y\ %T\ %z"
+.EE
+.in
.PP
.BR "RFC\ 822-compliant date format"
(with an English locale for %a and %b)
.PP
-.in +2n
+.in +4n
+.EX
"%a,\ %d\ %b\ %y\ %T\ %z"
+.EE
+.in
.SS Example program
The program below can be used to experiment with
.BR strftime ().
@@ -750,7 +756,7 @@ main(int argc, char *argv[])
.BR sprintf (3),
.BR strptime (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/string.3 b/man3/string.3
index 9d8c9f429..f814c0c05 100644
--- a/man3/string.3
+++ b/man3/string.3
@@ -231,7 +231,7 @@ See the individual man pages for descriptions of each function.
.BR strtok (3),
.BR strxfrm (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strlen.3 b/man3/strlen.3
index 4423cbfd7..012b17719 100644
--- a/man3/strlen.3
+++ b/man3/strlen.3
@@ -67,7 +67,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, C11, SVr4, 4.3BSD.
.BR wcslen (3),
.BR wcsnlen (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strnlen.3 b/man3/strnlen.3
index 8ea4ebadf..5a3cea3d9 100644
--- a/man3/strnlen.3
+++ b/man3/strnlen.3
@@ -20,10 +20,10 @@ strnlen \- determine the length of a fixed-size string
.BI "size_t strnlen(const char *" s ", size_t " maxlen );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR strnlen ():
.PD 0
@@ -85,7 +85,7 @@ POSIX.1-2008.
.SH SEE ALSO
.BR strlen (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strpbrk.3 b/man3/strpbrk.3
index 61ec1e7ea..074921d3a 100644
--- a/man3/strpbrk.3
+++ b/man3/strpbrk.3
@@ -79,7 +79,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
.BR strtok (3),
.BR wcspbrk (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strptime.3 b/man3/strptime.3
index 4b9e991e6..2b907a508 100644
--- a/man3/strptime.3
+++ b/man3/strptime.3
@@ -28,7 +28,7 @@
.\" Modified, aeb, 2001-08-31
.\" Modified, wharms 2001-11-12, remark on white space and example
.\"
-.TH STRPTIME 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH STRPTIME 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
strptime \- convert a string representation of time to a time tm structure
.SH SYNOPSIS
@@ -429,7 +429,7 @@ main(void)
struct tm tm;
char buf[255];
- memset(&tm, 0, sizeof(struct tm));
+ memset(&tm, 0, sizeof(tm));
strptime("2001\-11\-12 18:31:01", "%Y\-%m\-%d %H:%M:%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
@@ -443,7 +443,7 @@ main(void)
.BR setlocale (3),
.BR strftime (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strsep.3 b/man3/strsep.3
index b9455f1b8..091451f95 100644
--- a/man3/strsep.3
+++ b/man3/strsep.3
@@ -40,10 +40,10 @@ strsep \- extract token from string
.BI "char *strsep(char **" stringp ", const char *" delim );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR strsep ():
Since glibc 2.19:
@@ -122,7 +122,7 @@ The identity of the delimiting character is lost.
.BR strstr (3),
.BR strtok (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strsignal.3 b/man3/strsignal.3
index 19b320179..7ee02d0a2 100644
--- a/man3/strsignal.3
+++ b/man3/strsignal.3
@@ -1,4 +1,5 @@
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\" and Copyright (C) 2020 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
@@ -27,34 +28,49 @@
.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
.\" 386BSD man pages
.\" Modified Sat Jul 24 17:59:03 1993 by Rik Faith (faith@cs.unc.edu)
-.TH STRSIGNAL 3 2017-09-15 "GNU" "Linux Programmer's Manual"
+.TH STRSIGNAL 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
-strsignal \- return string describing signal
+strsignal, sigdescr_np, sigdescr_np, sys_siglist \- return string describing signal
.SH SYNOPSIS
.nf
.B #include <string.h>
.PP
.BI "char *strsignal(int " sig );
+.BI "char *sigdescr_np(int " sig );
+.BI "char *sigabbrev_np(int " sig );
.PP
.BI "extern const char * const " sys_siglist [];
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
-.BR strsignal ():
+.BR sigabbrev_np (),
+.BR sigdescr_np ():
.PD 0
.ad l
.RS 4
.TP 4
-Since glibc 2.10:
+_GNU_SOURCE
+.RE
+.BR strsignal ():
+.ad l
+.RS 4
+.TP 4
+From glibc 2.10 to 2.31:
_POSIX_C_SOURCE\ >=\ 200809L
.TP
Before glibc 2.10:
_GNU_SOURCE
.RE
+.br
+.IR sys_siglist :
+ Since glibc 2.19:
+ _DEFAULT_SOURCE
+ Glibc 2.19 and earlier:
+ _BSD_SOURCE
.ad
.PD
.SH DESCRIPTION
@@ -65,15 +81,38 @@ number passed in the argument
.IR sig .
The string can be used only until the next call to
.BR strsignal ().
+The string returned by
+.BR strsignal ()
+is localized according to the
+.B LC_MESSAGES
+category in the current locale.
.PP
-The array
+The
+.BR sigdescr_np ()
+function returns a string describing the signal
+number passed in the argument
+.IR sig .
+Unlike
+.BR strsignal ()
+this string is not influenced by the current locale.
+.PP
+The
+.BR sigabbrev_np ()
+function returns the abbreviated name of the signal,
+.IR sig .
+For example, given the value
+.BR SIGINT ,
+it returns the string "INT".
+.PP
+The (deprecated) array
.I sys_siglist
holds the signal description strings
indexed by signal number.
The
.BR strsignal ()
-function should be
-used if possible instead of this array.
+or the
+.BR sigdescr_np ()
+function should be used instead of this array; see also VERSIONS.
.SH RETURN VALUE
The
.BR strsignal ()
@@ -81,6 +120,26 @@ function returns the appropriate description
string, or an unknown signal message if the signal number is invalid.
On some systems (but not on Linux), NULL may instead be
returned for an invalid signal number.
+.PP
+The
+.BR sigdescr_np ()
+and
+.BR sigdabbrev_np ()
+functions return the appropriate description string.
+The returned string is statically allocated and valid for
+the lifetime of the program.
+These functions return NULL for an invalid signal number.
+.SH VERSIONS
+.BR sigdescr_np ()
+and
+.BR sigdabbrev_np ()
+first appeared in glibc 2.32.
+.PP
+Starting with version 2.32,
+.\" glibc commit b1ccfc061feee9ce616444ded8e1cd5acf9fa97f
+the
+.I sys_siglist
+symbol is no longer exported by glibc.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
@@ -92,16 +151,34 @@ Interface Attribute Value
T{
.BR strsignal ()
T} Thread safety MT-Unsafe race:strsignal locale
+T{
+.BR sigdescr_np (),
+.BR sigabbrev_np ()
+T} Thread safety MT-Safe
.TE
.sp 1
.SH CONFORMING TO
+.BR strsignal ():
POSIX.1-2008.
Present on Solaris and the BSDs.
+.PP
+.BR sigdescr_np ()
+and
+.BR sigdabbrev_np ()
+are GNU extensions.
+.PP
+.I sys_siglist
+is nonstandard, but present on many other systems.
+.SH NOTES
+.BR sigdescr_np ()
+and
+.BR sigdabbrev_np ()
+are thread-safe and async-signal-safe.
.SH SEE ALSO
.BR psignal (3),
.BR strerror (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strspn.3 b/man3/strspn.3
index 080aaf244..e61aaeca0 100644
--- a/man3/strspn.3
+++ b/man3/strspn.3
@@ -99,7 +99,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
.BR wcscspn (3),
.BR wcsspn (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strstr.3 b/man3/strstr.3
index 31ddd8dbf..c57ae9b49 100644
--- a/man3/strstr.3
+++ b/man3/strstr.3
@@ -98,7 +98,7 @@ function is a nonstandard extension.
.BR strtok (3),
.BR wcsstr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strtod.3 b/man3/strtod.3
index bf079b305..3bb588d2d 100644
--- a/man3/strtod.3
+++ b/man3/strtod.3
@@ -42,7 +42,7 @@
.\" (michael@cantor.informatik.rwth-aachen.de)
.\" Added strof, strtold, aeb, 2001-06-07
.\"
-.TH STRTOD 3 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH STRTOD 3 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
strtod, strtof, strtold \- convert ASCII string to floating-point number
.SH SYNOPSIS
@@ -54,10 +54,10 @@ strtod, strtof, strtold \- convert ASCII string to floating-point number
.br
.BI "long double strtold(const char *" nptr ", char **" endptr );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.ad l
.PP
.BR strtof (),
@@ -138,15 +138,23 @@ is stored in the location referenced by
.IR endptr .
.PP
If the correct value would cause overflow, plus or minus
-.B HUGE_VAL
-.RB ( HUGE_VALF ,
-.BR HUGE_VALL )
-is returned (according to the sign of the value), and
+.BR HUGE_VAL ,
+.BR HUGE_VALF ,
+or
+.B HUGE_VALL
+is returned (according to the return type and sign of the value),
+and
.B ERANGE
is stored in
.IR errno .
-If the correct value would cause underflow, zero is
-returned and
+.PP
+If the correct value would cause underflow,
+a value with magnitude no larger than
+.BR DBL_MIN ,
+.BR FLT_MIN ,
+or
+.B LDBL_MIN
+is returned and
.B ERANGE
is stored in
.IR errno .
@@ -213,7 +221,7 @@ the use of the functions described in this manual page is similar.
.BR strtol (3),
.BR strtoul (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strtoimax.3 b/man3/strtoimax.3
index 30959ce55..3ed3053e3 100644
--- a/man3/strtoimax.3
+++ b/man3/strtoimax.3
@@ -76,7 +76,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR strtoul (3),
.BR wcstoimax (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strtok.3 b/man3/strtok.3
index f52f211d8..2b1af5829 100644
--- a/man3/strtok.3
+++ b/man3/strtok.3
@@ -29,7 +29,7 @@
.\" 2005-11-17, mtk: Substantial parts rewritten
.\" 2013-05-19, mtk: added much further detail on the operation of strtok()
.\"
-.TH STRTOK 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH STRTOK 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
strtok, strtok_r \- extract tokens from strings
.SH SYNOPSIS
@@ -41,10 +41,10 @@ strtok, strtok_r \- extract tokens from strings
.BI "char *strtok_r(char *" str ", const char *" delim ", char **" saveptr );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR strtok_r ():
@@ -250,7 +250,6 @@ main(int argc, char *argv[])
{
char *str1, *str2, *token, *subtoken;
char *saveptr1, *saveptr2;
- int j;
if (argc != 4) {
fprintf(stderr, "Usage: %s string delim subdelim\en",
@@ -258,7 +257,7 @@ main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- for (j = 1, str1 = argv[1]; ; j++, str1 = NULL) {
+ for (int j = 1, str1 = argv[1]; ; j++, str1 = NULL) {
token = strtok_r(str1, argv[2], &saveptr1);
if (token == NULL)
break;
@@ -292,7 +291,7 @@ can be found in
.BR strstr (3),
.BR wcstok (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strtol.3 b/man3/strtol.3
index 2b1265d4c..a31ef87d6 100644
--- a/man3/strtol.3
+++ b/man3/strtol.3
@@ -1,4 +1,5 @@
.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\" and Copyright 2006 Michael Kerrisk <mtk.manpages@ganil.com>
.\"
.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
@@ -28,23 +29,23 @@
.\" 386BSD man pages
.\" Modified Sun Jul 25 10:53:39 1993 by Rik Faith (faith@cs.unc.edu)
.\" Added correction due to nsd@bbc.com (Nick Duffek) - aeb, 950610
-.TH STRTOL 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH STRTOL 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
strtol, strtoll, strtoq \- convert a string to a long integer
.SH SYNOPSIS
.nf
.B #include <stdlib.h>
.PP
-.BI "long int strtol(const char *" nptr ", char **" endptr ", int " base );
+.BI "long strtol(const char *" nptr ", char **" endptr ", int " base );
.PP
-.BI "long long int strtoll(const char *" nptr ", char **" endptr \
+.BI "long long strtoll(const char *" nptr ", char **" endptr \
", int " base );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR strtoll ():
@@ -77,7 +78,7 @@ is taken as 10 (decimal) unless the next character
is \(aq0\(aq, in which case it is taken as 8 (octal).
.PP
The remainder of the string is converted to a
-.I long int
+.I long
value
in the obvious manner, stopping at the first character which is not a
valid digit in the given base.
@@ -110,7 +111,9 @@ The
.BR strtoll ()
function works just like the
.BR strtol ()
-function but returns a long long integer value.
+function but returns a
+.I long long
+integer value.
.SH RETURN VALUE
The
.BR strtol ()
@@ -236,7 +239,7 @@ strtol() returned 123
strtol() returned 123
.RB "$" " ./a.out 123abc"
strtol() returned 123
-Further characters after number: abc
+Further characters after number: "abc"
.RB "$" " ./a.out 123abc 55"
strtol: Invalid argument
.RB "$" " ./a.out \(aq\(aq"
@@ -266,15 +269,14 @@ main(int argc, char *argv[])
}
str = argv[1];
- base = (argc > 2) ? atoi(argv[2]) : 10;
+ base = (argc > 2) ? atoi(argv[2]) : 0;
errno = 0; /* To distinguish success/failure after call */
val = strtol(str, &endptr, base);
/* Check for various possible errors */
- if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN))
- || (errno != 0 && val == 0)) {
+ if (errno != 0) {
perror("strtol");
exit(EXIT_FAILURE);
}
@@ -289,7 +291,7 @@ main(int argc, char *argv[])
printf("strtol() returned %ld\en", val);
if (*endptr != \(aq\e0\(aq) /* Not necessarily an error... */
- printf("Further characters after number: %s\en", endptr);
+ printf("Further characters after number: \e"%s\e"\en", endptr);
exit(EXIT_SUCCESS);
}
@@ -302,7 +304,7 @@ main(int argc, char *argv[])
.BR strtoimax (3),
.BR strtoul (3),
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strtoul.3 b/man3/strtoul.3
index a7ef22854..86799c6e7 100644
--- a/man3/strtoul.3
+++ b/man3/strtoul.3
@@ -30,24 +30,24 @@
.\" Fixed typo, aeb, 950823
.\" 2002-02-22, joey, mihtjel: Added strtoull()
.\"
-.TH STRTOUL 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH STRTOUL 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
strtoul, strtoull, strtouq \- convert a string to an unsigned long integer
.SH SYNOPSIS
.nf
.B #include <stdlib.h>
.PP
-.BI "unsigned long int strtoul(const char *" nptr ", char **" endptr \
+.BI "unsigned long strtoul(const char *" nptr ", char **" endptr \
", int " base );
.PP
-.BI "unsigned long long int strtoull(const char *" nptr ", char **" endptr ,
+.BI "unsigned long long strtoull(const char *" nptr ", char **" endptr ,
.BI " int " base );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR strtoull ():
@@ -63,7 +63,7 @@ function converts the initial part of the string
in
.I nptr
to an
-.I "unsigned long int"
+.I "unsigned long"
value according to the
given
.IR base ,
@@ -85,7 +85,7 @@ is taken as 10 (decimal) unless the next character
is \(aq0\(aq, in which case it is taken as 8 (octal).
.PP
The remainder of the string is converted to an
-.I "unsigned long int"
+.I "unsigned long"
value in the obvious manner,
stopping at the first character which is not a
valid digit in the given base.
@@ -119,7 +119,7 @@ The
function works just like the
.BR strtoul ()
function but returns an
-.I "unsigned long long int"
+.I "unsigned long long"
value.
.SH RETURN VALUE
The
@@ -215,7 +215,7 @@ or to
.PP
Negative values are considered valid input and are
silently converted to the equivalent
-.I "unsigned long int"
+.I "unsigned long"
value.
.SH EXAMPLES
See the example on the
@@ -231,7 +231,7 @@ the use of the functions described in this manual page is similar.
.BR strtol (3),
.BR strtoumax (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strverscmp.3 b/man3/strverscmp.3
index 65d19872a..dc7762b53 100644
--- a/man3/strverscmp.3
+++ b/man3/strverscmp.3
@@ -157,7 +157,7 @@ main(int argc, char *argv[])
.BR strcmp (3),
.BR strcoll (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/strxfrm.3 b/man3/strxfrm.3
index 34fd6aa11..b37ea3c97 100644
--- a/man3/strxfrm.3
+++ b/man3/strxfrm.3
@@ -96,7 +96,7 @@ POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD.
.BR strcoll (3),
.BR string (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/suseconds_t.3 b/man3/suseconds_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/suseconds_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/swab.3 b/man3/swab.3
index 7f6265781..1b1468277 100644
--- a/man3/swab.3
+++ b/man3/swab.3
@@ -86,7 +86,7 @@ POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
.SH SEE ALSO
.BR bstring (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sys_siglist.3 b/man3/sys_siglist.3
new file mode 100644
index 000000000..f64f75692
--- /dev/null
+++ b/man3/sys_siglist.3
@@ -0,0 +1 @@
+.so man3/strsignal.3
diff --git a/man3/sysconf.3 b/man3/sysconf.3
index 00b2a1787..f4d88de86 100644
--- a/man3/sysconf.3
+++ b/man3/sysconf.3
@@ -401,7 +401,7 @@ memory.
.BR pathconf (3),
.BR posixoptions (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/syslog.3 b/man3/syslog.3
index 9e7ae8de5..d020f5a24 100644
--- a/man3/syslog.3
+++ b/man3/syslog.3
@@ -48,10 +48,10 @@ closelog, openlog, syslog, vsyslog \- send messages to the system logger
.PP
.BI "void vsyslog(int " priority ", const char *" format ", va_list " ap );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR vsyslog ():
Since glibc 2.19:
@@ -363,7 +363,7 @@ syslog(priority, "%s", string);
.BR syslog.conf (5),
.BR syslogd (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/system.3 b/man3/system.3
index 3792458bb..e1ad74b11 100644
--- a/man3/system.3
+++ b/man3/system.3
@@ -260,7 +260,7 @@ from a privileged program.
.BR exec (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/sysv_signal.3 b/man3/sysv_signal.3
index bc831816c..ea3e2aa4a 100644
--- a/man3/sysv_signal.3
+++ b/man3/sysv_signal.3
@@ -102,7 +102,7 @@ feature test macro is defined.
.BR bsd_signal (3),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tailq.3 b/man3/tailq.3
new file mode 100644
index 000000000..d9bf4765f
--- /dev/null
+++ b/man3/tailq.3
@@ -0,0 +1,449 @@
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\" and Copyright (c) 2020 by Alejandro Colomar <colomar.6.4.3@gmail.com>
+.\"
+.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
+.\" Redistribution and use in source and binary forms, 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.
+.\" %%%LICENSE_END
+.\"
+.\"
+.TH TAILQ 3 2020-10-21 "GNU" "Linux Programmer's Manual"
+.SH NAME
+TAILQ_CONCAT,
+TAILQ_EMPTY,
+TAILQ_ENTRY,
+TAILQ_FIRST,
+TAILQ_FOREACH,
+.\"TAILQ_FOREACH_FROM,
+.\"TAILQ_FOREACH_FROM_SAFE,
+TAILQ_FOREACH_REVERSE,
+.\"TAILQ_FOREACH_REVERSE_FROM,
+.\"TAILQ_FOREACH_REVERSE_FROM_SAFE,
+.\"TAILQ_FOREACH_REVERSE_SAFE,
+.\"TAILQ_FOREACH_SAFE,
+TAILQ_HEAD,
+TAILQ_HEAD_INITIALIZER,
+TAILQ_INIT,
+TAILQ_INSERT_AFTER,
+TAILQ_INSERT_BEFORE,
+TAILQ_INSERT_HEAD,
+TAILQ_INSERT_TAIL,
+TAILQ_LAST,
+TAILQ_NEXT,
+TAILQ_PREV,
+TAILQ_REMOVE
+.\"TAILQ_SWAP
+\- implementation of a doubly linked tail queue
+.SH SYNOPSIS
+.nf
+.B #include <sys/queue.h>
+.PP
+.BI "void TAILQ_CONCAT(TAILQ_HEAD *" head1 ", TAILQ_HEAD *" head2 ","
+.BI " TAILQ_ENTRY " NAME ");"
+.PP
+.BI "int TAILQ_EMPTY(TAILQ_HEAD *" head ");"
+.PP
+.B TAILQ_ENTRY(TYPE);
+.PP
+.BI "struct TYPE *TAILQ_FIRST(TAILQ_HEAD *" head ");"
+.PP
+.BI "TAILQ_FOREACH(struct TYPE *" var ", TAILQ_HEAD *" head ", TAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "TAILQ_FOREACH_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", TAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "TAILQ_FOREACH_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head ", TAILQ_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.PP
+.BI "TAILQ_FOREACH_REVERSE(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME,"
+.BI " TAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "TAILQ_FOREACH_REVERSE_FROM(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME, TAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "TAILQ_FOREACH_REVERSE_FROM_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME, TAILQ_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.\" .PP
+.\" .BI "TAILQ_FOREACH_REVERSE_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head ", HEADNAME, TAILQ_ENTRY " NAME ", TYPE *" temp_var ");"
+.\" .PP
+.\" .BI "TAILQ_FOREACH_SAFE(struct TYPE *" var ", TAILQ_HEAD *" head ", TAILQ_ENTRY " NAME ", struct TYPE *" temp_var ");"
+.PP
+.B TAILQ_HEAD(HEADNAME, TYPE);
+.PP
+.BI "TAILQ_HEAD TAILQ_HEAD_INITIALIZER(TAILQ_HEAD " head ");"
+.PP
+.BI "void TAILQ_INIT(TAILQ_HEAD *" head ");"
+.PP
+.BI "void TAILQ_INSERT_AFTER(TAILQ_HEAD *" head ", struct TYPE *" listelm ","
+.BI " struct TYPE *" elm ", TAILQ_ENTRY " NAME ");"
+.PP
+.BI "void TAILQ_INSERT_BEFORE(struct TYPE *" listelm ", struct TYPE *" elm ","
+.BI " TAILQ_ENTRY " NAME ");"
+.PP
+.BI "void TAILQ_INSERT_HEAD(TAILQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " TAILQ_ENTRY " NAME ");"
+.PP
+.BI "void TAILQ_INSERT_TAIL(TAILQ_HEAD *" head ", struct TYPE *" elm ","
+.BI " TAILQ_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *TAILQ_LAST(TAILQ_HEAD *" head ", HEADNAME);"
+.PP
+.BI "struct TYPE *TAILQ_NEXT(struct TYPE *" elm ", TAILQ_ENTRY " NAME ");"
+.PP
+.BI "struct TYPE *TAILQ_PREV(struct TYPE *" elm ", HEADNAME, TAILQ_ENTRY " NAME ");"
+.PP
+.BI "void TAILQ_REMOVE(TAILQ_HEAD *" head ", struct TYPE *" elm ", TAILQ_ENTRY " NAME ");"
+.\" .PP
+.\" .BI "void TAILQ_SWAP(TAILQ_HEAD *" head1 ", TAILQ_HEAD *" head2 ", TYPE, TAILQ_ENTRY " NAME ");"
+.SH DESCRIPTION
+These macros define and operate on doubly linked tail queues.
+.PP
+In the macro definitions,
+.I TYPE
+is the name of a user defined structure,
+that must contain a field of type
+.IR TAILQ_ENTRY ,
+named
+.IR NAME .
+The argument
+.I HEADNAME
+is the name of a user defined structure that must be declared
+using the macro
+.BR TAILQ_HEAD ().
+.PP
+A tail queue is headed by a structure defined by the
+.BR TAILQ_HEAD ()
+macro.
+This structure contains a pair of pointers,
+one to the first element in the tail queue and the other to
+the last element in the tail queue.
+The elements are doubly linked so that an arbitrary element can be
+removed without traversing the tail queue.
+New elements can be added to the tail queue after an existing element,
+before an existing element, at the head of the tail queue,
+or at the end of the tail queue.
+A
+.I TAILQ_HEAD
+structure is declared as follows:
+.PP
+.in +4
+.EX
+TAILQ_HEAD(HEADNAME, TYPE) head;
+.EE
+.in
+.PP
+where
+.I struct HEADNAME
+is the structure to be defined, and
+.I struct TYPE
+is the type of the elements to be linked into the tail queue.
+A pointer to the head of the tail queue can later be declared as:
+.PP
+.in +4
+.EX
+struct HEADNAME *headp;
+.EE
+.in
+.PP
+(The names
+.I head
+and
+.I headp
+are user selectable.)
+.PP
+The macro
+.BR TAILQ_HEAD_INITIALIZER ()
+evaluates to an initializer for the tail queue
+.IR head .
+.PP
+The macro
+.BR TAILQ_CONCAT ()
+concatenates the tail queue headed by
+.I head2
+onto the end of the one headed by
+.I head1
+removing all entries from the former.
+.PP
+The macro
+.BR TAILQ_EMPTY ()
+evaluates to true if there are no items on the tail queue.
+.PP
+The macro
+.BR TAILQ_ENTRY ()
+declares a structure that connects the elements in
+the tail queue.
+.PP
+The macro
+.BR TAILQ_FIRST ()
+returns the first item on the tail queue or NULL if the tail queue
+is empty.
+.PP
+The macro
+.BR TAILQ_FOREACH ()
+traverses the tail queue referenced by
+.I head
+in the forward direction, assigning each element in turn to
+.IR var .
+.I var
+is set to NULL if the loop completes normally,
+or if there were no elements.
+.\" .PP
+.\" The macro
+.\" .BR TAILQ_FOREACH_FROM ()
+.\" behaves identically to
+.\" .BR TAILQ_FOREACH ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found TAILQ element and begins the loop at
+.\" .I var
+.\" instead of the first element in the TAILQ referenced by
+.\" .IR head .
+.PP
+The macro
+.BR TAILQ_FOREACH_REVERSE ()
+traverses the tail queue referenced by
+.I head
+in the reverse direction, assigning each element in turn to
+.IR var .
+.\" .PP
+.\" The macro
+.\" .BR TAILQ_FOREACH_REVERSE_FROM ()
+.\" behaves identically to
+.\" .BR TAILQ_FOREACH_REVERSE ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found TAILQ element and begins the reverse loop at
+.\" .I var
+.\" instead of the last element in the TAILQ referenced by
+.\" .IR head .
+.\" .PP
+.\" The macros
+.\" .BR TAILQ_FOREACH_SAFE ()
+.\" and
+.\" .BR TAILQ_FOREACH_REVERSE_SAFE ()
+.\" traverse the list referenced by
+.\" .I head
+.\" in the forward or reverse direction respectively,
+.\" assigning each element in turn to
+.\" .IR var .
+.\" However, unlike their unsafe counterparts,
+.\" .BR TAILQ_FOREACH ()
+.\" and
+.\" .BR TAILQ_FOREACH_REVERSE ()
+.\" permit to both remove
+.\" .I var
+.\" as well as free it from within the loop safely without interfering with the
+.\" traversal.
+.\" .PP
+.\" The macro
+.\" .BR TAILQ_FOREACH_FROM_SAFE ()
+.\" behaves identically to
+.\" .BR TAILQ_FOREACH_SAFE ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found TAILQ element and begins the loop at
+.\" .I var
+.\" instead of the first element in the TAILQ referenced by
+.\" .IR head .
+.\" .PP
+.\" The macro
+.\" .BR TAILQ_FOREACH_REVERSE_FROM_SAFE ()
+.\" behaves identically to
+.\" .BR TAILQ_FOREACH_REVERSE_SAFE ()
+.\" when
+.\" .I var
+.\" is NULL, else it treats
+.\" .I var
+.\" as a previously found TAILQ element and begins the reverse loop at
+.\" .I var
+.\" instead of the last element in the TAILQ referenced by
+.\" .IR head .
+.PP
+The macro
+.BR TAILQ_INIT ()
+initializes the tail queue referenced by
+.IR head .
+.PP
+The macro
+.BR TAILQ_INSERT_HEAD ()
+inserts the new element
+.I elm
+at the head of the tail queue.
+.PP
+The macro
+.BR TAILQ_INSERT_TAIL ()
+inserts the new element
+.I elm
+at the end of the tail queue.
+.PP
+The macro
+.BR TAILQ_INSERT_AFTER ()
+inserts the new element
+.I elm
+after the element
+.IR listelm .
+.PP
+The macro
+.BR TAILQ_INSERT_BEFORE ()
+inserts the new element
+.I elm
+before the element
+.IR listelm .
+.PP
+The macro
+.BR TAILQ_LAST ()
+returns the last item on the tail queue.
+If the tail queue is empty the return value is NULL.
+.PP
+The macro
+.BR TAILQ_NEXT ()
+returns the next item on the tail queue, or NULL if this item is the last.
+.PP
+The macro
+.BR TAILQ_PREV ()
+returns the previous item on the tail queue, or NULL if this item
+is the first.
+.PP
+The macro
+.BR TAILQ_REMOVE ()
+removes the element
+.I elm
+from the tail queue.
+.\" .PP
+.\" The macro
+.\" .BR TAILQ_SWAP ()
+.\" swaps the contents of
+.\" .I head1
+.\" and
+.\" .IR head2 .
+.SH RETURN VALUE
+.BR TAILQ_EMPTY ()
+returns nonzero if the queue is empty,
+and zero if the queue contains at least one entry.
+.PP
+.BR TAILQ_FIRST (),
+.BR TAILQ_LAST (),
+.BR TAILQ_NEXT (),
+and
+.BR TAILQ_PREV ()
+return a pointer to the first, last, next or previous
+.I TYPE
+structure, respectively.
+.PP
+.BR TAILQ_HEAD_INITIALIZER ()
+returns an initializer that can be assigned to the queue
+.IR head .
+.SH CONFORMING TO
+Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008.
+Present on the BSDs.
+(TAILQ functions first appeared in 4.4BSD).
+.SH BUGS
+The macros
+.BR TAILQ_FOREACH ()
+and
+.BR TAILQ_FOREACH_REVERSE ()
+don't allow
+.I var
+to be removed or freed within the loop,
+as it would interfere with the traversal.
+The macros
+.BR TAILQ_FOREACH_SAFE ()
+and
+.BR TAILQ_FOREACH_REVERSE_SAFE (),
+which are present on the BSDs but are not present in glibc,
+fix this limitation by allowing
+.I var
+to safely be removed from the list and freed from within the loop
+without interfering with the traversal.
+.SH EXAMPLES
+.EX
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/queue.h>
+
+struct entry {
+ int data;
+ TAILQ_ENTRY(entry) entries; /* Tail queue. */
+};
+
+TAILQ_HEAD(tailhead, entry);
+
+int
+main(void)
+{
+ struct entry *n1, *n2, *n3, *np;
+ struct tailhead head; /* Tail queue head. */
+ int i;
+
+ TAILQ_INIT(&head); /* Initialize the queue. */
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the head. */
+ TAILQ_INSERT_HEAD(&head, n1, entries);
+
+ n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */
+ TAILQ_INSERT_TAIL(&head, n1, entries);
+
+ n2 = malloc(sizeof(struct entry)); /* Insert after. */
+ TAILQ_INSERT_AFTER(&head, n1, n2, entries);
+
+ n3 = malloc(sizeof(struct entry)); /* Insert before. */
+ TAILQ_INSERT_BEFORE(n2, n3, entries);
+
+ TAILQ_REMOVE(&head, n2, entries); /* Deletion. */
+ free(n2);
+ /* Forward traversal. */
+ i = 0;
+ TAILQ_FOREACH(np, &head, entries)
+ np->data = i++;
+ /* Reverse traversal. */
+ TAILQ_FOREACH_REVERSE(np, &head, tailhead, entries)
+ printf("%i\en", np->data);
+ /* TailQ Deletion. */
+ n1 = TAILQ_FIRST(&head);
+ while (n1 != NULL) {
+ n2 = TAILQ_NEXT(n1, entries);
+ free(n1);
+ n1 = n2;
+ }
+ TAILQ_INIT(&head);
+
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
+.BR insque (3),
+.BR queue (7)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man3/tan.3 b/man3/tan.3
index bfc28caec..970dd8249 100644
--- a/man3/tan.3
+++ b/man3/tan.3
@@ -46,10 +46,10 @@ tan, tanf, tanl \- tangent function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR tanf (),
@@ -161,7 +161,7 @@ when a domain error occurred.
.BR ctan (3),
.BR sin (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tanh.3 b/man3/tanh.3
index 45d20797d..fa57b3d81 100644
--- a/man3/tanh.3
+++ b/man3/tanh.3
@@ -46,10 +46,10 @@ tanh, tanhf, tanhl \- hyperbolic tangent function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR tanhf (),
@@ -120,7 +120,7 @@ SVr4, 4.3BSD, C89.
.BR ctanh (3),
.BR sinh (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tcgetpgrp.3 b/man3/tcgetpgrp.3
index 2f945d7c9..46c793492 100644
--- a/man3/tcgetpgrp.3
+++ b/man3/tcgetpgrp.3
@@ -135,7 +135,7 @@ The functions are POSIX inventions.
.BR setsid (2),
.BR credentials (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tcgetsid.3 b/man3/tcgetsid.3
index 64d6260e4..3d29c7181 100644
--- a/man3/tcgetsid.3
+++ b/man3/tcgetsid.3
@@ -85,7 +85,7 @@ since Linux 2.1.71.
.SH SEE ALSO
.BR getsid (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/telldir.3 b/man3/telldir.3
index ed4575134..daab3f49d 100644
--- a/man3/telldir.3
+++ b/man3/telldir.3
@@ -37,10 +37,10 @@ telldir \- return current location in directory stream
.BI "long telldir(DIR *" dirp );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR telldir ():
_XOPEN_SOURCE
@@ -109,7 +109,7 @@ assumptions about its contents.
.BR scandir (3),
.BR seekdir (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tempnam.3 b/man3/tempnam.3
index 55c857c52..6e5495354 100644
--- a/man3/tempnam.3
+++ b/man3/tempnam.3
@@ -32,10 +32,10 @@ tempnam \- create a name for a temporary file
.BI "char *tempnam(const char *" dir ", const char *" pfx );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR tempnam ():
Since glibc 2.19:
@@ -186,7 +186,7 @@ it is unspecified how accessibility of a directory is determined.
.BR tmpfile (3),
.BR tmpnam (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/termios.3 b/man3/termios.3
index fc88696df..ee6008481 100644
--- a/man3/termios.3
+++ b/man3/termios.3
@@ -73,10 +73,10 @@ get and set terminal attributes, line control, get and set baud rate
.BI "int cfsetspeed(struct termios *" termios_p ", speed_t " speed );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR cfsetspeed (),
.BR cfmakeraw ():
@@ -1107,7 +1107,7 @@ mask).
.BR ioctl_tty (2),
.BR setserial (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tgamma.3 b/man3/tgamma.3
index 2e0d10a69..be4cfc770 100644
--- a/man3/tgamma.3
+++ b/man3/tgamma.3
@@ -24,10 +24,10 @@ tgamma, tgammaf, tgammal \- true gamma function
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR tgamma (),
@@ -216,7 +216,7 @@ exception raised), rather than a pole error.
.BR gamma (3),
.BR lgamma (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/time_t.3 b/man3/time_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/time_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/timegm.3 b/man3/timegm.3
index 92d92b85b..80db49486 100644
--- a/man3/timegm.3
+++ b/man3/timegm.3
@@ -34,10 +34,10 @@ timegm, timelocal \- inverses of gmtime and localtime
.BI "time_t timegm(struct tm *" tm );
.PP
.fi
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR timelocal (),
.BR timegm ():
@@ -104,7 +104,7 @@ There is no reason to ever use it.
.BR mktime (3),
.BR tzset (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/timer_t.3 b/man3/timer_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/timer_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/timeradd.3 b/man3/timeradd.3
index 1200760c9..ecf201b95 100644
--- a/man3/timeradd.3
+++ b/man3/timeradd.3
@@ -44,10 +44,10 @@ timeradd, timersub, timercmp, timerclear, timerisset \- timeval operations
.BI "int timercmp(struct timeval *" a ", struct timeval *" b ", " CMP );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
All functions shown above:
Since glibc 2.19:
@@ -154,7 +154,7 @@ Present on most BSD derivatives.
.BR gettimeofday (2),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/timespec.3 b/man3/timespec.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/timespec.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/timeval.3 b/man3/timeval.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/timeval.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/tmpfile.3 b/man3/tmpfile.3
index 7ce9e079e..d63ac71c9 100644
--- a/man3/tmpfile.3
+++ b/man3/tmpfile.3
@@ -114,7 +114,7 @@ and if that fails the directory
.BR tempnam (3),
.BR tmpnam (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tmpnam.3 b/man3/tmpnam.3
index 3dae2073b..576ec576a 100644
--- a/man3/tmpnam.3
+++ b/man3/tmpnam.3
@@ -35,10 +35,10 @@ tmpnam, tmpnam_r \- create a name for a temporary file
.BI "char *tmpnam_r(char *" s );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR tmpnam_r ()
.PD 0
@@ -181,7 +181,7 @@ instead.
.BR tempnam (3),
.BR tmpfile (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/toascii.3 b/man3/toascii.3
index fe9a90d2f..61398fd75 100644
--- a/man3/toascii.3
+++ b/man3/toascii.3
@@ -34,10 +34,10 @@ toascii \- convert character to ASCII
.BI "int toascii(int " "c" );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR toascii ():
_XOPEN_SOURCE
@@ -79,7 +79,7 @@ This function will convert accented letters into random characters.
.BR tolower (3),
.BR toupper (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/toupper.3 b/man3/toupper.3
index a7ce82d5d..88679822f 100644
--- a/man3/toupper.3
+++ b/man3/toupper.3
@@ -39,10 +39,10 @@ toupper, tolower, toupper_l, tolower_l \- convert uppercase or lowercase
.BI "int tolower_l(int " c ", locale_t " locale );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR toupper_l (),
.BR tolower_l ():
@@ -189,7 +189,7 @@ the German sharp s is one example.
.BR uselocale (3),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/towctrans.3 b/man3/towctrans.3
index 9a9094a96..174a4288e 100644
--- a/man3/towctrans.3
+++ b/man3/towctrans.3
@@ -78,7 +78,7 @@ current locale.
.BR towupper (3),
.BR wctrans (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/towlower.3 b/man3/towlower.3
index 1a5ee8e29..072a7b9c0 100644
--- a/man3/towlower.3
+++ b/man3/towlower.3
@@ -26,10 +26,10 @@ towlower, towlower_l \- convert a wide character to lowercase
.BI "wint_t towlower_l(wint_t " wc ", locale_t " locale );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR towlower_l ():
.PD 0
@@ -127,7 +127,7 @@ because Unicode knows about three cases: upper, lower and title case.
.BR towupper (3),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/towupper.3 b/man3/towupper.3
index a2b5c2091..834c3c3ea 100644
--- a/man3/towupper.3
+++ b/man3/towupper.3
@@ -26,10 +26,10 @@ towupper, towupper_l \- convert a wide character to uppercase
.BI "wint_t towupper_l(wint_t " wc ", locale_t " locale );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR towupper_l ():
.PD 0
@@ -127,7 +127,7 @@ because Unicode knows about three cases: upper, lower and title case.
.BR towlower (3),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/trunc.3 b/man3/trunc.3
index 930b49b31..8fe1438da 100644
--- a/man3/trunc.3
+++ b/man3/trunc.3
@@ -36,10 +36,10 @@ trunc, truncf, truncl \- round to integer, toward zero
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR trunc (),
@@ -99,7 +99,7 @@ before assigning it to an integer type.
.BR rint (3),
.BR round (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tsearch.3 b/man3/tsearch.3
index 515e1b58a..45a3ecc43 100644
--- a/man3/tsearch.3
+++ b/man3/tsearch.3
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH TSEARCH 3 2020-06-09 "GNU" "Linux Programmer's Manual"
+.TH TSEARCH 3 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
tsearch, tfind, tdelete, twalk, tdestroy \- manage a binary search tree
.SH SYNOPSIS
@@ -271,6 +271,7 @@ in order.
.EX
#define _GNU_SOURCE /* Expose declaration of tdestroy() */
#include <search.h>
+#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
@@ -278,7 +279,7 @@ in order.
static void *root = NULL;
static void *
-xmalloc(unsigned n)
+xmalloc(size_t n)
{
void *p;
p = malloc(n);
@@ -322,17 +323,16 @@ action(const void *nodep, VISIT which, int depth)
int
main(void)
{
- int i, *ptr;
- void *val;
+ int **val;
srand(time(NULL));
- for (i = 0; i < 12; i++) {
- ptr = xmalloc(sizeof(int));
+ for (int i = 0; i < 12; i++) {
+ int *ptr = xmalloc(sizeof(*ptr));
*ptr = rand() & 0xff;
- val = tsearch((void *) ptr, &root, compare);
+ val = tsearch(ptr, &root, compare);
if (val == NULL)
exit(EXIT_FAILURE);
- else if ((*(int **) val) != ptr)
+ else if (*val != ptr)
free(ptr);
}
twalk(root, action);
@@ -346,7 +346,7 @@ main(void)
.BR lsearch (3),
.BR qsort (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ttyname.3 b/man3/ttyname.3
index 6a84966cd..83118cb4e 100644
--- a/man3/ttyname.3
+++ b/man3/ttyname.3
@@ -120,7 +120,7 @@ to
.BR isatty (3),
.BR pts (4)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ttyslot.3 b/man3/ttyslot.3
index 5e2c8de79..3709494d5 100644
--- a/man3/ttyslot.3
+++ b/man3/ttyslot.3
@@ -33,10 +33,10 @@ ttyslot \- find the slot of the current user's terminal in some file
.PP
.B "int ttyslot(void);"
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR ttyslot ():
@@ -184,7 +184,7 @@ Minix also has
.BR ttyname (3),
.BR utmp (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/tzset.3 b/man3/tzset.3
index 3c3ac903a..3d863b2e2 100644
--- a/man3/tzset.3
+++ b/man3/tzset.3
@@ -44,10 +44,10 @@ tzset, tzname, timezone, daylight \- initialize time conversion information
.BI "extern int " daylight ;
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR tzset ():
_POSIX_C_SOURCE
@@ -249,7 +249,7 @@ otherwise the daylight saving time version.
.BR getenv (3),
.BR tzfile (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ualarm.3 b/man3/ualarm.3
index e6ab36ab2..b96ada0d8 100644
--- a/man3/ualarm.3
+++ b/man3/ualarm.3
@@ -31,10 +31,10 @@ ualarm \- schedule signal after given number of microseconds
.BI "useconds_t ualarm(useconds_t " usecs ", useconds_t " interval );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR ualarm ():
.ad l
@@ -160,7 +160,7 @@ instead.
.BR usleep (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/uid_t.3 b/man3/uid_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uid_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/uint16_t.3 b/man3/uint16_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uint16_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/uint32_t.3 b/man3/uint32_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uint32_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/uint64_t.3 b/man3/uint64_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uint64_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/uint8_t.3 b/man3/uint8_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uint8_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/uintN_t.3 b/man3/uintN_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uintN_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/uintmax_t.3 b/man3/uintmax_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uintmax_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/uintptr_t.3 b/man3/uintptr_t.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/uintptr_t.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/ulimit.3 b/man3/ulimit.3
index 3c1efce92..e92d46bf7 100644
--- a/man3/ulimit.3
+++ b/man3/ulimit.3
@@ -99,7 +99,7 @@ as obsolete.
.BR setrlimit (2),
.BR sysconf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/undocumented.3 b/man3/undocumented.3
index 35c67ff19..0d95e70c0 100644
--- a/man3/undocumented.3
+++ b/man3/undocumented.3
@@ -176,7 +176,7 @@ for inclusion in the next man page release.
.BR yp_unbind (3),
.BR yp_update (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/ungetwc.3 b/man3/ungetwc.3
index 45f587dc5..2d4d9a832 100644
--- a/man3/ungetwc.3
+++ b/man3/ungetwc.3
@@ -98,7 +98,7 @@ current locale.
.SH SEE ALSO
.BR fgetwc (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/unlocked_stdio.3 b/man3/unlocked_stdio.3
index 0b2ebdd50..a6e30236c 100644
--- a/man3/unlocked_stdio.3
+++ b/man3/unlocked_stdio.3
@@ -62,11 +62,11 @@ putchar_unlocked \- nonlocking stdio functions
.BI "int fputws_unlocked(const wchar_t *" ws ", FILE *" stream );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.ad l
-.in
+.RE
.PP
.BR getc_unlocked (),
.BR getchar_unlocked (),
@@ -181,7 +181,7 @@ They should probably not be used.
.BR flockfile (3),
.BR stdio (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/unlockpt.3 b/man3/unlockpt.3
index 8f87fd3cf..9cf90d02c 100644
--- a/man3/unlockpt.3
+++ b/man3/unlockpt.3
@@ -12,10 +12,10 @@ unlockpt \- unlock a pseudoterminal master/slave pair
.PP
.BI "int unlockpt(int " fd ");"
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR unlockpt ():
@@ -80,7 +80,7 @@ POSIX.1-2001, POSIX.1-2008.
.BR pts (4),
.BR pty (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/updwtmp.3 b/man3/updwtmp.3
index b440c919c..61d0a1300 100644
--- a/man3/updwtmp.3
+++ b/man3/updwtmp.3
@@ -97,7 +97,7 @@ structure as its last argument.
.BR getutxent (3),
.BR wtmp (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/uselocale.3 b/man3/uselocale.3
index 9dcf9aa43..3b12735e1 100644
--- a/man3/uselocale.3
+++ b/man3/uselocale.3
@@ -32,10 +32,10 @@ uselocale \- set/get the locale for the calling thread
.BI "locale_t uselocale(locale_t " newloc );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR uselocale ():
.PD 0
@@ -123,7 +123,7 @@ and
.BR locale (5),
.BR locale (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/usleep.3 b/man3/usleep.3
index 0635acaff..626538c8f 100644
--- a/man3/usleep.3
+++ b/man3/usleep.3
@@ -40,10 +40,10 @@ usleep \- suspend execution for microsecond intervals
.BI "int usleep(useconds_t " usec );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR usleep ():
.ad l
@@ -160,7 +160,7 @@ is unspecified.
.BR ualarm (3),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/va_list.3 b/man3/va_list.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/va_list.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/void.3 b/man3/void.3
new file mode 100644
index 000000000..db50c0f09
--- /dev/null
+++ b/man3/void.3
@@ -0,0 +1 @@
+.so man7/system_data_types.7
diff --git a/man3/wcpcpy.3 b/man3/wcpcpy.3
index 05bf48611..f23799227 100644
--- a/man3/wcpcpy.3
+++ b/man3/wcpcpy.3
@@ -22,10 +22,10 @@ wcpcpy \- copy a wide-character string, returning a pointer to its end
.BI "wchar_t *wcpcpy(wchar_t *" dest ", const wchar_t *" src );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wcpcpy ():
.PD 0
@@ -82,7 +82,7 @@ POSIX.1-2008.
.BR strcpy (3),
.BR wcscpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcpncpy.3 b/man3/wcpncpy.3
index fa9b19b6c..f3d199288 100644
--- a/man3/wcpncpy.3
+++ b/man3/wcpncpy.3
@@ -23,10 +23,10 @@ returning a pointer to its end
.BI "wchar_t *wcpncpy(wchar_t *" dest ", const wchar_t *" src ", size_t " n );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wcpncpy ():
.PD 0
@@ -108,7 +108,7 @@ POSIX.1-2008.
.BR stpncpy (3),
.BR wcsncpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcrtomb.3 b/man3/wcrtomb.3
index 78e471a74..119fe2ed3 100644
--- a/man3/wcrtomb.3
+++ b/man3/wcrtomb.3
@@ -136,7 +136,7 @@ is not multithread safe.
.BR mbsinit (3),
.BR wcsrtombs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcscasecmp.3 b/man3/wcscasecmp.3
index 46885fab8..65655ac28 100644
--- a/man3/wcscasecmp.3
+++ b/man3/wcscasecmp.3
@@ -22,10 +22,10 @@ wcscasecmp \- compare two wide-character strings, ignoring case
.BI "int wcscasecmp(const wchar_t *" s1 ", const wchar_t *" s2 );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wcscasecmp ():
.PD 0
@@ -107,7 +107,7 @@ current locale.
.BR strcasecmp (3),
.BR wcscmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcscat.3 b/man3/wcscat.3
index 856fa34f8..78a602637 100644
--- a/man3/wcscat.3
+++ b/man3/wcscat.3
@@ -65,7 +65,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcscpy (3),
.BR wcsncat (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcschr.3 b/man3/wcschr.3
index 3c25d444a..05c47941a 100644
--- a/man3/wcschr.3
+++ b/man3/wcschr.3
@@ -65,7 +65,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcsstr (3),
.BR wmemchr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcscmp.3 b/man3/wcscmp.3
index 1388e91f6..a85bef53f 100644
--- a/man3/wcscmp.3
+++ b/man3/wcscmp.3
@@ -75,7 +75,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcscasecmp (3),
.BR wmemcmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcscpy.3 b/man3/wcscpy.3
index 55ccd10b6..2b5fecea2 100644
--- a/man3/wcscpy.3
+++ b/man3/wcscpy.3
@@ -67,7 +67,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcsdup (3),
.BR wmemcpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcscspn.3 b/man3/wcscspn.3
index e1cfdc6a0..ede6e0ffa 100644
--- a/man3/wcscspn.3
+++ b/man3/wcscspn.3
@@ -77,7 +77,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcspbrk (3),
.BR wcsspn (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsdup.3 b/man3/wcsdup.3
index d7a19f8da..dac76a426 100644
--- a/man3/wcsdup.3
+++ b/man3/wcsdup.3
@@ -22,10 +22,10 @@ wcsdup \- duplicate a wide-character string
.BI "wchar_t *wcsdup(const wchar_t *" s );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wcsdup ():
.PD 0
@@ -89,7 +89,7 @@ and is not widely available on other systems.
.BR strdup (3),
.BR wcscpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcslen.3 b/man3/wcslen.3
index 83603da29..4966cf391 100644
--- a/man3/wcslen.3
+++ b/man3/wcslen.3
@@ -56,7 +56,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.SH SEE ALSO
.BR strlen (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsncasecmp.3 b/man3/wcsncasecmp.3
index 17cb63326..bfb75a78b 100644
--- a/man3/wcsncasecmp.3
+++ b/man3/wcsncasecmp.3
@@ -22,10 +22,10 @@ wcsncasecmp \- compare two fixed-size wide-character strings, ignoring case
.BI "int wcsncasecmp(const wchar_t *" s1 ", const wchar_t *" s2 ", size_t " n );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wcsncasecmp ():
.PD 0
@@ -112,7 +112,7 @@ current locale.
.BR strncasecmp (3),
.BR wcsncmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsncat.3 b/man3/wcsncat.3
index 9902a2db1..35acf4ae8 100644
--- a/man3/wcsncat.3
+++ b/man3/wcsncat.3
@@ -66,7 +66,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR strncat (3),
.BR wcscat (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsncmp.3 b/man3/wcsncmp.3
index 34b04b6c4..06440ffad 100644
--- a/man3/wcsncmp.3
+++ b/man3/wcsncmp.3
@@ -88,7 +88,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR strncmp (3),
.BR wcsncasecmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsncpy.3 b/man3/wcsncpy.3
index 3bd9f434d..6362457f8 100644
--- a/man3/wcsncpy.3
+++ b/man3/wcsncpy.3
@@ -83,7 +83,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.SH SEE ALSO
.BR strncpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsnlen.3 b/man3/wcsnlen.3
index 19449f38b..3ae96e634 100644
--- a/man3/wcsnlen.3
+++ b/man3/wcsnlen.3
@@ -22,10 +22,10 @@ wcsnlen \- determine the length of a fixed-size wide-character string
.BI "size_t wcsnlen(const wchar_t *" s ", size_t " maxlen );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wcsnlen ():
.PD 0
@@ -97,7 +97,7 @@ POSIX.1-2008.
.BR strnlen (3),
.BR wcslen (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsnrtombs.3 b/man3/wcsnrtombs.3
index 844331836..e6739dbb4 100644
--- a/man3/wcsnrtombs.3
+++ b/man3/wcsnrtombs.3
@@ -23,10 +23,10 @@ wcsnrtombs \- convert a wide-character string to a multibyte string
.BI " size_t " len ", mbstate_t *" ps );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wcsnrtombs ():
.PD 0
@@ -188,7 +188,7 @@ is not multithread safe.
.BR mbsinit (3),
.BR wcsrtombs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcspbrk.3 b/man3/wcspbrk.3
index 1ead07aad..efd50dd52 100644
--- a/man3/wcspbrk.3
+++ b/man3/wcspbrk.3
@@ -65,7 +65,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcschr (3),
.BR wcscspn (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsrchr.3 b/man3/wcsrchr.3
index 8488d04a3..830a459c4 100644
--- a/man3/wcsrchr.3
+++ b/man3/wcsrchr.3
@@ -62,7 +62,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR strrchr (3),
.BR wcschr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsrtombs.3 b/man3/wcsrtombs.3
index ea2bf0a31..c0b7619c9 100644
--- a/man3/wcsrtombs.3
+++ b/man3/wcsrtombs.3
@@ -156,7 +156,7 @@ is not multithread safe.
.BR wcsnrtombs (3),
.BR wcstombs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsspn.3 b/man3/wcsspn.3
index a618d35f6..f46778f11 100644
--- a/man3/wcsspn.3
+++ b/man3/wcsspn.3
@@ -75,7 +75,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR strspn (3),
.BR wcscspn (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcsstr.3 b/man3/wcsstr.3
index 440a783fd..ad3a25ccb 100644
--- a/man3/wcsstr.3
+++ b/man3/wcsstr.3
@@ -71,7 +71,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR strstr (3),
.BR wcschr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcstoimax.3 b/man3/wcstoimax.3
index ae50f63e5..7cc82e217 100644
--- a/man3/wcstoimax.3
+++ b/man3/wcstoimax.3
@@ -68,7 +68,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wcstol (3),
.BR wcstoul (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcstok.3 b/man3/wcstok.3
index 5ae7ff713..2f28b525b 100644
--- a/man3/wcstok.3
+++ b/man3/wcstok.3
@@ -112,7 +112,7 @@ for (token = wcstok(wcs, " \et\en", &state);
.BR strtok (3),
.BR wcschr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcstombs.3 b/man3/wcstombs.3
index ccb397fb6..975f0afc2 100644
--- a/man3/wcstombs.3
+++ b/man3/wcstombs.3
@@ -120,7 +120,7 @@ provides a better interface to the same functionality.
.BR wcsrtombs (3),
.BR wctomb (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcswidth.3 b/man3/wcswidth.3
index f7fd24bc2..ce86674e8 100644
--- a/man3/wcswidth.3
+++ b/man3/wcswidth.3
@@ -69,7 +69,7 @@ current locale.
.BR iswprint (3),
.BR wcwidth (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wctob.3 b/man3/wctob.3
index 56acd11cf..8ef0e4066 100644
--- a/man3/wctob.3
+++ b/man3/wctob.3
@@ -83,7 +83,7 @@ instead.
.BR wcrtomb (3),
.BR wctomb (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wctomb.3 b/man3/wctomb.3
index fcf0774f6..be908eb50 100644
--- a/man3/wctomb.3
+++ b/man3/wctomb.3
@@ -115,7 +115,7 @@ a better interface to the same functionality.
.BR wcrtomb (3),
.BR wcstombs (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wctrans.3 b/man3/wctrans.3
index c79eb39f9..62817c43f 100644
--- a/man3/wctrans.3
+++ b/man3/wctrans.3
@@ -84,7 +84,7 @@ current locale.
.SH SEE ALSO
.BR towctrans (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wctype.3 b/man3/wctype.3
index ed49983d8..b7f0e76b2 100644
--- a/man3/wctype.3
+++ b/man3/wctype.3
@@ -96,7 +96,7 @@ current locale.
.SH SEE ALSO
.BR iswctype (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wcwidth.3 b/man3/wcwidth.3
index abad8509a..7a355b359 100644
--- a/man3/wcwidth.3
+++ b/man3/wcwidth.3
@@ -73,7 +73,7 @@ current locale.
.BR iswprint (3),
.BR wcswidth (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wmemchr.3 b/man3/wmemchr.3
index a36b88364..947ee3a8a 100644
--- a/man3/wmemchr.3
+++ b/man3/wmemchr.3
@@ -66,7 +66,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR memchr (3),
.BR wcschr (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wmemcmp.3 b/man3/wmemcmp.3
index 10b3430f3..10d017bee 100644
--- a/man3/wmemcmp.3
+++ b/man3/wmemcmp.3
@@ -85,7 +85,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR memcmp (3),
.BR wcscmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wmemcpy.3 b/man3/wmemcpy.3
index b9e164dda..8605e927d 100644
--- a/man3/wmemcpy.3
+++ b/man3/wmemcpy.3
@@ -69,7 +69,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR wmemmove (3),
.BR wmempcpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wmemmove.3 b/man3/wmemmove.3
index a496b105f..7d7fa3679 100644
--- a/man3/wmemmove.3
+++ b/man3/wmemmove.3
@@ -65,7 +65,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.BR memmove (3),
.BR wmemcpy (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wmemset.3 b/man3/wmemset.3
index 2a08117f1..8654cd70c 100644
--- a/man3/wmemset.3
+++ b/man3/wmemset.3
@@ -57,7 +57,7 @@ POSIX.1-2001, POSIX.1-2008, C99.
.SH SEE ALSO
.BR memset (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wordexp.3 b/man3/wordexp.3
index 8c52ea0ce..0e6ca07f7 100644
--- a/man3/wordexp.3
+++ b/man3/wordexp.3
@@ -21,7 +21,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH WORDEXP 3 2020-06-09 "" "Linux Programmer's Manual"
+.TH WORDEXP 3 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
wordexp, wordfree \- perform word expansion like a posix-shell
.SH SYNOPSIS
@@ -31,10 +31,10 @@ wordexp, wordfree \- perform word expansion like a posix-shell
.PP
.BI "void wordfree(wordexp_t *" p );
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.BR wordexp (),
.BR wordfree ():
@@ -234,11 +234,10 @@ main(int argc, char **argv)
{
wordexp_t p;
char **w;
- int i;
wordexp("[a\-c]*.c", &p, 0);
w = p.we_wordv;
- for (i = 0; i < p.we_wordc; i++)
+ for (int i = 0; i < p.we_wordc; i++)
printf("%s\en", w[i]);
wordfree(&p);
exit(EXIT_SUCCESS);
@@ -248,7 +247,7 @@ main(int argc, char **argv)
.BR fnmatch (3),
.BR glob (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/wprintf.3 b/man3/wprintf.3
index 159506a1c..06452ad81 100644
--- a/man3/wprintf.3
+++ b/man3/wprintf.3
@@ -33,10 +33,10 @@ wide-character output conversion
.BI " const wchar_t *" format ", va_list " args );
.fi
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
All functions shown above:
@@ -273,7 +273,7 @@ followed by
.BR snprintf (3)
.\" .BR wscanf (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/xcrypt.3 b/man3/xcrypt.3
index fbc3b5759..8a9de74a1 100644
--- a/man3/xcrypt.3
+++ b/man3/xcrypt.3
@@ -90,7 +90,7 @@ The prototypes are missing from the abovementioned include file.
.SH SEE ALSO
.BR cbc_crypt (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/xdr.3 b/man3/xdr.3
index 3f9b3ddaf..2138b4fbf 100644
--- a/man3/xdr.3
+++ b/man3/xdr.3
@@ -21,13 +21,13 @@ The prototypes below are declared in
.I <rpc/xdr.h>
and make use of the following types:
.PP
-.in +4n
+.RS 4
.EX
.BI "typedef int " bool_t ;
.PP
.BI "typedef bool_t (*" xdrproc_t ") (XDR *, void *,...);"
.EE
-.in
+.RE
.PP
For the declaration of the
.I XDR
@@ -620,7 +620,7 @@ RFC\ 1014, Sun Microsystems, Inc.,
USC-ISI.
.RE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man3/y0.3 b/man3/y0.3
index fc5441b81..6333bfc50 100644
--- a/man3/y0.3
+++ b/man3/y0.3
@@ -56,10 +56,10 @@ Bessel functions of the second kind
.PP
Link with \fI\-lm\fP.
.PP
-.in -4n
+.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
-.in
+.RE
.PP
.ad l
.BR y0 (),
@@ -272,7 +272,7 @@ when a domain error occurs.
.SH SEE ALSO
.BR j0 (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/cciss.4 b/man4/cciss.4
index 1fedade23..00cfb4426 100644
--- a/man4/cciss.4
+++ b/man4/cciss.4
@@ -380,7 +380,7 @@ in the Linux kernel source tree
.\" Charles White, Francis Wiran
.\" and probably some other people.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/console_codes.4 b/man4/console_codes.4
index 9c1bb0c3a..e4ccd8746 100644
--- a/man4/console_codes.4
+++ b/man4/console_codes.4
@@ -675,7 +675,7 @@ It is ignored.
.BR ioctl_console (2),
.BR charsets (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/cpuid.4 b/man4/cpuid.4
index 95e441030..3d9976e60 100644
--- a/man4/cpuid.4
+++ b/man4/cpuid.4
@@ -100,7 +100,7 @@ Instruction Set Reference, A-M, 3-180 CPUID reference.
Intel Corporation, Intel Processor Identification and
the CPUID Instruction, Application note 485.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/dsp56k.4 b/man4/dsp56k.4
index a9bcea173..7bb99350d 100644
--- a/man4/dsp56k.4
+++ b/man4/dsp56k.4
@@ -120,7 +120,7 @@ user-defined command handled by the program running in the DSP56001.
.UE ,
DSP56000/DSP56001 Digital Signal Processor User's Manual
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/fd.4 b/man4/fd.4
index 77f0a1643..8b725cec0 100644
--- a/man4/fd.4
+++ b/man4/fd.4
@@ -231,7 +231,7 @@ This used to be common with older 8-inch floppies.
.BR mount (8),
.BR setfdprm (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/full.4 b/man4/full.4
index 15e0dbe36..ef8932604 100644
--- a/man4/full.4
+++ b/man4/full.4
@@ -65,7 +65,7 @@ will always succeed.
.BR null (4),
.BR zero (4)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/fuse.4 b/man4/fuse.4
index 58c4c8a24..fa0f3399b 100644
--- a/man4/fuse.4
+++ b/man4/fuse.4
@@ -31,7 +31,6 @@ fuse \- Filesystem in Userspace (FUSE) device
.B #include <linux/fuse.h>
.fi
.SH DESCRIPTION
-.PP
This device is the primary interface between the FUSE filesystem driver
and a user-space process wishing to provide the filesystem (referred to
in the rest of this manual page as the
@@ -197,7 +196,7 @@ The object for which the attributes should be computed is indicated
either by
.IR header\->nodeid
or, if the
-.IR FUSE_GETATTR_FH
+.BR FUSE_GETATTR_FH
flag is set, by the file handle
.IR fh .
The latter case of operation is analogous to
@@ -241,7 +240,6 @@ struct fuse_attr_out {
};
.EE
.in
-.IP
.TP
.BR FUSE_ACCESS
.IP
@@ -285,7 +283,6 @@ filesystem should validate that the requested
are valid for the indicated resource and then send a reply with the
following format:
.IP
-.IP
.in +4n
.EX
struct fuse_open_out {
@@ -296,7 +293,6 @@ struct fuse_open_out {
.EE
.in
.IP
-.IP
The
.I fh
field is an opaque identifier that the kernel will use to refer
@@ -333,7 +329,6 @@ struct fuse_read_in {
.EE
.in
.IP
-.IP
The requested action is to read up to
.I size
bytes of the file or directory, starting at
@@ -559,7 +554,7 @@ The following messages are not yet documented in this manual page:
.BR fusermount (1),
.BR mount.fuse (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/hd.4 b/man4/hd.4
index 8784f194f..bdf83795b 100644
--- a/man4/hd.4
+++ b/man4/hd.4
@@ -100,7 +100,7 @@ chown root:disk /dev/hd*
.BR sd (4),
.BR mount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/hpsa.4 b/man4/hpsa.4
index 6bbc4f32d..5b7974930 100644
--- a/man4/hpsa.4
+++ b/man4/hpsa.4
@@ -235,7 +235,7 @@ in the Linux kernel source tree
.\" Don Brace, Steve Cameron, Tom Lawler, Mike Miller, Scott Teel
.\" and probably some other people.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/initrd.4 b/man4/initrd.4
index e8fa0b873..10309ff57 100644
--- a/man4/initrd.4
+++ b/man4/initrd.4
@@ -498,7 +498,7 @@ before Linux 4.10)
in the Linux kernel source tree, the LILO documentation,
the LOADLIN documentation, the SYSLINUX documentation
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/intro.4 b/man4/intro.4
index 5c35d50c0..62d16ce4d 100644
--- a/man4/intro.4
+++ b/man4/intro.4
@@ -40,7 +40,7 @@ Note that these can be different from page to page!
.BR mknod (2),
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/lirc.4 b/man4/lirc.4
index 7c789f650..a8eedc24e 100644
--- a/man4/lirc.4
+++ b/man4/lirc.4
@@ -445,7 +445,7 @@ Users of older kernels could use the file bundled in
.PP
https://www.kernel.org/doc/html/latest/media/uapi/rc/lirc-dev.html
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/loop.4 b/man4/loop.4
index 1a1d9fe15..19dfd3b49 100644
--- a/man4/loop.4
+++ b/man4/loop.4
@@ -23,7 +23,7 @@
.\" USA.
.\" %%%LICENSE_END
.\"
-.TH LOOP 4 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH LOOP 4 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
loop, loop-control \- loop devices
.SH SYNOPSIS
@@ -73,7 +73,7 @@ Disassociate the loop device from any file descriptor.
Set the status of the loop device using the (third)
.BR ioctl (2)
argument.
-This argument is a pointer to
+This argument is a pointer to a
.I loop_info
structure, defined in
.I <linux/loop.h>
@@ -130,7 +130,20 @@ The loopback device will autodestruct on last close.
.BR LO_FLAGS_PARTSCAN " (since Linux 3.2)"
.\" commit e03c8dd14915fabc101aa495828d58598dc5af98
Allow automatic partition scanning.
+.TP
+.BR LO_FLAGS_DIRECT_IO " (since Linux 4.10)"
+.\" commit 2e5ab5f379f96a6207c45be40c357ebb1beb8ef3
+Use direct I/O mode to access the backing file.
.RE
+.IP
+The only
+.I lo_flags
+that can be modified by
+.BR LOOP_SET_STATUS
+are
+.BR LO_FLAGS_AUTOCLEAR
+and
+.BR LO_FLAGS_PARTSCAN .
.TP
.B LOOP_GET_STATUS
Get the status of the loop device.
@@ -161,7 +174,7 @@ it can be used to open backing file.
The (third)
.BR ioctl (2)
argument is an unsigned long value.
-A non-zero represents direct I/O mode.
+A nonzero represents direct I/O mode.
.TP
.BR LOOP_SET_BLOCK_SIZE " (since Linux 4.14)"
.\" commit 89e4fdecb51cf5535867026274bc97de9480ade5
@@ -174,6 +187,51 @@ This value must be a power of two in the range
otherwise, an
.B EINVAL
error results.
+.TP
+.BR LOOP_CONFIGURE " (since Linux 5.8)"
+.\" commit 3448914e8cc550ba792d4ccc74471d1ca4293aae
+Setup and configure all loop device parameters in a single step using
+the (third)
+.BR ioctl (2)
+argument.
+This argument is a pointer to a
+.I loop_config
+structure, defined in
+.I <linux/loop.h>
+as:
+.IP
+.in +4n
+.EX
+struct loop_config {
+ __u32 fd;
+ __u32 block_size;
+ struct loop_info64 info;
+ __u64 __reserved[8];
+};
+.EE
+.in
+.IP
+In addition to doing what
+.BR LOOP_SET_STATUS
+can do,
+.BR LOOP_CONFIGURE
+can also be used to do the following:
+.RS
+.IP * 2
+set the correct block size immediately by setting
+.IR loop_config.block_size ;
+.IP *
+explicitly request direct I/O mode by setting
+.BR LO_FLAGS_DIRECT_IO
+in
+.IR loop_config.info.lo_flags ;
+and
+.IP *
+explicitly request read-only mode by setting
+.BR LO_FLAGS_READ_ONLY
+in
+.IR loop_config.info.lo_flags .
+.RE
.PP
Since Linux 2.6, there are two new
.BR ioctl (2)
@@ -318,7 +376,7 @@ main(int argc, char *argv[])
.BR losetup (8),
.BR mount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/lp.4 b/man4/lp.4
index 138d813aa..f2bb45771 100644
--- a/man4/lp.4
+++ b/man4/lp.4
@@ -142,7 +142,7 @@ No argument is used.
.BR lpcntl (8),
.BR tunelp (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/mem.4 b/man4/mem.4
index 26c839205..1093dc1d4 100644
--- a/man4/mem.4
+++ b/man4/mem.4
@@ -99,7 +99,7 @@ chown root:kmem /dev/port
.BR mknod (1),
.BR ioperm (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/mouse.4 b/man4/mouse.4
index 4e8a9c872..1988b68d3 100644
--- a/man4/mouse.4
+++ b/man4/mouse.4
@@ -189,7 +189,7 @@ A commonly used symbolic link pointing to a mouse device.
.BR ttyS (4),
.BR gpm (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/msr.4 b/man4/msr.4
index cb2e71e4b..d403ad922 100644
--- a/man4/msr.4
+++ b/man4/msr.4
@@ -62,7 +62,7 @@ Intel Corporation Intel 64 and IA-32 Architectures
Software Developer's Manual Volume 3B Appendix B,
for an overview of the Intel CPU MSRs.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/null.4 b/man4/null.4
index edffe9610..48e95dc7d 100644
--- a/man4/null.4
+++ b/man4/null.4
@@ -70,7 +70,7 @@ are interruptible by signals.
.BR mknod (1),
.BR full (4)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/pts.4 b/man4/pts.4
index 1dc2c2937..57abbe34b 100644
--- a/man4/pts.4
+++ b/man4/pts.4
@@ -74,7 +74,7 @@ filesystem, which should be mounted on
.BR unlockpt (3),
.BR pty (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/ram.4 b/man4/ram.4
index 808f2271b..4aa23624e 100644
--- a/man4/ram.4
+++ b/man4/ram.4
@@ -46,7 +46,7 @@ chown root:disk /dev/ram
.BR mknod (1),
.BR mount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/random.4 b/man4/random.4
index 2c53bfde7..085624994 100644
--- a/man4/random.4
+++ b/man4/random.4
@@ -344,7 +344,7 @@ may return data prior to the entropy pool being initialized.
.PP
RFC\ 1750, "Randomness Recommendations for Security"
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/rtc.4 b/man4/rtc.4
index 09971d160..68eccde48 100644
--- a/man4/rtc.4
+++ b/man4/rtc.4
@@ -343,7 +343,7 @@ capabilities that are not currently exposed by this API.
.I Documentation/rtc.txt
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/sd.4 b/man4/sd.4
index 0f11d4b0a..bf1f1b544 100644
--- a/man4/sd.4
+++ b/man4/sd.4
@@ -136,7 +136,7 @@ individual block partitions
.\".SH SEE ALSO
.\".BR scsi (4)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/sk98lin.4 b/man4/sk98lin.4
index fcb98e035..26abb129a 100644
--- a/man4/sk98lin.4
+++ b/man4/sk98lin.4
@@ -587,7 +587,7 @@ Report any bugs to linux@syskonnect.de
.BR insmod (8),
.BR modprobe (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/smartpqi.4 b/man4/smartpqi.4
index 6c9f8d5d2..c7892fb71 100644
--- a/man4/smartpqi.4
+++ b/man4/smartpqi.4
@@ -326,7 +326,7 @@ which can be found by searching for the specific controller at
.I Documentation/ABI/testing/sysfs\-bus\-pci\-devices\-cciss
in the Linux kernel source tree.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/st.4 b/man4/st.4
index 0254e4245..b7a4ece4b 100644
--- a/man4/st.4
+++ b/man4/st.4
@@ -965,7 +965,7 @@ or
the most recent information about the driver and its configuration
possibilities
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/tty.4 b/man4/tty.4
index 1983761e1..c2adc4ba4 100644
--- a/man4/tty.4
+++ b/man4/tty.4
@@ -85,7 +85,7 @@ to detach itself.
.BR agetty (8),
.BR mingetty (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/ttyS.4 b/man4/ttyS.4
index 472a42ae5..11e424cdf 100644
--- a/man4/ttyS.4
+++ b/man4/ttyS.4
@@ -51,7 +51,7 @@ chown root:tty /dev/ttyS[0\-3]
.BR mingetty (8),
.BR setserial (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/vcs.4 b/man4/vcs.4
index 772725788..e8b6d1f8d 100644
--- a/man4/vcs.4
+++ b/man4/vcs.4
@@ -26,7 +26,7 @@
.\" 2007-12-17, Samuel Thibault <samuel.thibault@ens-lyon.org>:
.\" document the VT_GETHIFONTMASK ioctl
.\" "
-.TH VCS 4 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH VCS 4 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
vcs, vcsa \- virtual console memory
.SH DESCRIPTION
@@ -177,7 +177,7 @@ main(void)
if (s & mask)
ch |= 0x100;
attrib = ((s & \(timask) >> 8);
- printf("ch=0x%03x attrib=0x%02x\en", ch, attrib);
+ printf("ch=%#03x attrib=%#02x\en", ch, attrib);
s \(ha= 0x1000;
(void) lseek(fd, \-2, SEEK_CUR);
(void) write(fd, &s, 2);
@@ -190,7 +190,7 @@ main(void)
.BR ttyS (4),
.BR gpm (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/veth.4 b/man4/veth.4
index 3f61e1e3c..969829f8b 100644
--- a/man4/veth.4
+++ b/man4/veth.4
@@ -25,7 +25,7 @@
.\" %%%LICENSE_END
.\"
.\"
-.TH VETH 4 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH VETH 4 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
veth \- Virtual Ethernet Device
.SH DESCRIPTION
@@ -94,7 +94,7 @@ network interface, using commands something like:
# \fBethtool \-S ve_A\fP # Discover interface index of peer
NIC statistics:
peer_ifindex: 16
-# \fBip link | grep '\(ha16:'\fP # Look up interface
+# \fBip link | grep \(aq\(ha16:\(aq\fP # Look up interface
16: ve_B@ve_A: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc ...
.EE
.in
@@ -106,7 +106,7 @@ NIC statistics:
.BR ip\-link (8),
.BR ip\-netns (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man4/wavelan.4 b/man4/wavelan.4
index 22c5b3a50..f5eaec55f 100644
--- a/man4/wavelan.4
+++ b/man4/wavelan.4
@@ -143,7 +143,7 @@ them by changing flags in the driver header and recompile.
.BR iwpriv (8),
.BR iwspy (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/acct.5 b/man5/acct.5
index ac78c5fde..71f461f2a 100644
--- a/man5/acct.5
+++ b/man5/acct.5
@@ -177,7 +177,7 @@ when disk space runs low.
.BR accton (8),
.BR sa (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/charmap.5 b/man5/charmap.5
index 101cf8245..930e73e95 100644
--- a/man5/charmap.5
+++ b/man5/charmap.5
@@ -118,7 +118,7 @@ charmap:
.BR locale (5),
.BR charsets (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/core.5 b/man5/core.5
index b52082beb..a2224f9fd 100644
--- a/man5/core.5
+++ b/man5/core.5
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH CORE 5 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH CORE 5 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
core \- core dump file
.SH DESCRIPTION
@@ -513,7 +513,6 @@ One can list the core dumps that have been recorded by
using
.BR coredumpctl (1):
.PP
-.in +2n
.EX
$ \fBcoredumpctl list | tail -5\fP
Wed 2017-10-11 22:25:30 CEST 2748 1000 1000 3 present /usr/bin/sleep
@@ -522,7 +521,6 @@ Thu 2017-10-12 06:30:50 CEST 2767 1000 1000 3 present /usr/bin/sleep
Thu 2017-10-12 06:37:40 CEST 2918 1000 1000 3 present /usr/bin/cat
Thu 2017-10-12 08:13:07 CEST 2955 1000 1000 3 present /usr/bin/cat
.EE
-.in
.PP
The information shown for each core dump includes the date and time
of the dump, the PID, UID, and GID of the dumping process,
@@ -573,7 +571,6 @@ as well as the number of the signal which triggered the core dump):
# \fBsysctl \-w kernel.core_pattern="%e\-%s.core"\fP
.EE
.in
-.PP
.\"
.SH NOTES
The
@@ -654,8 +651,7 @@ Total bytes in core dump: 282624
int
main(int argc, char *argv[])
{
- int tot, j;
- ssize_t nread;
+ ssize_t nread, tot;
char buf[BUF_SIZE];
FILE *fp;
char cwd[PATH_MAX];
@@ -676,7 +672,7 @@ main(int argc, char *argv[])
pipe program */
fprintf(fp, "argc=%d\en", argc);
- for (j = 0; j < argc; j++)
+ for (int j = 0; j < argc; j++)
fprintf(fp, "argc[%d]=<%s>\en", j, argv[j]);
/* Count bytes in standard input (the core dump) */
@@ -684,7 +680,7 @@ main(int argc, char *argv[])
tot = 0;
while ((nread = read(STDIN_FILENO, buf, BUF_SIZE)) > 0)
tot += nread;
- fprintf(fp, "Total bytes in core dump: %d\en", tot);
+ fprintf(fp, "Total bytes in core dump: %zd\en", tot);
fclose(fp);
exit(EXIT_SUCCESS);
@@ -704,7 +700,7 @@ main(int argc, char *argv[])
.BR signal (7),
.BR systemd\-coredump (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/dir_colors.5 b/man5/dir_colors.5
index 13bec7eed..4e6b16c01 100644
--- a/man5/dir_colors.5
+++ b/man5/dir_colors.5
@@ -409,7 +409,7 @@ is undefined.
.BR stty (1),
.BR xterm (1)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/elf.5 b/man5/elf.5
index 7da35b552..91eb8226d 100644
--- a/man5/elf.5
+++ b/man5/elf.5
@@ -2192,7 +2192,7 @@ AMD64 ABI Draft,
.IR "System V Application Binary Interface AMD64 Architecture Processor Supplement" .
.PP
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/filesystems.5 b/man5/filesystems.5
index c485baa9d..db3fe770f 100644
--- a/man5/filesystems.5
+++ b/man5/filesystems.5
@@ -239,7 +239,7 @@ It was removed from the kernel in 2.1.21.
.BR mkfs (8),
.BR mount (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/ftpusers.5 b/man5/ftpusers.5
index 98e5099c5..4e8220849 100644
--- a/man5/ftpusers.5
+++ b/man5/ftpusers.5
@@ -55,7 +55,7 @@ Lines starting with a # are ignored.
.BR proftpd (8),
.BR wuftpd (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/gai.conf.5 b/man5/gai.conf.5
index eda0bf90a..3ac74d7a5 100644
--- a/man5/gai.conf.5
+++ b/man5/gai.conf.5
@@ -101,7 +101,7 @@ precedence ::ffff:0:0/96 10
.BR getaddrinfo (3),
RFC\ 3484
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/group.5 b/man5/group.5
index 38bee6f83..6df6d7ef7 100644
--- a/man5/group.5
+++ b/man5/group.5
@@ -73,7 +73,7 @@ up-to-date.
.BR passwd (5),
.BR vigr (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/host.conf.5 b/man5/host.conf.5
index be7993631..c8c9b7aff 100644
--- a/man5/host.conf.5
+++ b/man5/host.conf.5
@@ -217,7 +217,7 @@ Valid values are
.BR hostname (7),
.BR named (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/hosts.5 b/man5/hosts.5
index 47ee6a66b..06acb66a6 100644
--- a/man5/hosts.5
+++ b/man5/hosts.5
@@ -138,7 +138,7 @@ Internet RFC\ 952
.\" This manual page was written by Manoj Srivastava <srivasta@debian.org>,
.\" for the Debian GNU/Linux system.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/hosts.equiv.5 b/man5/hosts.equiv.5
index 989947a88..b475d3569 100644
--- a/man5/hosts.equiv.5
+++ b/man5/hosts.equiv.5
@@ -172,7 +172,7 @@ the file is processed sequentially until the first matching rule is found.
.BR rlogind (8),
.BR rshd (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/intro.5 b/man5/intro.5
index 23710182f..4a03e0950 100644
--- a/man5/intro.5
+++ b/man5/intro.5
@@ -41,7 +41,7 @@ Note that these can be different from page to page!
.SH SEE ALSO
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/issue.5 b/man5/issue.5
index 7aafbe71f..ba254e5b2 100644
--- a/man5/issue.5
+++ b/man5/issue.5
@@ -42,7 +42,7 @@ program employed on the system.
.BR agetty (8),
.BR mingetty (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/locale.5 b/man5/locale.5
index 4bab77b40..080c1b2fd 100644
--- a/man5/locale.5
+++ b/man5/locale.5
@@ -21,7 +21,7 @@
.\" 2008-06-17 Petr Baudis <pasky@suse.cz>
.\" LC_TIME: Describe first_weekday and first_workday
.\"
-.TH LOCALE 5 2020-06-09 "Linux" "Linux User Manual"
+.TH LOCALE 5 2020-11-01 "Linux" "Linux User Manual"
.SH NAME
locale \- describes a locale definition file
.SH DESCRIPTION
@@ -693,12 +693,12 @@ separator.
followed by the local currency symbol.
.TP
.I mon_decimal_point
-followed by the string that will be used as the decimal delimiter
-when formatting monetary quantities.
+followed by the single-character string that will be used as the
+decimal delimiter when formatting monetary quantities.
.TP
.I mon_thousands_sep
-followed by the string that will be used as a group separator
-when formatting monetary quantities.
+followed by the single-character string that will be used as a group
+separator when formatting monetary quantities.
.TP
.I mon_grouping
followed by a sequence of integers separated by semicolons that
@@ -962,12 +962,12 @@ in the first column.
The following keywords are allowed:
.TP
.I decimal_point
-followed by the string that will be used as the decimal delimiter
-when formatting numeric quantities.
+followed by the single-character string that will be used as the
+decimal delimiter when formatting numeric quantities.
.TP
.I thousands_sep
-followed by the string that will be used as a group separator
-when formatting numeric quantities.
+followed by the single-character string that will be used as a group
+separator when formatting numeric quantities.
.TP
.I grouping
followed by a sequence of integers separated by semicolons
@@ -1329,7 +1329,7 @@ Monday for the locale.
.BR unicode (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/motd.5 b/man5/motd.5
index a0f048c08..959fc8197 100644
--- a/man5/motd.5
+++ b/man5/motd.5
@@ -43,7 +43,7 @@ space than mail to all users).
.BR login (1),
.BR issue (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/networks.5 b/man5/networks.5
index 29a54bbd9..a02d3d8db 100644
--- a/man5/networks.5
+++ b/man5/networks.5
@@ -78,7 +78,7 @@ The networks definition file.
.BR netstat (8),
.BR route (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/nologin.5 b/man5/nologin.5
index 927ab5b1c..fdc7e884d 100644
--- a/man5/nologin.5
+++ b/man5/nologin.5
@@ -40,7 +40,7 @@ This provides a simple way of temporarily disabling all unprivileged logins.
.BR login (1),
.BR shutdown (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/nscd.conf.5 b/man5/nscd.conf.5
index f3e049443..5fe7c5a08 100644
--- a/man5/nscd.conf.5
+++ b/man5/nscd.conf.5
@@ -242,7 +242,7 @@ your distribution might differ.
.\" .B nscd
.\" was written by Thorsten Kukuk and Ulrich Drepper.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/nss.5 b/man5/nss.5
index 4c583d41c..cc4f1473b 100644
--- a/man5/nss.5
+++ b/man5/nss.5
@@ -113,7 +113,7 @@ SETENT_BATCH_READ=FALSE
.SH SEE ALSO
\fInsswitch.conf\fR
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/nsswitch.conf.5 b/man5/nsswitch.conf.5
index f719a6a3a..fb6be875f 100644
--- a/man5/nsswitch.conf.5
+++ b/man5/nsswitch.conf.5
@@ -433,7 +433,7 @@ introduced a cleaner solution to the problem.
.BR getent (1),
.BR nss (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/passwd.5 b/man5/passwd.5
index efa336326..ce37ec8ab 100644
--- a/man5/passwd.5
+++ b/man5/passwd.5
@@ -174,7 +174,7 @@ shell field yields the same result and additionally allows the use of
.BR shadow (5),
.BR vipw (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/proc.5 b/man5/proc.5
index 0b85e02d3..6c04d4a26 100644
--- a/man5/proc.5
+++ b/man5/proc.5
@@ -114,7 +114,7 @@ specific program
(so long as the program doesn't otherwise reveal itself by its behavior).
.\" As an additional bonus, since
.\" .IR /proc/[pid]/cmdline
-.\" is unaccessible for other users,
+.\" is inaccessible for other users,
.\" poorly written programs passing sensitive information via
.\" program arguments are now protected against local eavesdroppers.
.TP
@@ -1261,9 +1261,16 @@ Until kernel version 4.3,
this directory appeared only if the
.B CONFIG_CHECKPOINT_RESTORE
kernel configuration option was enabled.
-Additionally, in those kernel versions, privilege
-.RB ( CAP_SYS_ADMIN )
-was required to view the contents of this directory.
+.IP
+Capabilities are required to read the contents of the symbolic links in
+this directory: before Linux 5.9, the reading process requires
+.BR CAP_SYS_ADMIN
+in the initial user namespace;
+since Linux 5.9, the reading process must have either
+.BR CAP_SYS_ADMIN
+or
+.BR CAP_CHECKPOINT_RESTORE
+in the user namespace where it resides.
.TP
.I /proc/[pid]/maps
A file containing the currently mapped memory regions and their access
@@ -1311,7 +1318,7 @@ The
.I perms
field is a set of permissions:
.IP
-.in +4
+.in +4n
.EX
r = read
w = write
@@ -1423,12 +1430,10 @@ failure to distinguish per-mount versus per-superblock options).
.IP
The file contains lines of the form:
.IP
-.in 0n
.EX
36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 \- ext3 /dev/root rw,errors=continue
(1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11)
.EE
-.in
.IP
The numbers in parentheses are labels for the descriptions below:
.RS 7
@@ -1829,7 +1834,7 @@ and in that shell we create some new mount points:
.IP
.in +4n
.EX
-$ \fBPS1='sh1# ' unshare \-Urnm\fP
+$ \fBPS1=\(aqsh1# \(aq unshare \-Urnm\fP
sh1# \fBmount \-t tmpfs tmpfs /etc\fP # Mount empty tmpfs at /etc
sh1# \fBmount \-\-bind /usr /dev\fP # Mount /usr at /dev
sh1# \fBecho $$\fP
@@ -1843,7 +1848,7 @@ the initial and new namespaces:
.IP
.in +4n
.EX
-$ \fBPS1='sh2# ' sudo sh\fP
+$ \fBPS1=\(aqsh2# \(aq sudo sh\fP
sh2# \fBls /etc | wc \-l\fP # In initial NS
309
sh2# \fBls /proc/27123/root/etc | wc \-l\fP # /etc in other NS
@@ -1989,7 +1994,7 @@ contains the memory protection key (see
associated with the virtual memory area.
This entry is present only if the kernel was built with the
.B CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
-configuration option.
+configuration option (since Linux 4.6).
.IP
The "VmFlags" line (available since Linux 3.8)
represents the kernel flags associated with the virtual memory area,
@@ -2028,13 +2033,6 @@ encoded using the following two-letter codes:
um - userfaultfd missing pages tracking (since Linux 4.3)
uw - userfaultfd wprotect pages tracking (since Linux 4.3)
.IP
-"ProtectionKey" field contains the memory protection key (see
-.BR pkeys (7))
-associated with the virtual memory area.
-Present only if the kernel was built with the
-.B CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
-configuration option. (since Linux 4.6)
-.IP
The
.IR /proc/[pid]/smaps
file is present only if the
@@ -2072,7 +2070,7 @@ check (refer to
If the check denies access, then the field value is displayed as 0.
The affected fields are indicated with the marking [PT].
.RS
-.TP 10
+.TP
(1) \fIpid\fP \ %d
.br
The process ID.
@@ -2267,6 +2265,9 @@ This is just the pages which
count toward text, data, or stack space.
This does not include pages
which have not been demand-loaded in, or which are swapped out.
+This value is inaccurate; see
+.I /proc/[pid]/statm
+below.
.TP
(25) \fIrsslim\fP \ %lu
Current soft limit in bytes on the rss of the process;
@@ -2411,9 +2412,11 @@ The columns are:
size (1) total program size
(same as VmSize in \fI/proc/[pid]/status\fP)
resident (2) resident set size
- (same as VmRSS in \fI/proc/[pid]/status\fP)
-shared (3) number of resident shared pages (i.e., backed by a file)
- (same as RssFile+RssShmem in \fI/proc/[pid]/status\fP)
+ (inaccurate; same as VmRSS in \fI/proc/[pid]/status\fP)
+shared (3) number of resident shared pages
+ (i.e., backed by a file)
+ (inaccurate; same as RssFile+RssShmem in
+ \fI/proc/[pid]/status\fP)
text (4) text (code)
.\" (not including libs; broken, includes data segment)
lib (5) library (unused since Linux 2.6; always 0)
@@ -2422,6 +2425,16 @@ data (6) data + stack
dt (7) dirty pages (unused since Linux 2.6; always 0)
.EE
.in
+.IP
+.\" See SPLIT_RSS_COUNTING in the kernel.
+.\" Inaccuracy is bounded by TASK_RSS_EVENTS_THRESH.
+Some of these values are inaccurate because
+of a kernel-internal scalability optimization.
+If accurate values are required, use
+.I /proc/[pid]/smaps
+or
+.I /proc/[pid]/smaps_rollup
+instead, which are much slower but provide accurate, detailed information.
.TP
.I /proc/[pid]/status
Provides much of the information in
@@ -2494,19 +2507,19 @@ nonvoluntary_ctxt_switches: 545
.IP
The fields are as follows:
.RS
-.IP * 2
-.IR Name :
+.TP
+.IR Name
Command run by this process.
Strings longer than
.B TASK_COMM_LEN
(16) characters (including the terminating null byte) are silently truncated.
-.IP *
-.IR Umask :
+.TP
+.IR Umask
Process umask, expressed in octal with a leading zero; see
.BR umask (2).
(Since Linux 4.7.)
-.IP *
-.IR State :
+.TP
+.IR State
Current state of the process.
One of
"R (running)",
@@ -2517,33 +2530,33 @@ One of
"Z (zombie)",
or
"X (dead)".
-.IP *
-.IR Tgid :
+.TP
+.IR Tgid
Thread group ID (i.e., Process ID).
-.IP *
-.IR Ngid :
+.TP
+.IR Ngid
NUMA group ID (0 if none; since Linux 3.13).
-.IP *
-.IR Pid :
+.TP
+.IR Pid
Thread ID (see
.BR gettid (2)).
-.IP *
-.IR PPid :
+.TP
+.IR PPid
PID of parent process.
-.IP *
-.IR TracerPid :
+.TP
+.IR TracerPid
PID of process tracing this process (0 if not being traced).
-.IP *
-.IR Uid ", " Gid :
+.TP
+.IR Uid ", " Gid
Real, effective, saved set, and filesystem UIDs (GIDs).
-.IP *
-.IR FDSize :
+.TP
+.IR FDSize
Number of file descriptor slots currently allocated.
-.IP *
-.IR Groups :
+.TP
+.IR Groups
Supplementary group list.
-.IP *
-.IR NStgid :
+.TP
+.IR NStgid
Thread group ID (i.e., PID) in each of the PID namespaces of which
.I [pid]
is a member.
@@ -2553,24 +2566,24 @@ if mounted by the kernel),
followed by the value in successively nested inner namespaces.
.\" commit e4bc33245124db69b74a6d853ac76c2976f472d5
(Since Linux 4.1.)
-.IP *
-.IR NSpid :
+.TP
+.IR NSpid
Thread ID in each of the PID namespaces of which
.I [pid]
is a member.
The fields are ordered as for
.IR NStgid .
(Since Linux 4.1.)
-.IP *
-.IR NSpgid :
+.TP
+.IR NSpgid
Process group ID in each of the PID namespaces of which
.I [pid]
is a member.
The fields are ordered as for
.IR NStgid .
(Since Linux 4.1.)
-.IP *
-.IR NSsid :
+.TP
+.IR NSsid
descendant namespace session ID hierarchy
Session ID in each of the PID namespaces of which
.I [pid]
@@ -2578,77 +2591,95 @@ is a member.
The fields are ordered as for
.IR NStgid .
(Since Linux 4.1.)
-.IP *
-.IR VmPeak :
+.TP
+.IR VmPeak
Peak virtual memory size.
-.IP *
-.IR VmSize :
+.TP
+.IR VmSize
Virtual memory size.
-.IP *
-.IR VmLck :
+.TP
+.IR VmLck
Locked memory size (see
.BR mlock (2)).
-.IP *
-.IR VmPin :
+.TP
+.IR VmPin
Pinned memory size
.\" commit bc3e53f682d93df677dbd5006a404722b3adfe18
(since Linux 3.2).
These are pages that can't be moved because something needs to
directly access physical memory.
-.IP *
-.IR VmHWM :
+.TP
+.IR VmHWM
Peak resident set size ("high water mark").
-.IP *
-.IR VmRSS :
+This value is inaccurate; see
+.I /proc/[pid]/statm
+above.
+.TP
+.IR VmRSS
Resident set size.
Note that the value here is the sum of
.IR RssAnon ,
.IR RssFile ,
and
.IR RssShmem .
-.IP *
-.IR RssAnon :
+This value is inaccurate; see
+.I /proc/[pid]/statm
+above.
+.TP
+.IR RssAnon
Size of resident anonymous memory.
.\" commit bf9683d6990589390b5178dafe8fd06808869293
(since Linux 4.5).
-.IP *
-.IR RssFile :
+This value is inaccurate; see
+.I /proc/[pid]/statm
+above.
+.TP
+.IR RssFile
Size of resident file mappings.
.\" commit bf9683d6990589390b5178dafe8fd06808869293
(since Linux 4.5).
-.IP *
-.IR RssShmem :
+This value is inaccurate; see
+.I /proc/[pid]/statm
+above.
+.TP
+.IR RssShmem
Size of resident shared memory (includes System V shared memory,
mappings from
.BR tmpfs (5),
and shared anonymous mappings).
.\" commit bf9683d6990589390b5178dafe8fd06808869293
(since Linux 4.5).
-.IP *
-.IR VmData ", " VmStk ", " VmExe :
+.TP
+.IR VmData ", " VmStk ", " VmExe
Size of data, stack, and text segments.
-.IP *
-.IR VmLib :
+This value is inaccurate; see
+.I /proc/[pid]/statm
+above.
+.TP
+.IR VmLib
Shared library code size.
-.IP *
-.IR VmPTE :
+.TP
+.IR VmPTE
Page table entries size (since Linux 2.6.10).
-.IP *
-.IR VmPMD :
+.TP
+.IR VmPMD
.\" commit dc6c9a35b66b520cf67e05d8ca60ebecad3b0479
Size of second-level page tables (added in Linux 4.0; removed in Linux 4.15).
-.IP *
-.IR VmSwap :
+.TP
+.IR VmSwap
.\" commit b084d4353ff99d824d3bc5a5c2c22c70b1fba722
Swapped-out virtual memory size by anonymous private pages;
shmem swap usage is not included (since Linux 2.6.34).
-.IP *
-.IR HugetlbPages :
+This value is inaccurate; see
+.I /proc/[pid]/statm
+above.
+.TP
+.IR HugetlbPages
Size of hugetlb memory portions
.\" commit 5d317b2b6536592a9b51fe65faed43d65ca9158e
(since Linux 4.4).
-.IP *
-.IR CoreDumping :
+.TP
+.IR CoreDumping
Contains the value 1 if the process is currently dumping core,
and 0 if it is not
.\" commit c643401218be0f4ab3522e0c0a63016596d6e9ca
@@ -2656,11 +2687,11 @@ and 0 if it is not
This information can be used by a monitoring process to avoid killing
a process that is currently dumping core,
which could result in a corrupted core dump file.
-.IP *
-.IR Threads :
+.TP
+.IR Threads
Number of threads in process containing this thread.
-.IP *
-.IR SigQ :
+.TP
+.IR SigQ
This field contains two slash-separated numbers that relate to
queued signals for the real user ID of this process.
The first of these is the number of currently queued
@@ -2670,44 +2701,44 @@ resource limit on the number of queued signals for this process
.BR RLIMIT_SIGPENDING
in
.BR getrlimit (2)).
-.IP *
-.IR SigPnd ", " ShdPnd :
+.TP
+.IR SigPnd ", " ShdPnd
Mask (expressed in hexadecimal)
of signals pending for thread and for process as a whole (see
.BR pthreads (7)
and
.BR signal (7)).
-.IP *
-.IR SigBlk ", " SigIgn ", " SigCgt :
+.TP
+.IR SigBlk ", " SigIgn ", " SigCgt
Masks (expressed in hexadecimal)
indicating signals being blocked, ignored, and caught (see
.BR signal (7)).
-.IP *
-.IR CapInh ", " CapPrm ", " CapEff :
+.TP
+.IR CapInh ", " CapPrm ", " CapEff
Masks (expressed in hexadecimal)
of capabilities enabled in inheritable, permitted, and effective sets
(see
.BR capabilities (7)).
-.IP *
-.IR CapBnd :
+.TP
+.IR CapBnd
Capability bounding set, expressed in hexadecimal
(since Linux 2.6.26, see
.BR capabilities (7)).
-.IP *
-.IR CapAmb :
+.TP
+.IR CapAmb
Ambient capability set, expressed in hexadecimal
(since Linux 4.3, see
.BR capabilities (7)).
-.IP *
-.IR NoNewPrivs :
+.TP
+.IR NoNewPrivs
.\" commit af884cd4a5ae62fcf5e321fecf0ec1014730353d
Value of the
.I no_new_privs
bit
(since Linux 4.10, see
.BR prctl (2)).
-.IP *
-.IR Seccomp :
+.TP
+.IR Seccomp
.\" commit 2f4b3bf6b2318cfaa177ec5a802f4d8d6afbd816
Seccomp mode of the process
(since Linux 3.8, see
@@ -2721,34 +2752,34 @@ Seccomp mode of the process
This field is provided only if the kernel was built with the
.BR CONFIG_SECCOMP
kernel configuration option enabled.
-.IP *
-.IR Speculation_Store_Bypass :
+.TP
+.IR Speculation_Store_Bypass
.\" commit fae1fa0fc6cca8beee3ab8ed71d54f9a78fa3f64
Speculation flaw mitigation state
(since Linux 4.17, see
.BR prctl (2)).
-.IP *
-.IR Cpus_allowed :
+.TP
+.IR Cpus_allowed
Hexadecimal mask of CPUs on which this process may run
(since Linux 2.6.24, see
.BR cpuset (7)).
-.IP *
-.IR Cpus_allowed_list :
+.TP
+.IR Cpus_allowed_list
Same as previous, but in "list format"
(since Linux 2.6.26, see
.BR cpuset (7)).
-.IP *
-.IR Mems_allowed :
+.TP
+.IR Mems_allowed
Mask of memory nodes allowed to this process
(since Linux 2.6.24, see
.BR cpuset (7)).
-.IP *
-.IR Mems_allowed_list :
+.TP
+.IR Mems_allowed_list
Same as previous, but in "list format"
(since Linux 2.6.26, see
.BR cpuset (7)).
-.IP *
-.IR voluntary_ctxt_switches ", " nonvoluntary_ctxt_switches :
+.TP
+.IR voluntary_ctxt_switches ", " nonvoluntary_ctxt_switches
Number of voluntary and involuntary context switches (since Linux 2.6.23).
.RE
.TP
@@ -3009,14 +3040,13 @@ requests and to counter memory fragmentation.
The order matches the column number, when starting to count at zero.
.IP
For example on an x86-64 system:
-.IP
-.in -12n
+.RS -12
.EX
Node 0, zone DMA 1 1 1 0 2 1 1 0 1 1 3
Node 0, zone DMA32 65 47 4 81 52 28 13 10 5 1 404
Node 0, zone Normal 216 55 189 101 84 38 37 27 5 3 587
.EE
-.in
+.RE
.IP
In this example, there is one node containing three zones and there
are 11 different chunk sizes.
@@ -3182,7 +3212,7 @@ driver driver version
geometry physical and logical geometry
identify in hexadecimal
media media type
-model manufacturer's model number
+model manufacturer\(aqs model number
settings drive settings
smart_thresholds IDE disk management thresholds (in hex)
smart_values IDE disk management values (in hex)
@@ -3834,7 +3864,7 @@ address resolutions.
It will show both dynamically learned and preprogrammed ARP entries.
The format is:
.IP
-.in 7n
+.in +4n
.EX
IP address HW type Flags HW address Mask Device
192.168.0.50 0x1 0x2 00:50:BF:25:68:F3 * eth0
@@ -3862,7 +3892,6 @@ These are used by the
program to report device status.
The format is:
.IP
-.in 1n
.EX
Inter\-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
@@ -3871,7 +3900,6 @@ Inter\-| Receive | Transmit
ppp0: 1622270 5552 1 0 0 0 0 0 354130 5669 0 0 0 0 0 0
tap0: 7714 81 0 0 0 0 0 0 7714 81 0 0 0 0 0 0
.EE
-.in
.\" .TP
.\" .I /proc/net/ipx
.\" No information.
@@ -3883,7 +3911,7 @@ Inter\-| Receive | Transmit
Defined in
.IR /usr/src/linux/net/core/dev_mcast.c :
.IP
-.in +4
+.in +4n
.EX
indx interface_name dmi_u dmi_g dmi_address
2 eth0 1 0 01005e000001
@@ -3965,27 +3993,23 @@ The "uid"
field holds the effective UID of the creator of the socket.
The format is:
.IP
-.in 1n
.EX
sl local_address rem_address st tx_queue rx_queue tr rexmits tm\->when uid
1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0
.EE
-.in
.TP
.I /proc/net/unix
Lists the UNIX domain sockets present within the system and their
status.
The format is:
.IP
-.in 1n
.EX
Num RefCount Protocol Flags Type St Inode Path
0: 00000002 00000000 00000000 0001 03 42
1: 00000001 00000000 00010000 0001 01 1948 /dev/printer
.EE
-.in
.IP
The fields are as follows:
.RS
@@ -4087,7 +4111,7 @@ full; that is, user space is not able to read messages fast enough.
(8)
sequence number.
Every queued packet is associated with a (32-bit)
-monotonically-increasing sequence number.
+monotonically increasing sequence number.
This shows the ID of the most recent packet queued.
.RE
.IP
@@ -4459,6 +4483,7 @@ which can be used by a process to set the per-process limit,
on the number of files it may open.)
If you get lots
of error messages in the kernel log about running out of file handles
+(open file descriptions)
(look for "VFS: file\-max limit <number> reached"),
try increasing this value:
.IP
@@ -4477,7 +4502,8 @@ limit.
.I /proc/sys/fs/file\-nr
This (read-only) file contains three numbers:
the number of allocated file handles
-(i.e., the number of files presently opened);
+(i.e., the number of open file descriptions; see
+.BR open (2));
the number of free file handles;
and the maximum number of file handles (i.e., the same value as
.IR /proc/sys/fs/file\-max ).
@@ -5987,7 +6013,7 @@ This allows multiple readouts.
Sample output from
.IR /proc/timer_stats :
.IP
-.in 4n
+.in +4n
.EX
.RB $ " cat /proc/timer_stats"
Timer Stats Version: v0.3
@@ -6047,7 +6073,7 @@ and
.IR /proc/sys/kernel/version .
For example:
.IP
-.in 8n
+.in +4n
.EX
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
.EE
@@ -6809,7 +6835,7 @@ The Linux kernel source files:
and
.IR Documentation/sysctl/vm.txt .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/protocols.5 b/man5/protocols.5
index 5f645c867..96923de5f 100644
--- a/man5/protocols.5
+++ b/man5/protocols.5
@@ -84,7 +84,7 @@ The protocols definition file.
.UR http://www.iana.org\:/assignments\:/protocol\-numbers
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/repertoiremap.5 b/man5/repertoiremap.5
index 0b137bd37..89f3746f4 100644
--- a/man5/repertoiremap.5
+++ b/man5/repertoiremap.5
@@ -76,7 +76,7 @@ A mnemonic for the Euro sign can be defined as follows:
.BR charmap (5),
.BR locale (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/resolv.conf.5 b/man5/resolv.conf.5
index 2b7f40bbd..b758c748d 100644
--- a/man5/resolv.conf.5
+++ b/man5/resolv.conf.5
@@ -35,9 +35,10 @@ The resolver configuration file contains information that is read
by the resolver routines the first time they are invoked by a process.
The file is designed to be human readable and contains a list of
keywords with values that provide various types of resolver information.
-The configuration file is considered a trusted source of DNS information
-(e.g., DNSSEC AD-bit information will be returned unmodified from this
-source).
+The configuration file is considered a trusted source of DNS information;
+see the
+.B trust-ad
+option below for details.
.PP
If this file does not exist, only the name server on the local machine
will be queried, and the search list contains the local domain name
@@ -167,7 +168,8 @@ The value for this option is silently capped to 15.
.\" Since glibc 2.2
Sets the amount of time the resolver will wait for a
response from a remote name server before retrying the
-query via a different name server. This may
+query via a different name server.
+This may
.BR not
be the total time taken by any resolver API call and there is no
guarantee that a single resolver API call maps to a single timeout.
@@ -317,6 +319,34 @@ Sets
in
.IR _res.options .
This option disables automatic reloading of a changed configuration file.
+.TP
+.BR trust\-ad " (since glibc 2.31)"
+.\" 446997ff1433d33452b81dfa9e626b8dccf101a4
+Sets
+.BR RES_TRUSTAD
+in
+.IR _res.options .
+This option controls the AD bit behavior of the stub resolver.
+If a validating resolver sets the AD bit in a response,
+it indicates that the data in the response was verified according
+to the DNSSEC protocol.
+In order to rely on the AD bit, the local system has to
+trust both the DNSSEC-validating resolver and the network path to it,
+which is why an explicit opt-in is required.
+If the
+.B trust\-ad
+option is active, the stub resolver sets the AD bit in outgoing DNS
+queries (to enable AD bit support), and preserves the AD bit in responses.
+Without this option, the AD bit is not set in queries,
+and it is always removed from responses before they are returned to the
+application.
+This means that applications can trust the AD bit in responses if the
+.B trust\-ad
+option has been set correctly.
+.IP
+In glibc version 2.30 and earlier,
+the AD is not set automatically in queries,
+and is passed through unchanged to applications in responses.
.RE
.PP
The \fIsearch\fP keyword of a system's \fIresolv.conf\fP file can be
@@ -350,7 +380,7 @@ in the first column are treated as comments.
.PP
Name Server Operations Guide for BIND
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/rpc.5 b/man5/rpc.5
index f0605e549..a16be697c 100644
--- a/man5/rpc.5
+++ b/man5/rpc.5
@@ -80,7 +80,7 @@ RPC program number data base
.SH SEE ALSO
.BR getrpcent (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/securetty.5 b/man5/securetty.5
index 089275b09..d56aaf818 100644
--- a/man5/securetty.5
+++ b/man5/securetty.5
@@ -53,7 +53,7 @@ to restrict the terminals on which empty passwords are accepted.
.BR login.defs (5),
.BR pam_securetty (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/services.5 b/man5/services.5
index 21afcb0d8..e2d630deb 100644
--- a/man5/services.5
+++ b/man5/services.5
@@ -218,7 +218,7 @@ Definition of
.PP
Assigned Numbers RFC, most recently RFC\ 1700, (AKA STD0002).
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/shells.5 b/man5/shells.5
index 228660ae8..c9d0a12e2 100644
--- a/man5/shells.5
+++ b/man5/shells.5
@@ -58,7 +58,7 @@ may contain the following paths:
.BR getusershell (3),
.BR pam_shells (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/slabinfo.5 b/man5/slabinfo.5
index 0f97133ad..7c0b8d1ca 100644
--- a/man5/slabinfo.5
+++ b/man5/slabinfo.5
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH SLABINFO 5 2017-09-15 "" "Linux Programmer's Manual"
+.TH SLABINFO 5 2020-11-01 "" "Linux Programmer's Manual"
.SH NAME
slabinfo \- kernel slab allocator statistics
.SH SYNOPSIS
@@ -38,7 +38,6 @@ gives statistics on these caches.
The following (edited) output shows an example of the
contents of this file:
.PP
-.in 0
.EX
$ \fBsudo cat /proc/slabinfo\fP
slabinfo - version: 2.1
@@ -48,7 +47,6 @@ sighand_cache 355 405 2112 15 8 : tunables 0 0 0 : slabdata 27 27 0
kmalloc-8192 96 96 8192 4 8 : tunables 0 0 0 : slabdata 24 24 0
\&...
.EE
-.in
.PP
The first line of output includes a version number,
which allows an application that is reading the file to handle changes
@@ -97,7 +95,7 @@ lines of the following form to
.PP
.in +4n
.EX
-# \fBecho 'name limit batchcount sharedfactor' > /proc/slabinfo\fP
+# \fBecho \(aqname limit batchcount sharedfactor\(aq > /proc/slabinfo\fP
.EE
.in
.PP
@@ -239,7 +237,7 @@ The kernel source file
and
.IR tools/vm/slabinfo.c .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/sysfs.5 b/man5/sysfs.5
index f25ad4fa7..11a5e855b 100644
--- a/man5/sysfs.5
+++ b/man5/sysfs.5
@@ -298,7 +298,7 @@ and various other files in
and
.IR Documentation/*/sysfs.txt
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/termcap.5 b/man5/termcap.5
index 64baf918d..c1fb2d18a 100644
--- a/man5/termcap.5
+++ b/man5/termcap.5
@@ -473,7 +473,7 @@ library, if the capabilities are missing.
.BR termcap (3),
.BR terminfo (5)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/tmpfs.5 b/man5/tmpfs.5
index b10376cd7..19d376e0d 100644
--- a/man5/tmpfs.5
+++ b/man5/tmpfs.5
@@ -286,7 +286,7 @@ The kernel source files
and
.IR Documentation/admin-guide/mm/transhuge.rst .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/ttytype.5 b/man5/ttytype.5
index cf7b0a417..3611db984 100644
--- a/man5/ttytype.5
+++ b/man5/ttytype.5
@@ -71,7 +71,7 @@ vt320 ttys0
.BR agetty (8),
.BR mingetty (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/tzfile.5 b/man5/tzfile.5
index 762f05624..8f7290dd3 100644
--- a/man5/tzfile.5
+++ b/man5/tzfile.5
@@ -280,7 +280,7 @@ design goal has been that a reader can successfully use a TZif
file even if the file is of a later TZif version than what the
reader was designed for.
When complete compatibility was not achieved, an attempt was
-made to limit glitches to rarely-used timestamps, and to allow
+made to limit glitches to rarely used timestamps, and to allow
simple partial workarounds in writers designed to generate
new-version data useful even for older-version readers.
This section attempts to document these compatibility issues and
@@ -426,7 +426,7 @@ doi:10.17487/RFC8536
.\" This file is in the public domain, so clarified as of
.\" 1996-06-05 by Arthur David Olson.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man5/utmp.5 b/man5/utmp.5
index 2364310d9..9b12f5d5d 100644
--- a/man5/utmp.5
+++ b/man5/utmp.5
@@ -82,8 +82,8 @@ around; details depend on the version of libc):
#define UT_HOSTSIZE 256
struct exit_status { /* Type for ut_exit, below */
- short int e_termination; /* Process termination status */
- short int e_exit; /* Process exit status */
+ short e_termination; /* Process termination status */
+ short e_exit; /* Process exit status */
};
struct utmp {
@@ -353,7 +353,7 @@ ut.ut_tv.tv_usec = tv.tv_usec;
.BR logwtmp (3),
.BR updwtmp (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man6/intro.6 b/man6/intro.6
index 51006fc82..54f6298bc 100644
--- a/man6/intro.6
+++ b/man6/intro.6
@@ -35,7 +35,7 @@ Look at the header of the manual page source for the author(s) and copyright
conditions.
Note that these can be different from page to page!
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/address_families.7 b/man7/address_families.7
index daa4d489d..46884c0d1 100644
--- a/man7/address_families.7
+++ b/man7/address_families.7
@@ -408,7 +408,7 @@ in the Linux kernel source tree for details.
.BR socket (2),
.BR socket (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/aio.7 b/man7/aio.7
index fb3ea7d72..aa1ac4913 100644
--- a/man7/aio.7
+++ b/man7/aio.7
@@ -257,8 +257,6 @@ aio_return():
#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)
-#define errMsg(msg) do { perror(msg); } while (0)
-
struct ioRequest { /* Application\-defined structure for tracking
I/O requests */
int reqNum;
@@ -294,10 +292,8 @@ aioSigHandler(int sig, siginfo_t *si, void *ucontext)
int
main(int argc, char *argv[])
{
- struct ioRequest *ioList;
- struct aiocb *aiocbList;
struct sigaction sa;
- int s, j;
+ int s;
int numReqs; /* Total number of queued I/O requests */
int openReqs; /* Number of I/O requests still in progress */
@@ -311,11 +307,11 @@ main(int argc, char *argv[])
/* Allocate our arrays */
- ioList = calloc(numReqs, sizeof(struct ioRequest));
+ struct ioRequest *ioList = calloc(numReqs, sizeof(*ioList));
if (ioList == NULL)
errExit("calloc");
- aiocbList = calloc(numReqs, sizeof(struct aiocb));
+ struct aiocb *aiocbList = calloc(numReqs, sizeof(*aiocbList));
if (aiocbList == NULL)
errExit("calloc");
@@ -336,7 +332,7 @@ main(int argc, char *argv[])
/* Open each file specified on the command line, and queue
a read request on the resulting file descriptor */
- for (j = 0; j < numReqs; j++) {
+ for (int j = 0; j < numReqs; j++) {
ioList[j].reqNum = j;
ioList[j].status = EINPROGRESS;
ioList[j].aiocbp = &aiocbList[j];
@@ -379,7 +375,7 @@ main(int argc, char *argv[])
printf("got SIGQUIT; canceling I/O requests: \en");
- for (j = 0; j < numReqs; j++) {
+ for (int j = 0; j < numReqs; j++) {
if (ioList[j].status == EINPROGRESS) {
printf(" Request %d on descriptor %d:", j,
ioList[j].aiocbp\->aio_fildes);
@@ -392,7 +388,7 @@ main(int argc, char *argv[])
else if (s == AIO_ALLDONE)
printf("I/O all done\en");
else
- errMsg("aio_cancel");
+ perror("aio_cancel");
}
}
@@ -403,7 +399,7 @@ main(int argc, char *argv[])
in progress */
printf("aio_error():\en");
- for (j = 0; j < numReqs; j++) {
+ for (int j = 0; j < numReqs; j++) {
if (ioList[j].status == EINPROGRESS) {
printf(" for request %d (descriptor %d): ",
j, ioList[j].aiocbp\->aio_fildes);
@@ -420,7 +416,7 @@ main(int argc, char *argv[])
printf("Canceled\en");
break;
default:
- errMsg("aio_error");
+ perror("aio_error");
break;
}
@@ -435,7 +431,7 @@ main(int argc, char *argv[])
/* Check status return of all I/O requests */
printf("aio_return():\en");
- for (j = 0; j < numReqs; j++) {
+ for (int j = 0; j < numReqs; j++) {
ssize_t s;
s = aio_return(ioList[j].aiocbp);
@@ -468,7 +464,7 @@ Proceedings of the Linux Symposium, 2003,
.UR https://www.kernel.org/doc/ols/2003/ols2003\-pages\-351\-366.pdf
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/armscii-8.7 b/man7/armscii-8.7
index b7917be46..00f7a8334 100644
--- a/man7/armscii-8.7
+++ b/man7/armscii-8.7
@@ -137,7 +137,7 @@ _
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/arp.7 b/man7/arp.7
index a10980570..a7fc22393 100644
--- a/man7/arp.7
+++ b/man7/arp.7
@@ -308,7 +308,7 @@ RFC\ 2461 for a description of IPv6 neighbor discovery and the base
algorithms used.
Linux 2.2+ IPv4 ARP uses the IPv6 algorithms when applicable.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/ascii.7 b/man7/ascii.7
index fcbfa54ed..d69250a85 100644
--- a/man7/ascii.7
+++ b/man7/ascii.7
@@ -200,7 +200,7 @@ Standards Institute (USASI) in 1968.
.BR iso_8859\-16 (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/attributes.7 b/man7/attributes.7
index 238ba0b79..1374b520c 100644
--- a/man7/attributes.7
+++ b/man7/attributes.7
@@ -882,7 +882,7 @@ then the function can be regarded as safe.
.SH SEE ALSO
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/boot.7 b/man7/boot.7
index 132b2be8c..3cac547a4 100644
--- a/man7/boot.7
+++ b/man7/boot.7
@@ -228,7 +228,7 @@ the variable values.
.BR runlevel (8),
.BR shutdown (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/bootparam.7 b/man7/bootparam.7
index 070ce4fea..0f7fa1ada 100644
--- a/man7/bootparam.7
+++ b/man7/bootparam.7
@@ -680,7 +680,7 @@ lp=0.
For up-to-date information, see the kernel source file
.IR Documentation/admin-guide/kernel-parameters.txt .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/bpf-helpers.7 b/man7/bpf-helpers.7
index a274812c1..fd41fc3dd 100644
--- a/man7/bpf-helpers.7
+++ b/man7/bpf-helpers.7
@@ -31,34 +31,63 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.\" Copyright (C) All BPF authors and contributors from 2014 to present.
+.
.\" See git log include/uapi/linux/bpf.h in kernel tree for details.
-.\"
+.
+.\"
+.
.\" %%%LICENSE_START(VERBATIM)
+.
.\" Permission is granted to make and distribute verbatim copies of this
+.
.\" manual provided the copyright notice and this permission notice are
+.
.\" preserved on all copies.
-.\"
+.
+.\"
+.
.\" Permission is granted to copy and distribute modified versions of this
+.
.\" manual under the conditions for verbatim copying, provided that the
+.
.\" entire resulting derived work is distributed under the terms of a
+.
.\" permission notice identical to this one.
-.\"
+.
+.\"
+.
.\" Since the Linux kernel and libraries are constantly changing, this
+.
.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.
.\" responsibility for errors or omissions, or for damages resulting from
+.
.\" the use of the information contained herein. The author(s) may not
+.
.\" have taken the same level of care in the production of this manual,
+.
.\" which is licensed free of charge, as they might when working
+.
.\" professionally.
-.\"
+.
+.\"
+.
.\" Formatted or processed versions of this manual, if unaccompanied by
+.
.\" the source, must acknowledge the copyright and authors of this work.
+.
.\" %%%LICENSE_END
-.\"
+.
+.\"
+.
.\" Please do not edit this file. It was generated from the documentation
+.
.\" located in file include/uapi/linux/bpf.h of the Linux kernel sources
+.
.\" (helpers description), and from scripts/bpf_helpers_doc.py in the same
+.
.\" repository (header and footer).
+.
.SH DESCRIPTION
.sp
The extended Berkeley Packet Filter (eBPF) subsystem consists in programs
@@ -99,7 +128,7 @@ Map value associated to \fIkey\fP, or \fBNULL\fP if no entry was
found.
.UNINDENT
.TP
-.B \fBint bpf_map_update_elem(struct bpf_map *\fP\fImap\fP\fB, const void *\fP\fIkey\fP\fB, const void *\fP\fIvalue\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_map_update_elem(struct bpf_map *\fP\fImap\fP\fB, const void *\fP\fIkey\fP\fB, const void *\fP\fIvalue\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -125,7 +154,7 @@ elements always exist), the helper would return an error.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_map_delete_elem(struct bpf_map *\fP\fImap\fP\fB, const void *\fP\fIkey\fP\fB)\fP
+.B \fBlong bpf_map_delete_elem(struct bpf_map *\fP\fImap\fP\fB, const void *\fP\fIkey\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -135,7 +164,7 @@ Delete entry with \fIkey\fP from \fImap\fP\&.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_probe_read(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
+.B \fBlong bpf_probe_read(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -161,7 +190,7 @@ See: \fBclock_gettime\fP(\fBCLOCK_MONOTONIC\fP)
Current \fIktime\fP\&.
.UNINDENT
.TP
-.B \fBint bpf_trace_printk(const char *\fP\fIfmt\fP\fB, u32\fP \fIfmt_size\fP\fB, ...)\fP
+.B \fBlong bpf_trace_printk(const char *\fP\fIfmt\fP\fB, u32\fP \fIfmt_size\fP\fB, ...)\fP
.INDENT 7.0
.TP
.B Description
@@ -231,7 +260,7 @@ encounters an unknown specifier.
.sp
Also, note that \fBbpf_trace_printk\fP() is slow, and should
only be used for debugging purposes. For this reason, a notice
-bloc (spanning several lines) is printed to kernel logs and
+block (spanning several lines) is printed to kernel logs and
states that the helper should not be used "for production use"
the first time this helper is used (or more precisely, when
\fBtrace_printk\fP() buffers are allocated). For passing values
@@ -271,7 +300,7 @@ program.
The SMP id of the processor running the program.
.UNINDENT
.TP
-.B \fBint bpf_skb_store_bytes(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, const void *\fP\fIfrom\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_store_bytes(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, const void *\fP\fIfrom\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -291,7 +320,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_l3_csum_replace(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, u64\fP \fIfrom\fP\fB, u64\fP \fIto\fP\fB, u64\fP \fIsize\fP\fB)\fP
+.B \fBlong bpf_l3_csum_replace(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, u64\fP \fIfrom\fP\fB, u64\fP \fIto\fP\fB, u64\fP \fIsize\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -320,7 +349,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_l4_csum_replace(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, u64\fP \fIfrom\fP\fB, u64\fP \fIto\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_l4_csum_replace(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, u64\fP \fIfrom\fP\fB, u64\fP \fIto\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -356,7 +385,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_tail_call(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fIprog_array_map\fP\fB, u32\fP \fIindex\fP\fB)\fP
+.B \fBlong bpf_tail_call(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fIprog_array_map\fP\fB, u32\fP \fIindex\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -391,7 +420,7 @@ which is currently set to 32.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_clone_redirect(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIifindex\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_clone_redirect(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIifindex\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -437,7 +466,7 @@ A 64\-bit integer containing the current GID and UID, and
created as such: \fIcurrent_gid\fP \fB<< 32 |\fP \fIcurrent_uid\fP\&.
.UNINDENT
.TP
-.B \fBint bpf_get_current_comm(void *\fP\fIbuf\fP\fB, u32\fP \fIsize_of_buf\fP\fB)\fP
+.B \fBlong bpf_get_current_comm(void *\fP\fIbuf\fP\fB, u32\fP \fIsize_of_buf\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -482,7 +511,7 @@ the \fBCONFIG_CGROUP_NET_CLASSID\fP configuration option set to
The classid, or 0 for the default unconfigured classid.
.UNINDENT
.TP
-.B \fBint bpf_skb_vlan_push(struct sk_buff *\fP\fIskb\fP\fB, __be16\fP \fIvlan_proto\fP\fB, u16\fP \fIvlan_tci\fP\fB)\fP
+.B \fBlong bpf_skb_vlan_push(struct sk_buff *\fP\fIskb\fP\fB, __be16\fP \fIvlan_proto\fP\fB, u16\fP \fIvlan_tci\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -502,7 +531,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_vlan_pop(struct sk_buff *\fP\fIskb\fP\fB)\fP
+.B \fBlong bpf_skb_vlan_pop(struct sk_buff *\fP\fIskb\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -518,7 +547,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_get_tunnel_key(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_tunnel_key *\fP\fIkey\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_get_tunnel_key(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_tunnel_key *\fP\fIkey\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -578,7 +607,7 @@ Geneve, GRE or IP in IP (IPIP).
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_set_tunnel_key(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_tunnel_key *\fP\fIkey\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_set_tunnel_key(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_tunnel_key *\fP\fIkey\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -662,7 +691,7 @@ The value of the perf event counter read from the map, or a
negative error code in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_redirect(u32\fP \fIifindex\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_redirect(u32\fP \fIifindex\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -694,7 +723,7 @@ error.
.B Description
Retrieve the realm or the route, that is to say the
\fBtclassid\fP field of the destination for the \fIskb\fP\&. The
-indentifier retrieved is a user\-provided tag, similar to the
+identifier retrieved is a user\-provided tag, similar to the
one used with the net_cls cgroup (see description for
\fBbpf_get_cgroup_classid\fP() helper), but here this tag is
held by a route (a destination entry), not by a task.
@@ -716,7 +745,7 @@ The realm of the route for the packet associated to \fIskb\fP, or 0
if none was found.
.UNINDENT
.TP
-.B \fBint bpf_perf_event_output(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB)\fP
+.B \fBlong bpf_perf_event_output(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -769,7 +798,7 @@ A combination of both.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_load_bytes(const void *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, void *\fP\fIto\fP\fB, u32\fP \fIlen\fP\fB)\fP
+.B \fBlong bpf_skb_load_bytes(const void *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, void *\fP\fIto\fP\fB, u32\fP \fIlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -790,7 +819,7 @@ at once from a packet into the eBPF stack.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_get_stackid(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_get_stackid(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -881,7 +910,7 @@ The checksum result, or a negative error code in case of
failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_get_tunnel_opt(struct sk_buff *\fP\fIskb\fP\fB, void *\fP\fIopt\fP\fB, u32\fP \fIsize\fP\fB)\fP
+.B \fBlong bpf_skb_get_tunnel_opt(struct sk_buff *\fP\fIskb\fP\fB, void *\fP\fIopt\fP\fB, u32\fP \fIsize\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -903,7 +932,7 @@ headers.
The size of the option data retrieved.
.UNINDENT
.TP
-.B \fBint bpf_skb_set_tunnel_opt(struct sk_buff *\fP\fIskb\fP\fB, void *\fP\fIopt\fP\fB, u32\fP \fIsize\fP\fB)\fP
+.B \fBlong bpf_skb_set_tunnel_opt(struct sk_buff *\fP\fIskb\fP\fB, void *\fP\fIopt\fP\fB, u32\fP \fIsize\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -917,7 +946,7 @@ helper for additional information.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_change_proto(struct sk_buff *\fP\fIskb\fP\fB, __be16\fP \fIproto\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_change_proto(struct sk_buff *\fP\fIskb\fP\fB, __be16\fP \fIproto\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -947,7 +976,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_change_type(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fItype\fP\fB)\fP
+.B \fBlong bpf_skb_change_type(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fItype\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -982,7 +1011,7 @@ Send packet to someone else.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_under_cgroup(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIindex\fP\fB)\fP
+.B \fBlong bpf_skb_under_cgroup(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIindex\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1028,7 +1057,7 @@ The 32\-bit hash.
A pointer to the current task struct.
.UNINDENT
.TP
-.B \fBint bpf_probe_write_user(void *\fP\fIdst\fP\fB, const void *\fP\fIsrc\fP\fB, u32\fP \fIlen\fP\fB)\fP
+.B \fBlong bpf_probe_write_user(void *\fP\fIdst\fP\fB, const void *\fP\fIsrc\fP\fB, u32\fP \fIlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1051,7 +1080,7 @@ logs.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_current_task_under_cgroup(struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIindex\fP\fB)\fP
+.B \fBlong bpf_current_task_under_cgroup(struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIindex\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1071,7 +1100,7 @@ A negative error code, if an error occurred.
.UNINDENT
.UNINDENT
.TP
-.B \fBint bpf_skb_change_tail(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_change_tail(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1099,7 +1128,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_pull_data(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIlen\fP\fB)\fP
+.B \fBlong bpf_skb_pull_data(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1166,7 +1195,7 @@ recalculation the next time the kernel tries to access this
hash or when the \fBbpf_get_hash_recalc\fP() helper is called.
.UNINDENT
.TP
-.B \fBint bpf_get_numa_node_id(void)\fP
+.B \fBlong bpf_get_numa_node_id(void)\fP
.INDENT 7.0
.TP
.B Description
@@ -1181,7 +1210,7 @@ similarly to \fBbpf_get_smp_processor_id\fP().
The id of current NUMA node.
.UNINDENT
.TP
-.B \fBint bpf_skb_change_head(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_change_head(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1206,7 +1235,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_xdp_adjust_head(struct xdp_buff *\fP\fIxdp_md\fP\fB, int\fP \fIdelta\fP\fB)\fP
+.B \fBlong bpf_xdp_adjust_head(struct xdp_buff *\fP\fIxdp_md\fP\fB, int\fP \fIdelta\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1225,7 +1254,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_probe_read_str(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
+.B \fBlong bpf_probe_read_str(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1292,7 +1321,7 @@ is returned (note that \fBoverflowuid\fP might also be the actual
UID value for the socket).
.UNINDENT
.TP
-.B \fBu32 bpf_set_hash(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIhash\fP\fB)\fP
+.B \fBlong bpf_set_hash(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIhash\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1303,7 +1332,7 @@ to value \fIhash\fP\&.
0
.UNINDENT
.TP
-.B \fBint bpf_setsockopt(void *\fP\fIbpf_socket\fP\fB, int\fP \fIlevel\fP\fB, int\fP \fIoptname\fP\fB, void *\fP\fIoptval\fP\fB, int\fP \fIoptlen\fP\fB)\fP
+.B \fBlong bpf_setsockopt(void *\fP\fIbpf_socket\fP\fB, int\fP \fIlevel\fP\fB, int\fP \fIoptname\fP\fB, void *\fP\fIoptval\fP\fB, int\fP \fIoptlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1328,11 +1357,14 @@ It supports the following \fIlevel\fPs:
.IP \(bu 2
\fBSOL_SOCKET\fP, which supports the following \fIoptname\fPs:
\fBSO_RCVBUF\fP, \fBSO_SNDBUF\fP, \fBSO_MAX_PACING_RATE\fP,
-\fBSO_PRIORITY\fP, \fBSO_RCVLOWAT\fP, \fBSO_MARK\fP\&.
+\fBSO_PRIORITY\fP, \fBSO_RCVLOWAT\fP, \fBSO_MARK\fP,
+\fBSO_BINDTODEVICE\fP, \fBSO_KEEPALIVE\fP\&.
.IP \(bu 2
\fBIPPROTO_TCP\fP, which supports the following \fIoptname\fPs:
\fBTCP_CONGESTION\fP, \fBTCP_BPF_IW\fP,
-\fBTCP_BPF_SNDCWND_CLAMP\fP\&.
+\fBTCP_BPF_SNDCWND_CLAMP\fP, \fBTCP_SAVE_SYN\fP,
+\fBTCP_KEEPIDLE\fP, \fBTCP_KEEPINTVL\fP, \fBTCP_KEEPCNT\fP,
+\fBTCP_SYNCNT\fP, \fBTCP_USER_TIMEOUT\fP\&.
.IP \(bu 2
\fBIPPROTO_IP\fP, which supports \fIoptname\fP \fBIP_TOS\fP\&.
.IP \(bu 2
@@ -1343,7 +1375,7 @@ It supports the following \fIlevel\fPs:
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_adjust_room(struct sk_buff *\fP\fIskb\fP\fB, s32\fP \fIlen_diff\fP\fB, u32\fP \fImode\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_adjust_room(struct sk_buff *\fP\fIskb\fP\fB, s32\fP \fIlen_diff\fP\fB, u32\fP \fImode\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1399,7 +1431,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_redirect_map(struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_redirect_map(struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1424,7 +1456,7 @@ to an ifindex, but doesn\(aqt require a map to do so.
of the \fIflags\fP argument on error.
.UNINDENT
.TP
-.B \fBint bpf_sk_redirect_map(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_sk_redirect_map(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1439,7 +1471,7 @@ egress path otherwise). This is the only flag supported for now.
\fBSK_PASS\fP on success, or \fBSK_DROP\fP on error.
.UNINDENT
.TP
-.B \fBint bpf_sock_map_update(struct bpf_sock_ops *\fP\fIskops\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_sock_map_update(struct bpf_sock_ops *\fP\fIskops\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1466,7 +1498,7 @@ already attached to eBPF programs, this results in an error.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_xdp_adjust_meta(struct xdp_buff *\fP\fIxdp_md\fP\fB, int\fP \fIdelta\fP\fB)\fP
+.B \fBlong bpf_xdp_adjust_meta(struct xdp_buff *\fP\fIxdp_md\fP\fB, int\fP \fIdelta\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1499,7 +1531,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_perf_event_read_value(struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, struct bpf_perf_event_value *\fP\fIbuf\fP\fB, u32\fP \fIbuf_size\fP\fB)\fP
+.B \fBlong bpf_perf_event_read_value(struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, struct bpf_perf_event_value *\fP\fIbuf\fP\fB, u32\fP \fIbuf_size\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1558,7 +1590,7 @@ value and do the calculation inside the eBPF program.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_perf_prog_read_value(struct bpf_perf_event_data *\fP\fIctx\fP\fB, struct bpf_perf_event_value *\fP\fIbuf\fP\fB, u32\fP \fIbuf_size\fP\fB)\fP
+.B \fBlong bpf_perf_prog_read_value(struct bpf_perf_event_data *\fP\fIctx\fP\fB, struct bpf_perf_event_value *\fP\fIbuf\fP\fB, u32\fP \fIbuf_size\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1573,7 +1605,7 @@ more details).
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_getsockopt(void *\fP\fIbpf_socket\fP\fB, int\fP \fIlevel\fP\fB, int\fP \fIoptname\fP\fB, void *\fP\fIoptval\fP\fB, int\fP \fIoptlen\fP\fB)\fP
+.B \fBlong bpf_getsockopt(void *\fP\fIbpf_socket\fP\fB, int\fP \fIlevel\fP\fB, int\fP \fIoptname\fP\fB, void *\fP\fIoptval\fP\fB, int\fP \fIoptlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1609,7 +1641,7 @@ It supports the following \fIlevel\fPs:
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_override_return(struct pt_regs *\fP\fIregs\fP\fB, u64\fP \fIrc\fP\fB)\fP
+.B \fBlong bpf_override_return(struct pt_regs *\fP\fIregs\fP\fB, u64\fP \fIrc\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1638,7 +1670,7 @@ x86 architecture is the only one to support this feature.
0
.UNINDENT
.TP
-.B \fBint bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *\fP\fIbpf_sock\fP\fB, int\fP \fIargval\fP\fB)\fP
+.B \fBlong bpf_sock_ops_cb_flags_set(struct bpf_sock_ops *\fP\fIbpf_sock\fP\fB, int\fP \fIargval\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1674,7 +1706,7 @@ callback:
.INDENT 7.0
.TP
.B \fBbpf_sock_ops_cb_flags_set(bpf_sock,\fP
-\fBbpf_sock\->bpf_sock_ops_cb_flags & \(tiBPF_SOCK_OPS_RTO_CB_FLAG)\fP
+\fBbpf_sock\->bpf_sock_ops_cb_flags & ~BPF_SOCK_OPS_RTO_CB_FLAG)\fP
.UNINDENT
.sp
Here are some examples of where one could call such eBPF
@@ -1699,7 +1731,7 @@ be set is returned (which comes down to 0 if all bits were set
as required).
.UNINDENT
.TP
-.B \fBint bpf_msg_redirect_map(struct sk_msg_buff *\fP\fImsg\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_msg_redirect_map(struct sk_msg_buff *\fP\fImsg\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u32\fP \fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1717,7 +1749,7 @@ egress path otherwise). This is the only flag supported for now.
\fBSK_PASS\fP on success, or \fBSK_DROP\fP on error.
.UNINDENT
.TP
-.B \fBint bpf_msg_apply_bytes(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIbytes\fP\fB)\fP
+.B \fBlong bpf_msg_apply_bytes(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIbytes\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1758,7 +1790,7 @@ being buffered for \fIbytes\fP and is sent as it is received.
0
.UNINDENT
.TP
-.B \fBint bpf_msg_cork_bytes(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIbytes\fP\fB)\fP
+.B \fBlong bpf_msg_cork_bytes(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIbytes\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1780,7 +1812,7 @@ been accumulated.
0
.UNINDENT
.TP
-.B \fBint bpf_msg_pull_data(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIstart\fP\fB, u32\fP \fIend\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_msg_pull_data(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIstart\fP\fB, u32\fP \fIend\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1814,7 +1846,7 @@ be left at zero.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_bind(struct bpf_sock_addr *\fP\fIctx\fP\fB, struct sockaddr *\fP\fIaddr\fP\fB, int\fP \fIaddr_len\fP\fB)\fP
+.B \fBlong bpf_bind(struct bpf_sock_addr *\fP\fIctx\fP\fB, struct sockaddr *\fP\fIaddr\fP\fB, int\fP \fIaddr_len\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1836,7 +1868,7 @@ lead to degraded performance.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_xdp_adjust_tail(struct xdp_buff *\fP\fIxdp_md\fP\fB, int\fP \fIdelta\fP\fB)\fP
+.B \fBlong bpf_xdp_adjust_tail(struct xdp_buff *\fP\fIxdp_md\fP\fB, int\fP \fIdelta\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1854,7 +1886,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_get_xfrm_state(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIindex\fP\fB, struct bpf_xfrm_state *\fP\fIxfrm_state\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_skb_get_xfrm_state(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIindex\fP\fB, struct bpf_xfrm_state *\fP\fIxfrm_state\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1874,7 +1906,7 @@ This helper is available only if the kernel was compiled with
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_get_stack(void *\fP\fIctx\fP\fB, void *\fP\fIbuf\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_get_stack(void *\fP\fIctx\fP\fB, void *\fP\fIbuf\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1920,7 +1952,7 @@ A non\-negative value equal to or less than \fIsize\fP on success,
or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_load_bytes_relative(const void *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, void *\fP\fIto\fP\fB, u32\fP \fIlen\fP\fB, u32\fP \fIstart_header\fP\fB)\fP
+.B \fBlong bpf_skb_load_bytes_relative(const void *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, void *\fP\fIto\fP\fB, u32\fP \fIlen\fP\fB, u32\fP \fIstart_header\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1949,7 +1981,7 @@ is not available.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_fib_lookup(void *\fP\fIctx\fP\fB, struct bpf_fib_lookup *\fP\fIparams\fP\fB, int\fP \fIplen\fP\fB, u32\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_fib_lookup(void *\fP\fIctx\fP\fB, struct bpf_fib_lookup *\fP\fIparams\fP\fB, int\fP \fIplen\fP\fB, u32\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -1992,7 +2024,7 @@ packet is not forwarded or needs assist from full stack
.UNINDENT
.UNINDENT
.TP
-.B \fBint bpf_sock_hash_update(struct bpf_sock_ops *\fP\fIskops\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_sock_hash_update(struct bpf_sock_ops *\fP\fIskops\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2019,7 +2051,7 @@ already attached to eBPF programs, this results in an error.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_msg_redirect_hash(struct sk_msg_buff *\fP\fImsg\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_msg_redirect_hash(struct sk_msg_buff *\fP\fImsg\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2037,13 +2069,13 @@ egress path otherwise). This is the only flag supported for now.
\fBSK_PASS\fP on success, or \fBSK_DROP\fP on error.
.UNINDENT
.TP
-.B \fBint bpf_sk_redirect_hash(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_sk_redirect_hash(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
This helper is used in programs implementing policies at the
skb socket level. If the sk_buff \fIskb\fP is allowed to pass (i.e.
-if the verdeict eBPF program returns \fBSK_PASS\fP), redirect it
+if the verdict eBPF program returns \fBSK_PASS\fP), redirect it
to the socket referenced by \fImap\fP (of type
\fBBPF_MAP_TYPE_SOCKHASH\fP) using hash \fIkey\fP\&. Both ingress and
egress interfaces can be used for redirection. The
@@ -2055,7 +2087,7 @@ egress otherwise). This is the only flag supported for now.
\fBSK_PASS\fP on success, or \fBSK_DROP\fP on error.
.UNINDENT
.TP
-.B \fBint bpf_lwt_push_encap(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fItype\fP\fB, void *\fP\fIhdr\fP\fB, u32\fP \fIlen\fP\fB)\fP
+.B \fBlong bpf_lwt_push_encap(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fItype\fP\fB, void *\fP\fIhdr\fP\fB, u32\fP \fIlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2100,7 +2132,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_lwt_seg6_store_bytes(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, const void *\fP\fIfrom\fP\fB, u32\fP \fIlen\fP\fB)\fP
+.B \fBlong bpf_lwt_seg6_store_bytes(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, const void *\fP\fIfrom\fP\fB, u32\fP \fIlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2119,7 +2151,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_lwt_seg6_adjust_srh(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, s32\fP \fIdelta\fP\fB)\fP
+.B \fBlong bpf_lwt_seg6_adjust_srh(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIoffset\fP\fB, s32\fP \fIdelta\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2139,7 +2171,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_lwt_seg6_action(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIaction\fP\fB, void *\fP\fIparam\fP\fB, u32\fP \fIparam_len\fP\fB)\fP
+.B \fBlong bpf_lwt_seg6_action(struct sk_buff *\fP\fIskb\fP\fB, u32\fP \fIaction\fP\fB, void *\fP\fIparam\fP\fB, u32\fP \fIparam_len\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2177,7 +2209,7 @@ direct packet access.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_rc_repeat(void *\fP\fIctx\fP\fB)\fP
+.B \fBlong bpf_rc_repeat(void *\fP\fIctx\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2200,7 +2232,7 @@ the \fBCONFIG_BPF_LIRC_MODE2\fP configuration option set to
0
.UNINDENT
.TP
-.B \fBint bpf_rc_keydown(void *\fP\fIctx\fP\fB, u32\fP \fIprotocol\fP\fB, u64\fP \fIscancode\fP\fB, u32\fP \fItoggle\fP\fB)\fP
+.B \fBlong bpf_rc_keydown(void *\fP\fIctx\fP\fB, u32\fP \fIprotocol\fP\fB, u64\fP \fIscancode\fP\fB, u32\fP \fItoggle\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2280,7 +2312,7 @@ the shared data.
A pointer to the local storage area.
.UNINDENT
.TP
-.B \fBint bpf_sk_select_reuseport(struct sk_reuseport_md *\fP\fIreuse\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_sk_select_reuseport(struct sk_reuseport_md *\fP\fIreuse\fP\fB, struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIkey\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2338,7 +2370,7 @@ Look for an IPv6 socket.
.UNINDENT
.sp
If the \fInetns\fP is a negative signed 32\-bit integer, then the
-socket lookup table in the netns associated with the \fIctx\fP will
+socket lookup table in the netns associated with the \fIctx\fP
will be used. For the TC hooks, this is the netns of the device
in the skb. For socket hooks, this is the netns of the socket.
If \fInetns\fP is any other signed 32\-bit value greater than or
@@ -2382,7 +2414,7 @@ Look for an IPv6 socket.
.UNINDENT
.sp
If the \fInetns\fP is a negative signed 32\-bit integer, then the
-socket lookup table in the netns associated with the \fIctx\fP will
+socket lookup table in the netns associated with the \fIctx\fP
will be used. For the TC hooks, this is the netns of the device
in the skb. For socket hooks, this is the netns of the socket.
If \fInetns\fP is any other signed 32\-bit value greater than or
@@ -2403,7 +2435,7 @@ result is from \fIreuse\fP\fB\->socks\fP[] using the hash of the
tuple.
.UNINDENT
.TP
-.B \fBint bpf_sk_release(struct bpf_sock *\fP\fIsock\fP\fB)\fP
+.B \fBlong bpf_sk_release(struct bpf_sock *\fP\fIsock\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2415,7 +2447,7 @@ non\-\fBNULL\fP pointer that was returned from
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_map_push_elem(struct bpf_map *\fP\fImap\fP\fB, const void *\fP\fIvalue\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_map_push_elem(struct bpf_map *\fP\fImap\fP\fB, const void *\fP\fIvalue\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2431,7 +2463,7 @@ removed to make room for this.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_map_pop_elem(struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIvalue\fP\fB)\fP
+.B \fBlong bpf_map_pop_elem(struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIvalue\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2441,7 +2473,7 @@ Pop an element from \fImap\fP\&.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_map_peek_elem(struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIvalue\fP\fB)\fP
+.B \fBlong bpf_map_peek_elem(struct bpf_map *\fP\fImap\fP\fB, void *\fP\fIvalue\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2451,7 +2483,7 @@ Get an element from \fImap\fP without removing it.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_msg_push_data(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIstart\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_msg_push_data(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIstart\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2471,7 +2503,7 @@ error and BPF programs will need to handle them.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_msg_pop_data(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIstart\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_msg_pop_data(struct sk_msg_buff *\fP\fImsg\fP\fB, u32\fP \fIstart\fP\fB, u32\fP \fIlen\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2487,7 +2519,7 @@ payload and/or \fIpop\fP value being to large.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_rc_pointer_rel(void *\fP\fIctx\fP\fB, s32\fP \fIrel_x\fP\fB, s32\fP \fIrel_y\fP\fB)\fP
+.B \fBlong bpf_rc_pointer_rel(void *\fP\fIctx\fP\fB, s32\fP \fIrel_x\fP\fB, s32\fP \fIrel_y\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2505,7 +2537,7 @@ the \fBCONFIG_BPF_LIRC_MODE2\fP configuration option set to
0
.UNINDENT
.TP
-.B \fBint bpf_spin_lock(struct bpf_spin_lock *\fP\fIlock\fP\fB)\fP
+.B \fBlong bpf_spin_lock(struct bpf_spin_lock *\fP\fIlock\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2574,7 +2606,7 @@ Tracing programs and socket filter programs cannot use
0
.UNINDENT
.TP
-.B \fBint bpf_spin_unlock(struct bpf_spin_lock *\fP\fIlock\fP\fB)\fP
+.B \fBlong bpf_spin_unlock(struct bpf_spin_lock *\fP\fIlock\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2609,7 +2641,7 @@ A \fBstruct bpf_tcp_sock\fP pointer on success, or \fBNULL\fP in
case of failure.
.UNINDENT
.TP
-.B \fBint bpf_skb_ecn_set_ce(struct sk_buff *\fP\fIskb\fP\fB)\fP
+.B \fBlong bpf_skb_ecn_set_ce(struct sk_buff *\fP\fIskb\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2658,7 +2690,7 @@ result is from \fIreuse\fP\fB\->socks\fP[] using the hash of the
tuple.
.UNINDENT
.TP
-.B \fBint bpf_tcp_check_syncookie(struct bpf_sock *\fP\fIsk\fP\fB, void *\fP\fIiph\fP\fB, u32\fP \fIiph_len\fP\fB, struct tcphdr *\fP\fIth\fP\fB, u32\fP \fIth_len\fP\fB)\fP
+.B \fBlong bpf_tcp_check_syncookie(struct bpf_sock *\fP\fIsk\fP\fB, void *\fP\fIiph\fP\fB, u32\fP \fIiph_len\fP\fB, struct tcphdr *\fP\fIth\fP\fB, u32\fP \fIth_len\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2677,7 +2709,7 @@ contains \fBsizeof\fP(\fBstruct tcphdr\fP).
error otherwise.
.UNINDENT
.TP
-.B \fBint bpf_sysctl_get_name(struct bpf_sysctl *\fP\fIctx\fP\fB, char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_sysctl_get_name(struct bpf_sysctl *\fP\fIctx\fP\fB, char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2697,7 +2729,7 @@ Number of character copied (not including the trailing NUL).
truncated name in this case).
.UNINDENT
.TP
-.B \fBint bpf_sysctl_get_current_value(struct bpf_sysctl *\fP\fIctx\fP\fB, char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB)\fP
+.B \fBlong bpf_sysctl_get_current_value(struct bpf_sysctl *\fP\fIctx\fP\fB, char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2720,7 +2752,7 @@ truncated name in this case).
sysctl is uninitialized and read returns \-EIO for it.
.UNINDENT
.TP
-.B \fBint bpf_sysctl_get_new_value(struct bpf_sysctl *\fP\fIctx\fP\fB, char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB)\fP
+.B \fBlong bpf_sysctl_get_new_value(struct bpf_sysctl *\fP\fIctx\fP\fB, char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2741,7 +2773,7 @@ truncated name in this case).
\fB\-EINVAL\fP if sysctl is being read.
.UNINDENT
.TP
-.B \fBint bpf_sysctl_set_new_value(struct bpf_sysctl *\fP\fIctx\fP\fB, const char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB)\fP
+.B \fBlong bpf_sysctl_set_new_value(struct bpf_sysctl *\fP\fIctx\fP\fB, const char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2762,7 +2794,7 @@ the whole sysctl value file position should be set to zero.
\fB\-EINVAL\fP if sysctl is being read.
.UNINDENT
.TP
-.B \fBint bpf_strtol(const char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB, u64\fP \fIflags\fP\fB, long *\fP\fIres\fP\fB)\fP
+.B \fBlong bpf_strtol(const char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB, u64\fP \fIflags\fP\fB, long *\fP\fIres\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2790,7 +2822,7 @@ was provided.
\fB\-ERANGE\fP if resulting value was out of range.
.UNINDENT
.TP
-.B \fBint bpf_strtoul(const char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB, u64\fP \fIflags\fP\fB, unsigned long *\fP\fIres\fP\fB)\fP
+.B \fBlong bpf_strtoul(const char *\fP\fIbuf\fP\fB, size_t\fP \fIbuf_len\fP\fB, u64\fP \fIflags\fP\fB, unsigned long *\fP\fIres\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2849,7 +2881,7 @@ A bpf\-local\-storage pointer is returned on success.
a new bpf\-local\-storage.
.UNINDENT
.TP
-.B \fBint bpf_sk_storage_delete(struct bpf_map *\fP\fImap\fP\fB, struct bpf_sock *\fP\fIsk\fP\fB)\fP
+.B \fBlong bpf_sk_storage_delete(struct bpf_map *\fP\fImap\fP\fB, struct bpf_sock *\fP\fIsk\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2861,7 +2893,7 @@ Delete a bpf\-local\-storage from a \fIsk\fP\&.
\fB\-ENOENT\fP if the bpf\-local\-storage cannot be found.
.UNINDENT
.TP
-.B \fBint bpf_send_signal(u32\fP \fIsig\fP\fB)\fP
+.B \fBlong bpf_send_signal(u32\fP \fIsig\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2910,7 +2942,7 @@ On failure, the returned value is one of the following:
\fB\-EPROTONOSUPPORT\fP IP packet version is not 4 or 6
.UNINDENT
.TP
-.B \fBint bpf_skb_output(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB)\fP
+.B \fBlong bpf_skb_output(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2938,7 +2970,7 @@ restricted to raw_tracepoint bpf programs.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_probe_read_user(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
+.B \fBlong bpf_probe_read_user(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2949,7 +2981,7 @@ Safely attempt to read \fIsize\fP bytes from user space address
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_probe_read_kernel(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
+.B \fBlong bpf_probe_read_kernel(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -2960,7 +2992,7 @@ Safely attempt to read \fIsize\fP bytes from kernel space address
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_probe_read_user_str(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
+.B \fBlong bpf_probe_read_user_str(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3013,7 +3045,7 @@ including the trailing NUL character. On error, a negative
value.
.UNINDENT
.TP
-.B \fBint bpf_probe_read_kernel_str(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
+.B \fBlong bpf_probe_read_kernel_str(void *\fP\fIdst\fP\fB, u32\fP \fIsize\fP\fB, const void *\fP\fIunsafe_ptr\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3025,7 +3057,7 @@ On success, the strictly positive length of the string, including
the trailing NUL character. On error, a negative value.
.UNINDENT
.TP
-.B \fBint bpf_tcp_send_ack(void *\fP\fItp\fP\fB, u32\fP \fIrcv_nxt\fP\fB)\fP
+.B \fBlong bpf_tcp_send_ack(void *\fP\fItp\fP\fB, u32\fP \fIrcv_nxt\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3036,7 +3068,7 @@ Send out a tcp\-ack. \fItp\fP is the in\-kernel struct \fBtcp_sock\fP\&.
0 on success, or a negative error in case of failure.
.UNINDENT
.TP
-.B \fBint bpf_send_signal_thread(u32\fP \fIsig\fP\fB)\fP
+.B \fBlong bpf_send_signal_thread(u32\fP \fIsig\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3064,7 +3096,7 @@ Obtain the 64bit jiffies
The 64 bit jiffies
.UNINDENT
.TP
-.B \fBint bpf_read_branch_records(struct bpf_perf_event_data *\fP\fIctx\fP\fB, void *\fP\fIbuf\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_read_branch_records(struct bpf_perf_event_data *\fP\fIctx\fP\fB, void *\fP\fIbuf\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3087,7 +3119,7 @@ of \fBsizeof\fP(\fBstruct perf_branch_entry\fP).
\fB\-ENOENT\fP if architecture does not support branch records.
.UNINDENT
.TP
-.B \fBint bpf_get_ns_current_pid_tgid(u64\fP \fIdev\fP\fB, u64\fP \fIino\fP\fB, struct bpf_pidns_info *\fP\fInsdata\fP\fB, u32\fP \fIsize\fP\fB)\fP
+.B \fBlong bpf_get_ns_current_pid_tgid(u64\fP \fIdev\fP\fB, u64\fP \fIino\fP\fB, struct bpf_pidns_info *\fP\fInsdata\fP\fB, u32\fP \fIsize\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3103,7 +3135,7 @@ with nsfs of current task, or if dev conversion to dev_t lost high bits.
\fB\-ENOENT\fP if pidns does not exists for the current task.
.UNINDENT
.TP
-.B \fBint bpf_xdp_output(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB)\fP
+.B \fBlong bpf_xdp_output(void *\fP\fIctx\fP\fB, struct bpf_map *\fP\fImap\fP\fB, u64\fP \fIflags\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3170,10 +3202,14 @@ The format of returned id and helper limitations are same as in
The id is returned or 0 in case the id could not be retrieved.
.UNINDENT
.TP
-.B \fBint bpf_sk_assign(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_sock *\fP\fIsk\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_sk_assign(struct sk_buff *\fP\fIskb\fP\fB, struct bpf_sock *\fP\fIsk\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
+Helper is overloaded depending on BPF program type. This
+description applies to \fBBPF_PROG_TYPE_SCHED_CLS\fP and
+\fBBPF_PROG_TYPE_SCHED_ACT\fP programs.
+.sp
Assign the \fIsk\fP to the \fIskb\fP\&. When combined with appropriate
routing configuration to receive the packet towards the socket,
will cause \fIskb\fP to be delivered to the specified socket.
@@ -3201,6 +3237,63 @@ a call from outside of TC ingress.
(reuseport).
.UNINDENT
.TP
+.B \fBlong bpf_sk_assign(struct bpf_sk_lookup *\fP\fIctx\fP\fB, struct bpf_sock *\fP\fIsk\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.INDENT 7.0
+.TP
+.B Description
+Helper is overloaded depending on BPF program type. This
+description applies to \fBBPF_PROG_TYPE_SK_LOOKUP\fP programs.
+.sp
+Select the \fIsk\fP as a result of a socket lookup.
+.sp
+For the operation to succeed passed socket must be compatible
+with the packet description provided by the \fIctx\fP object.
+.sp
+L4 protocol (\fBIPPROTO_TCP\fP or \fBIPPROTO_UDP\fP) must
+be an exact match. While IP family (\fBAF_INET\fP or
+\fBAF_INET6\fP) must be compatible, that is IPv6 sockets
+that are not v6\-only can be selected for IPv4 packets.
+.sp
+Only TCP listeners and UDP unconnected sockets can be
+selected. \fIsk\fP can also be NULL to reset any previous
+selection.
+.sp
+\fIflags\fP argument can combination of following values:
+.INDENT 7.0
+.IP \(bu 2
+\fBBPF_SK_LOOKUP_F_REPLACE\fP to override the previous
+socket selection, potentially done by a BPF program
+that ran before us.
+.IP \(bu 2
+\fBBPF_SK_LOOKUP_F_NO_REUSEPORT\fP to skip
+load\-balancing within reuseport group for the socket
+being selected.
+.UNINDENT
+.sp
+On success \fIctx\->sk\fP will point to the selected socket.
+.TP
+.B Return
+0 on success, or a negative errno in case of failure.
+.INDENT 7.0
+.IP \(bu 2
+\fB\-EAFNOSUPPORT\fP if socket family (\fIsk\->family\fP) is
+not compatible with packet family (\fIctx\->family\fP).
+.IP \(bu 2
+\fB\-EEXIST\fP if socket has been already selected,
+potentially by another program, and
+\fBBPF_SK_LOOKUP_F_REPLACE\fP flag was not specified.
+.IP \(bu 2
+\fB\-EINVAL\fP if unsupported flags were specified.
+.IP \(bu 2
+\fB\-EPROTOTYPE\fP if socket L4 protocol
+(\fIsk\->protocol\fP) doesn\(aqt match packet protocol
+(\fIctx\->protocol\fP).
+.IP \(bu 2
+\fB\-ESOCKTNOSUPPORT\fP if socket is not in allowed
+state (TCP listening or UDP unconnected).
+.UNINDENT
+.UNINDENT
+.TP
.B \fBu64 bpf_ktime_get_boot_ns(void)\fP
.INDENT 7.0
.TP
@@ -3213,7 +3306,7 @@ See: \fBclock_gettime\fP(\fBCLOCK_BOOTTIME\fP)
Current \fIktime\fP\&.
.UNINDENT
.TP
-.B \fBint bpf_seq_printf(struct seq_file *\fP\fIm\fP\fB, const char *\fP\fIfmt\fP\fB, u32\fP \fIfmt_size\fP\fB, const void *\fP\fIdata\fP\fB, u32\fP \fIdata_len\fP\fB)\fP
+.B \fBlong bpf_seq_printf(struct seq_file *\fP\fIm\fP\fB, const char *\fP\fIfmt\fP\fB, u32\fP \fIfmt_size\fP\fB, const void *\fP\fIdata\fP\fB, u32\fP \fIdata_len\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3246,7 +3339,7 @@ by returning 1 from bpf program.
\fB\-EOVERFLOW\fP if an overflow happened: The same object will be tried again.
.UNINDENT
.TP
-.B \fBint bpf_seq_write(struct seq_file *\fP\fIm\fP\fB, const void *\fP\fIdata\fP\fB, u32\fP \fIlen\fP\fB)\fP
+.B \fBlong bpf_seq_write(struct seq_file *\fP\fIm\fP\fB, const void *\fP\fIdata\fP\fB, u32\fP \fIlen\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3300,19 +3393,18 @@ The format of returned id and helper limitations are same as in
The id is returned or 0 in case the id could not be retrieved.
.UNINDENT
.TP
-.B \fBvoid *bpf_ringbuf_output(void *\fP\fIringbuf\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.B \fBlong bpf_ringbuf_output(void *\fP\fIringbuf\fP\fB, void *\fP\fIdata\fP\fB, u64\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
Copy \fIsize\fP bytes from \fIdata\fP into a ring buffer \fIringbuf\fP\&.
-If BPF_RB_NO_WAKEUP is specified in \fIflags\fP, no notification of
-new data availability is sent.
-IF BPF_RB_FORCE_WAKEUP is specified in \fIflags\fP, notification of
-new data availability is sent unconditionally.
+If \fBBPF_RB_NO_WAKEUP\fP is specified in \fIflags\fP, no notification
+of new data availability is sent.
+If \fBBPF_RB_FORCE_WAKEUP\fP is specified in \fIflags\fP, notification
+of new data availability is sent unconditionally.
.TP
.B Return
-0, on success;
-< 0, on error.
+0 on success, or a negative error in case of failure.
.UNINDENT
.TP
.B \fBvoid *bpf_ringbuf_reserve(void *\fP\fIringbuf\fP\fB, u64\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
@@ -3331,10 +3423,10 @@ otherwise.
.TP
.B Description
Submit reserved ring buffer sample, pointed to by \fIdata\fP\&.
-If BPF_RB_NO_WAKEUP is specified in \fIflags\fP, no notification of
-new data availability is sent.
-IF BPF_RB_FORCE_WAKEUP is specified in \fIflags\fP, notification of
-new data availability is sent unconditionally.
+If \fBBPF_RB_NO_WAKEUP\fP is specified in \fIflags\fP, no notification
+of new data availability is sent.
+If \fBBPF_RB_FORCE_WAKEUP\fP is specified in \fIflags\fP, notification
+of new data availability is sent unconditionally.
.TP
.B Return
Nothing. Always succeeds.
@@ -3345,10 +3437,10 @@ Nothing. Always succeeds.
.TP
.B Description
Discard reserved ring buffer sample, pointed to by \fIdata\fP\&.
-If BPF_RB_NO_WAKEUP is specified in \fIflags\fP, no notification of
-new data availability is sent.
-IF BPF_RB_FORCE_WAKEUP is specified in \fIflags\fP, notification of
-new data availability is sent unconditionally.
+If \fBBPF_RB_NO_WAKEUP\fP is specified in \fIflags\fP, no notification
+of new data availability is sent.
+If \fBBPF_RB_FORCE_WAKEUP\fP is specified in \fIflags\fP, notification
+of new data availability is sent unconditionally.
.TP
.B Return
Nothing. Always succeeds.
@@ -3360,35 +3452,27 @@ Nothing. Always succeeds.
.B Description
Query various characteristics of provided ring buffer. What
exactly is queries is determined by \fIflags\fP:
-.IP "System Message: ERROR/3 (/tmp/bpf-helpers.rst:, line 2636)"
-Unexpected indentation.
.INDENT 7.0
-.INDENT 3.5
-.INDENT 0.0
.IP \(bu 2
-BPF_RB_AVAIL_DATA \- amount of data not yet consumed;
+\fBBPF_RB_AVAIL_DATA\fP: Amount of data not yet consumed.
.IP \(bu 2
-BPF_RB_RING_SIZE \- the size of ring buffer;
+\fBBPF_RB_RING_SIZE\fP: The size of ring buffer.
.IP \(bu 2
-BPF_RB_CONS_POS \- consumer position (can wrap around);
+\fBBPF_RB_CONS_POS\fP: Consumer position (can wrap around).
.IP \(bu 2
-BPF_RB_PROD_POS \- producer(s) position (can wrap around);
-.UNINDENT
-.UNINDENT
+\fBBPF_RB_PROD_POS\fP: Producer(s) position (can wrap around).
.UNINDENT
-.IP "System Message: WARNING/2 (/tmp/bpf-helpers.rst:, line 2640)"
-Block quote ends without a blank line; unexpected unindent.
.sp
-Data returned is just a momentary snapshots of actual values
+Data returned is just a momentary snapshot of actual values
and could be inaccurate, so this facility should be used to
power heuristics and for reporting, not to make 100% correct
calculation.
.TP
.B Return
-Requested value, or 0, if flags are not recognized.
+Requested value, or 0, if \fIflags\fP are not recognized.
.UNINDENT
.TP
-.B \fBint bpf_csum_level(struct sk_buff *\fP\fIskb\fP\fB, u64\fP \fIlevel\fP\fB)\fP
+.B \fBlong bpf_csum_level(struct sk_buff *\fP\fIskb\fP\fB, u64\fP \fIlevel\fP\fB)\fP
.INDENT 7.0
.TP
.B Description
@@ -3428,6 +3512,101 @@ case of \fBBPF_CSUM_LEVEL_QUERY\fP, the current skb\->csum_level
is returned or the error code \-EACCES in case the skb is not
subject to CHECKSUM_UNNECESSARY.
.UNINDENT
+.TP
+.B \fBstruct tcp6_sock *bpf_skc_to_tcp6_sock(void *\fP\fIsk\fP\fB)\fP
+.INDENT 7.0
+.TP
+.B Description
+Dynamically cast a \fIsk\fP pointer to a \fItcp6_sock\fP pointer.
+.TP
+.B Return
+\fIsk\fP if casting is valid, or NULL otherwise.
+.UNINDENT
+.TP
+.B \fBstruct tcp_sock *bpf_skc_to_tcp_sock(void *\fP\fIsk\fP\fB)\fP
+.INDENT 7.0
+.TP
+.B Description
+Dynamically cast a \fIsk\fP pointer to a \fItcp_sock\fP pointer.
+.TP
+.B Return
+\fIsk\fP if casting is valid, or NULL otherwise.
+.UNINDENT
+.TP
+.B \fBstruct tcp_timewait_sock *bpf_skc_to_tcp_timewait_sock(void *\fP\fIsk\fP\fB)\fP
+.INDENT 7.0
+.TP
+.B Description
+Dynamically cast a \fIsk\fP pointer to a \fItcp_timewait_sock\fP pointer.
+.TP
+.B Return
+\fIsk\fP if casting is valid, or NULL otherwise.
+.UNINDENT
+.TP
+.B \fBstruct tcp_request_sock *bpf_skc_to_tcp_request_sock(void *\fP\fIsk\fP\fB)\fP
+.INDENT 7.0
+.TP
+.B Description
+Dynamically cast a \fIsk\fP pointer to a \fItcp_request_sock\fP pointer.
+.TP
+.B Return
+\fIsk\fP if casting is valid, or NULL otherwise.
+.UNINDENT
+.TP
+.B \fBstruct udp6_sock *bpf_skc_to_udp6_sock(void *\fP\fIsk\fP\fB)\fP
+.INDENT 7.0
+.TP
+.B Description
+Dynamically cast a \fIsk\fP pointer to a \fIudp6_sock\fP pointer.
+.TP
+.B Return
+\fIsk\fP if casting is valid, or NULL otherwise.
+.UNINDENT
+.TP
+.B \fBlong bpf_get_task_stack(struct task_struct *\fP\fItask\fP\fB, void *\fP\fIbuf\fP\fB, u32\fP \fIsize\fP\fB, u64\fP \fIflags\fP\fB)\fP
+.INDENT 7.0
+.TP
+.B Description
+Return a user or a kernel stack in bpf program provided buffer.
+To achieve this, the helper needs \fItask\fP, which is a valid
+pointer to struct task_struct. To store the stacktrace, the
+bpf program provides \fIbuf\fP with a nonnegative \fIsize\fP\&.
+.sp
+The last argument, \fIflags\fP, holds the number of stack frames to
+skip (from 0 to 255), masked with
+\fBBPF_F_SKIP_FIELD_MASK\fP\&. The next bits can be used to set
+the following flags:
+.INDENT 7.0
+.TP
+.B \fBBPF_F_USER_STACK\fP
+Collect a user space stack instead of a kernel stack.
+.TP
+.B \fBBPF_F_USER_BUILD_ID\fP
+Collect buildid+offset instead of ips for user stack,
+only valid if \fBBPF_F_USER_STACK\fP is also specified.
+.UNINDENT
+.sp
+\fBbpf_get_task_stack\fP() can collect up to
+\fBPERF_MAX_STACK_DEPTH\fP both kernel and user frames, subject
+to sufficient large buffer size. Note that
+this limit can be controlled with the \fBsysctl\fP program, and
+that it should be manually increased in order to profile long
+user stacks (such as stacks for Java programs). To do so, use:
+.INDENT 7.0
+.INDENT 3.5
+.sp
+.nf
+.ft C
+# sysctl kernel.perf_event_max_stack=<new value>
+.ft P
+.fi
+.UNINDENT
+.UNINDENT
+.TP
+.B Return
+A non\-negative value equal to or less than \fIsize\fP on success,
+or a negative error in case of failure.
+.UNINDENT
.UNINDENT
.SH EXAMPLES
.sp
@@ -3523,7 +3702,7 @@ pointers for network processing are listed in function
.\" Generated by docutils manpage writer.
.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/capabilities.7 b/man7/capabilities.7
index 0feba1622..a52f067ef 100644
--- a/man7/capabilities.7
+++ b/man7/capabilities.7
@@ -101,6 +101,35 @@ BPF functionality from the overloaded
.BR CAP_SYS_ADMIN
capability.
.TP
+.BR CAP_CHECKPOINT_RESTORE " (since Linux 5.9)"
+.\" commit 124ea650d3072b005457faed69909221c2905a1f
+.PD 0
+.RS
+.IP * 2
+Update
+.I /proc/sys/kernel/ns_last_pid
+(see
+.BR pid_namespaces (7));
+.IP *
+employ the
+.I set_tid
+feature of
+.BR clone3 (2);
+.\" FIXME There is also some use case relating to
+.\" prctl_set_mm_exe_file(); in the 5.9 sources, see
+.\" prctl_set_mm_map().
+.IP *
+read the contents of the symbolic links in
+.IR /proc/[pid]/map_files
+for other processes.
+.RE
+.PD
+.IP
+This capability was added in Linux 5.9 to separate out
+checkpoint/restore functionality from the overloaded
+.BR CAP_SYS_ADMIN
+capability.
+.TP
.B CAP_CHOWN
Make arbitrary changes to file UIDs and GIDs (see
.BR chown (2)).
@@ -278,9 +307,9 @@ bind to any address for transparent proxying.
.TP
.BR CAP_PERFMON " (since Linux 5.8)"
Employ various performance-monitoring mechanisms, including:
-.PD 0
.RS
-.IP *2
+.IP * 2
+.PD 0
call
.BR perf_event_open (2);
.IP *
@@ -292,6 +321,8 @@ This capability was added in Linux 5.8 to separate out
performance monitoring functionality from the overloaded
.BR CAP_SYS_ADMIN
capability.
+See also the kernel source file
+.IR Documentation/admin-guide/perf-security.rst .
.TP
.B CAP_SETGID
.RS
@@ -379,6 +410,21 @@ perform
.BR vm86 (2)
command;
.IP *
+access the same checkpoint/restore functionality that is governed by
+.BR CAP_CHECKPOINT_RESTORE
+(but the latter, weaker capability is preferred for accessing
+that functionality).
+.IP *
+perform the same BPF operations as are governed by
+.BR CAP_BPF
+(but the latter, weaker capability is preferred for accessing
+that functionality).
+.IP *
+employ the same performance monitoring mechanisms as are governed by
+.BR CAP_PERFMON
+(but the latter, weaker capability is preferred for accessing
+that functionality).
+.IP *
perform
.B IPC_SET
and
@@ -427,9 +473,6 @@ and
(but, since Linux 3.8,
creating user namespaces does not require any capability);
.IP *
-employ various performance monitoring mechanisms (as for
-.BR CAP_PERFMON );
-.IP *
access privileged
.I perf
event information;
@@ -445,10 +488,6 @@ namespace);
call
.BR fanotify_init (2);
.IP *
-perform various BPF operations;
-see
-.BR CAP_BPF ;
-.IP *
perform privileged
.B KEYCTL_CHOWN
and
@@ -510,9 +549,9 @@ operation to suspend the tracee's seccomp protections (i.e., the
.B PTRACE_O_SUSPEND_SECCOMP
flag);
.IP *
-perform administrative operations on many device drivers.
+perform administrative operations on many device drivers;
.IP *
-Modify autogroup nice values by writing to
+modify autogroup nice values by writing to
.IR /proc/[pid]/autogroup
(see
.BR sched (7)).
@@ -1814,7 +1853,7 @@ created on the system.
.I include/linux/capability.h
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/cgroup_namespaces.7 b/man7/cgroup_namespaces.7
index 212b43733..4d3be25eb 100644
--- a/man7/cgroup_namespaces.7
+++ b/man7/cgroup_namespaces.7
@@ -23,7 +23,7 @@
.\" %%%LICENSE_END
.\"
.\"
-.TH CGROUP_NAMESPACES 7 2019-08-02 "Linux" "Linux Programmer's Manual"
+.TH CGROUP_NAMESPACES 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
cgroup_namespaces \- overview of Linux cgroup namespaces
.SH DESCRIPTION
@@ -171,7 +171,7 @@ new cgroup namespace), after which we see the expected results:
.PP
.in +4n
.EX
-sh2# \fBmount \-\-make\-rslave /\fP # Don't propagate mount events
+sh2# \fBmount \-\-make\-rslave /\fP # Don\(aqt propagate mount events
# to other namespaces
sh2# \fBumount /sys/fs/cgroup/freezer\fP
sh2# \fBmount \-t cgroup \-o freezer freezer /sys/fs/cgroup/freezer\fP
@@ -267,7 +267,7 @@ from escaping the limits imposed by ancestor cgroups.
.BR namespaces (7),
.BR user_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/cgroups.7 b/man7/cgroups.7
index 70c8b80d4..e22d0cbb4 100644
--- a/man7/cgroups.7
+++ b/man7/cgroups.7
@@ -791,7 +791,7 @@ or '\-' (to disable a controller), as in the following example:
.IP
.in +4n
.EX
-echo '+pids \-memory' > x/y/cgroup.subtree_control
+echo \(aq+pids \-memory\(aq > x/y/cgroup.subtree_control
.EE
.in
.IP
@@ -879,8 +879,7 @@ Each nonroot cgroup in the v2 hierarchy contains a read-only file,
.IR cgroup.events ,
whose contents are key-value pairs
(delimited by newline characters, with the key and value separated by spaces)
-providing state information about the
-the cgroup:
+providing state information about the cgroup:
.PP
.in +4n
.EX
@@ -1929,7 +1928,7 @@ mount option.
The kernel source file
.IR Documentation/admin\-guide/cgroup\-v2.rst .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/charsets.7 b/man7/charsets.7
index 81323c3c5..bd294a07b 100644
--- a/man7/charsets.7
+++ b/man7/charsets.7
@@ -333,7 +333,7 @@ Korean, but it is enough for most other purposes.
.BR unicode (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/complex.7 b/man7/complex.7
index 2e1bea52e..c97493821 100644
--- a/man7/complex.7
+++ b/man7/complex.7
@@ -80,7 +80,7 @@ main(void)
.BR ctan (3),
.BR ctanh (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/cp1251.7 b/man7/cp1251.7
index 324dd0293..50978bbfc 100644
--- a/man7/cp1251.7
+++ b/man7/cp1251.7
@@ -183,7 +183,7 @@ CP\ 1251 is also known as Windows Cyrillic.
.BR koi8\-u (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/cp1252.7 b/man7/cp1252.7
index 2ea3a03eb..172c8de67 100644
--- a/man7/cp1252.7
+++ b/man7/cp1252.7
@@ -173,7 +173,7 @@ CP\ 1252 is also known as Windows-1252.
.BR iso_8859\-15 (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/cpuset.7 b/man7/cpuset.7
index c289e5a22..73c544a6e 100644
--- a/man7/cpuset.7
+++ b/man7/cpuset.7
@@ -22,7 +22,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH CPUSET 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH CPUSET 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
cpuset \- confine processes to processor and memory node subsets
.SH DESCRIPTION
@@ -40,7 +40,7 @@ If a system supports cpusets, then it will have the entry
in the file
.IR /proc/filesystems .
By mounting the cpuset filesystem (see the
-.B EXAMPLE
+.B EXAMPLES
section below),
the administrator can configure the cpusets on a system
to control the processor and memory placement of processes
@@ -317,7 +317,7 @@ Flag (0 or 1).
If set (1), the kernel slab caches
for file I/O (directory and inode structures) are
uniformly spread across the cpuset.
-By defaultBy default, is off (0) in the top cpuset,
+By default, is off (0) in the top cpuset,
and inherited from the parent cpuset in
newly created cpusets.
See the \fBMemory Spread\fR section, below.
@@ -1361,7 +1361,7 @@ set to
and the creation and truncation options on
.BR open (2)
have no effect.
-.\" ================== EXAMPLE ==================
+.\" ================== EXAMPLES ==================
.SH EXAMPLES
The following examples demonstrate querying and setting cpuset
options using shell commands.
@@ -1398,7 +1398,7 @@ and then attach the current shell to that cpuset.
.RB "$" " /bin/echo 1 > cpuset.mems"
.RB "$" " /bin/echo $$ > tasks"
# The current shell is now running in cpuset Charlie
-# The next line should display '/Charlie'
+# The next line should display \(aq/Charlie\(aq
.RB "$" " cat /proc/self/cpuset"
.EE
.in
@@ -1512,7 +1512,7 @@ before Linux 4.18, and
.IR Documentation/cpusets.txt
before Linux 2.6.29)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/credentials.7 b/man7/credentials.7
index 8419569a9..6ff6fe6ba 100644
--- a/man7/credentials.7
+++ b/man7/credentials.7
@@ -24,7 +24,7 @@
.\"
.\" 2007-06-13 Creation
.\"
-.TH CREDENTIALS 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH CREDENTIALS 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
credentials \- process identifiers
.SH DESCRIPTION
@@ -393,11 +393,12 @@ for further details.
.BR pid_namespaces (7),
.BR pthreads (7),
.BR signal (7),
+.BR system_data_types (7),
.BR unix (7),
.BR user_namespaces (7),
.BR sudo (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/ddp.7 b/man7/ddp.7
index 610d9681a..c8c7a9fb3 100644
--- a/man7/ddp.7
+++ b/man7/ddp.7
@@ -249,7 +249,7 @@ AARP tables, and other devices are not yet described.
.BR capabilities (7),
.BR socket (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/environ.7 b/man7/environ.7
index bab859dd1..a033a14da 100644
--- a/man7/environ.7
+++ b/man7/environ.7
@@ -297,7 +297,7 @@ should consider renaming their option to
.BR ld.so (8),
.BR pam_env (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/epoll.7 b/man7/epoll.7
index abfa72a2c..14e218694 100644
--- a/man7/epoll.7
+++ b/man7/epoll.7
@@ -623,7 +623,7 @@ is present in an epoll instance.
.BR poll (2),
.BR select (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/fanotify.7 b/man7/fanotify.7
index 9bc09978a..aa853ad1f 100644
--- a/man7/fanotify.7
+++ b/man7/fanotify.7
@@ -22,7 +22,7 @@
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
-.TH FANOTIFY 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH FANOTIFY 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
fanotify \- monitoring filesystem events
.SH DESCRIPTION
@@ -110,14 +110,9 @@ Two types of events are generated:
events and
.I permission
events.
-Notification events are merely informative
-and require no action to be taken by
-the receiving application with the exception being that the file
-descriptor provided within a generic event must be closed.
-The closing of file descriptors for each event applies only to
-applications that have initialized fanotify without using
-.BR FAN_REPORT_FID
-(see below).
+Notification events are merely informative and require no action to be taken
+by the receiving application with one exception: if a valid file descriptor
+is provided within a generic event, the file descriptor must be closed.
Permission events are requests to the receiving application to decide
whether permission for a file access shall be granted.
For these events, the recipient must write a response which decides whether
@@ -142,12 +137,16 @@ until either a file event occurs or the call is interrupted by a signal
(see
.BR signal (7)).
.PP
-The use of the
-.BR FAN_REPORT_FID
-flag in
+The use of one of the flags
+.BR FAN_REPORT_FID ,
+.BR FAN_REPORT_DIR_FID
+in
.BR fanotify_init (2)
influences what data structures are returned to the event listener for each
event.
+Events reported to a group initialized with one of these flags will
+use file handles to identify filesystem objects instead of file descriptors.
+.TP
After a successful
.BR read (2),
the read buffer contains one or more of the following structures:
@@ -166,17 +165,20 @@ struct fanotify_event_metadata {
.EE
.in
.PP
-In the case where
-.BR FAN_REPORT_FID
-is supplied as one of the flags to
-.BR fanotify_init (2),
-you should also expect to receive the structure detailed below following
-the generic
+In case of an fanotify group that identifies filesystem objects by file
+handles, you should also expect to receive one or more additional information
+records of the structure detailed below following the generic
.I fanotify_event_metadata
structure within the read buffer:
.PP
.in +4n
.EX
+struct fanotify_event_info_header {
+ __u8 info_type;
+ __u8 pad;
+ __u16 len;
+};
+
struct fanotify_event_info_fid {
struct fanotify_event_info_header hdr;
__kernel_fsid_t fsid;
@@ -202,16 +204,13 @@ structure are as follows:
.I event_len
This is the length of the data for the current event and the offset
to the next event in the buffer.
-Without
-.BR FAN_REPORT_FID ,
-the value of
+Unless the group identifies filesystem objects by file handles, the value of
.I event_len
is always
.BR FAN_EVENT_METADATA_LEN .
-With
-.BR FAN_REPORT_FID ,
+For a group that identifies filesystem objects by file handles,
.I event_len
-also includes the variable length file identifier.
+also includes the variable length file identifier records.
.TP
.I vers
This field holds a version number for the structure.
@@ -238,8 +237,7 @@ This is a bit mask describing the event (see below).
This is an open file descriptor for the object being accessed, or
.B FAN_NOFD
if a queue overflow occurred.
-If the fanotify file descriptor has been initialized using
-.BR FAN_REPORT_FID ,
+With an fanotify group that identifies filesystem objects by file handles,
applications should expect this value to be set to
.B FAN_NOFD
for each event that is received.
@@ -395,9 +393,8 @@ See
for additional details.
The
.BR FAN_ONDIR
-flag is reported in an event mask only if the fanotify group has been
-initialized with the flag
-.BR FAN_REPORT_FID .
+flag is reported in an event mask only if the fanotify group identifies
+filesystem objects by file handles.
.PP
The fields of the
.I fanotify_event_info_fid
@@ -406,24 +403,45 @@ structure are as follows:
.I hdr
This is a structure of type
.IR fanotify_event_info_header .
-It is a generic header that contains information used to describe
-additional information attached to the event.
+It is a generic header that contains information used to describe an
+additional information record attached to the event.
For example, when an fanotify file descriptor is created using
.BR FAN_REPORT_FID ,
-the
+a single information record is expected to be attached to the event with
.I info_type
-field of this header is set to
+field value of
.BR FAN_EVENT_INFO_TYPE_FID .
-Event listeners can use this field to check that the additional
-information received for an event is of the correct type.
-Additionally, the
+When an fanotify file descriptor is created using the combination of
+.BR FAN_REPORT_FID
+and
+.BR FAN_REPORT_DIR_FID ,
+there may be two information records attached to the event:
+one with
+.I info_type
+field value of
+.BR FAN_EVENT_INFO_TYPE_DFID ,
+identifying a parent directory object, and one with
+.I info_type
+field value of
+.BR FAN_EVENT_INFO_TYPE_FID ,
+identifying a non-directory object.
+The
.I fanotify_event_info_header
-also contains a
+contains a
.I len
field.
-In the current implementation, the value of
+The value of
.I len
-is always (event_len \- FAN_EVENT_METADATA_LEN).
+is the size of the additional information record including the
+.IR fanotify_event_info_header
+itself.
+The total size of all additional information records is not expected
+to be bigger than
+(
+.IR event_len
+\-
+.IR metadata_len
+).
.TP
.I fsid
This is a unique identifier of the filesystem containing the object
@@ -436,31 +454,60 @@ when calling
.BR statfs (2).
.TP
.I file_handle
-This is a variable length structure of type
-.IR file_handle .
+This is a variable length structure of type struct file_handle.
It is an opaque handle that corresponds to a specified object on a
filesystem as returned by
.BR name_to_handle_at (2).
It can be used to uniquely identify a file on a filesystem and can be
passed as an argument to
.BR open_by_handle_at (2).
-Note that for directory entry events, such as
+Note that for the directory entry modification events
.BR FAN_CREATE ,
.BR FAN_DELETE ,
and
.BR FAN_MOVE ,
the
.IR file_handle
-describes the modified directory and not the created/deleted/moved child
+identifies the modified directory and not the created/deleted/moved child
object.
-The events
+If the value of
+.I info_type
+field is
+.BR FAN_EVENT_INFO_TYPE_DFID_NAME ,
+the file handle is followed by a null terminated string that identifies the
+created/deleted/moved directory entry name.
+For other events such as
+.BR FAN_OPEN ,
.BR FAN_ATTRIB ,
.BR FAN_DELETE_SELF ,
and
-.BR FAN_MOVE_SELF
-will carry the
+.BR FAN_MOVE_SELF ,
+if the value of
+.I info_type
+field is
+.BR FAN_EVENT_INFO_TYPE_FID ,
+the
+.IR file_handle
+identifies the object correlated to the event.
+If the value of
+.I info_type
+field is
+.BR FAN_EVENT_INFO_TYPE_DFID ,
+the
.IR file_handle
-information for the child object if the child object is being watched.
+identifies the directory object correlated to the event or the parent directory
+of a non-directory object correlated to the event.
+If the value of
+.I info_type
+field is
+.BR FAN_EVENT_INFO_TYPE_DFID_NAME ,
+the
+.IR file_handle
+identifies the same directory object that would be reported with
+.BR FAN_EVENT_INFO_TYPE_DFID
+and the file handle is followed by a null terminated string that identifies the
+name of a directory entry in that directory, or '.' to identify the directory
+object itself.
.PP
The following macros are provided to iterate over a buffer containing
fanotify event metadata returned by a
@@ -541,8 +588,8 @@ to deny the file operation.
If access is denied, the requesting application call will receive an
.BR EPERM
error.
+.\"
.SS Closing the fanotify file descriptor
-.PP
When all file descriptors referring to the fanotify notification group are
closed, the fanotify group is released and its resources
are freed for reuse by the kernel.
@@ -645,12 +692,17 @@ events for the monitored directory itself.
Fanotify monitoring of directories is not recursive:
to monitor subdirectories under a directory,
additional marks must be created.
-(But note that the fanotify API provides no way of detecting when a
-subdirectory has been created under a marked directory,
-which makes recursive monitoring difficult.)
-Monitoring mounts offers the capability to monitor a whole directory tree.
+The
+.B FAN_CREATE
+event can be used for detecting when a subdirectory has been created under
+a marked directory.
+An additional mark must then be set on the newly created subdirectory.
+This approach is racy, because it can lose events that occurred inside the
+newly created subdirectory, before a mark is added on that subdirectory.
+Monitoring mounts offers the capability to monitor a whole directory tree
+in a race-free manner.
Monitoring filesystems offers the capability to monitor changes made from
-any mount of a filesystem instance.
+any mount of a filesystem instance in a race-free manner.
.PP
The event queue can overflow.
In this case, events are lost.
@@ -766,7 +818,7 @@ handle_events(int fd)
/* Read some events */
- len = read(fd, (void *) &buf, sizeof(buf));
+ len = read(fd, buf, sizeof(buf));
if (len == \-1 && errno != EAGAIN) {
perror("read");
exit(EXIT_FAILURE);
@@ -808,8 +860,7 @@ handle_events(int fd)
response.fd = metadata\->fd;
response.response = FAN_ALLOW;
- write(fd, &response,
- sizeof(struct fanotify_response));
+ write(fd, &response, sizeof(response));
}
/* Handle closing of writable file event */
@@ -934,9 +985,8 @@ main(int argc, char *argv[])
.EE
.\"
.SS Example program: fanotify_fid.c
-The second program is an example of fanotify being used with
-.B FAN_REPORT_FID
-enabled.
+The second program is an example of fanotify being used with a group that
+identifies objects by file handles.
The program marks the filesystem object that is passed as
a command-line argument
and waits until an event of type
@@ -957,7 +1007,7 @@ This is followed by the creation of a regular file,
This results in a
.B FAN_CREATE
event being generated and reported against the file's parent watched
-directory object.
+directory object and with the created file name.
Program execution ends once all events captured within the buffer have
been processed.
.PP
@@ -967,6 +1017,7 @@ been processed.
Listening for events.
FAN_CREATE (file created):
Directory /home/user has been modified.
+ Entry \(aqtestfile.txt\(aq is not a subdirectory.
All events processed successfully. Program exiting.
$ \fBtouch /home/user/testfile.txt\fP # In another terminal
@@ -981,7 +1032,7 @@ This specific action results in a
.B FAN_CREATE
event being generated and is reported with the
.B FAN_ONDIR
-flag set.
+flag set and with the created directory name.
.PP
.in +4n
.EX
@@ -989,6 +1040,7 @@ flag set.
Listening for events.
FAN_CREATE | FAN_ONDIR (subdirectory created):
Directory /home/user has been modified.
+ Entry \(aqtestdir\(aq is a subdirectory.
All events processed successfully. Program exiting.
$ \fBmkdir \-p /home/user/testdir\fP # In another terminal
@@ -1021,6 +1073,8 @@ main(int argc, char **argv)
struct file_handle *file_handle;
struct fanotify_event_metadata *metadata;
struct fanotify_event_info_fid *fid;
+ const char *file_name;
+ struct stat sb;
if (argc != 2) {
fprintf(stderr, "Invalid number of command line arguments.\en");
@@ -1034,10 +1088,11 @@ main(int argc, char **argv)
}
- /* Create an fanotify file descriptor with FAN_REPORT_FID as a flag
- so that program can receive fid events. */
+ /* Create an fanotify file descriptor with FAN_REPORT_DFID_NAME as
+ a flag so that program can receive fid events with directory
+ entry name. */
- fd = fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_FID, 0);
+ fd = fanotify_init(FAN_CLASS_NOTIF | FAN_REPORT_DFID_NAME, 0);
if (fd == \-1) {
perror("fanotify_init");
exit(EXIT_FAILURE);
@@ -1057,7 +1112,7 @@ main(int argc, char **argv)
/* Read events from the event queue into a buffer */
- len = read(fd, (void *) &events_buf, sizeof(events_buf));
+ len = read(fd, events_buf, sizeof(events_buf));
if (len == \-1 && errno != EAGAIN) {
perror("read");
exit(EXIT_FAILURE);
@@ -1073,7 +1128,13 @@ main(int argc, char **argv)
/* Ensure that the event info is of the correct type */
- if (fid\->hdr.info_type != FAN_EVENT_INFO_TYPE_FID) {
+ if (fid\->hdr.info_type == FAN_EVENT_INFO_TYPE_FID ||
+ fid\->hdr.info_type == FAN_EVENT_INFO_TYPE_DFID) {
+ file_name = NULL;
+ } else if (fid\->hdr.info_type == FAN_EVENT_INFO_TYPE_DFID_NAME) {
+ file_name = file_handle->f_handle +
+ file_handle->handle_bytes;
+ } else {
fprintf(stderr, "Received unexpected event info type.\en");
exit(EXIT_FAILURE);
}
@@ -1084,14 +1145,14 @@ main(int argc, char **argv)
if (metadata\->mask == (FAN_CREATE | FAN_ONDIR))
printf("FAN_CREATE | FAN_ONDIR (subdirectory created):\en");
- /* metadata\->fd is set to FAN_NOFD when FAN_REPORT_FID is
- enabled. To obtain a file descriptor for the file object
- corresponding to an event you can use the struct file_handle
- that\(aqs provided within the fanotify_event_info_fid in
- conjunction with the open_by_handle_at(2) system call.
- A check for ESTALE is done to accommodate for the situation
- where the file handle for the object was deleted prior to
- this system call. */
+ /* metadata\->fd is set to FAN_NOFD when the group identifies
+ objects by file handles. To obtain a file descriptor for
+ the file object corresponding to an event you can use the
+ struct file_handle that\(aqs provided within the
+ fanotify_event_info_fid in conjunction with the
+ open_by_handle_at(2) system call. A check for ESTALE is
+ done to accommodate for the situation where the file handle
+ for the object was deleted prior to this system call. */
event_fd = open_by_handle_at(mount_fd, file_handle, O_RDONLY);
if (event_fd == \-1) {
@@ -1119,6 +1180,22 @@ main(int argc, char **argv)
path[path_len] = \(aq\e0\(aq;
printf("\etDirectory \(aq%s\(aq has been modified.\en", path);
+ if (file_name) {
+ ret = fstatat(event_fd, file_name, &sb, 0);
+ if (ret == \-1) {
+ if (errno != ENOENT) {
+ perror("fstatat");
+ exit(EXIT_FAILURE);
+ }
+ printf("\etEntry \(aq%s\(aq does not exist.\en", file_name);
+ } else if ((sb.st_mode & S_IFMT) == S_IFDIR) {
+ printf("\etEntry \(aq%s\(aq is a subdirectory.\en", file_name);
+ } else {
+ printf("\etEntry \(aq%s\(aq is not a subdirectory.\en",
+ file_name);
+ }
+ }
+
/* Close associated file descriptor for this event */
close(event_fd);
@@ -1134,7 +1211,7 @@ main(int argc, char **argv)
.BR fanotify_mark (2),
.BR inotify (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/feature_test_macros.7 b/man7/feature_test_macros.7
index 2e462b3cf..5951cd49c 100644
--- a/man7/feature_test_macros.7
+++ b/man7/feature_test_macros.7
@@ -22,7 +22,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH FEATURE_TEST_MACROS 7 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH FEATURE_TEST_MACROS 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
feature_test_macros \- feature test macros
.SH DESCRIPTION
@@ -82,12 +82,12 @@ manual page):
.PP
.BI "int acct(const char *" filename );
.PP
+.RS -4
.EX
-.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.EE
-.in
+.RS
.PP
.BR acct ():
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ <\ 500)
@@ -130,14 +130,14 @@ In a few cases, manual pages use a shorthand for expressing the
feature test macro requirements (this example from
.BR readahead (2)):
.PP
-.in +4n
+.RS +4
.EX
.B #define _GNU_SOURCE
.B #include <fcntl.h>
.PP
.BI "ssize_t readahead(int " fd ", off64_t *" offset ", size_t " count );
.EE
-.in
+.RE
.PP
This format is employed in cases where only a single
feature test macro can be used to expose the function
@@ -407,7 +407,7 @@ that address limitations of earlier APIs
and
.BR ftell (3))
that use
-.IR "long int"
+.IR "long"
for file offsets.
This macro is implicitly defined if
.BR _XOPEN_SOURCE
@@ -654,7 +654,6 @@ Use of this macro requires compiler support, available with
.BR gcc (1)
since version 4.0.
.SS Default definitions, implicit definitions, and combining definitions
-.PP
If no feature test macros are explicitly defined,
then the following feature test macros are defined by default:
.BR _BSD_SOURCE
@@ -673,10 +672,13 @@ and
If any of
.BR __STRICT_ANSI__ ,
.BR _ISOC99_SOURCE ,
+.BR _ISOC11_SOURCE
+(since glibc 2.18),
.BR _POSIX_SOURCE ,
.BR _POSIX_C_SOURCE ,
.BR _XOPEN_SOURCE ,
-.BR _XOPEN_SOURCE_EXTENDED ,
+.BR _XOPEN_SOURCE_EXTENDED
+(in glibc 2.11 and earlier),
.BR _BSD_SOURCE
(in glibc 2.19 and earlier),
or
@@ -827,6 +829,7 @@ _GNU_SOURCE defined
.EX
/* ftm.c */
+#include <stdint.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
@@ -839,7 +842,8 @@ main(int argc, char *argv[])
#endif
#ifdef _POSIX_C_SOURCE
- printf("_POSIX_C_SOURCE defined: %ldL\en", (long) _POSIX_C_SOURCE);
+ printf("_POSIX_C_SOURCE defined: %jdL\en",
+ (intmax_t) _POSIX_C_SOURCE);
#endif
#ifdef _ISOC99_SOURCE
@@ -903,7 +907,8 @@ main(int argc, char *argv[])
.EE
.SH SEE ALSO
.BR libc (7),
-.BR standards (7)
+.BR standards (7),
+.BR system_data_types (7)
.PP
The section "Feature Test Macros" under
.IR "info libc" .
@@ -911,7 +916,7 @@ The section "Feature Test Macros" under
.PP
.I /usr/include/features.h
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/fifo.7 b/man7/fifo.7
index e9f605b51..e4c06b879 100644
--- a/man7/fifo.7
+++ b/man7/fifo.7
@@ -74,7 +74,7 @@ with the file type \(aqp\(aq.
.BR mkfifo (3),
.BR pipe (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/futex.7 b/man7/futex.7
index 2481be233..bdf5504ab 100644
--- a/man7/futex.7
+++ b/man7/futex.7
@@ -126,7 +126,7 @@ futex example library, futex-*.tar.bz2
.UR ftp://ftp.kernel.org\:/pub\:/linux\:/kernel\:/people\:/rusty/
.UE .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/glob.7 b/man7/glob.7
index eac3ae21f..64b1b39c8 100644
--- a/man7/glob.7
+++ b/man7/glob.7
@@ -212,7 +212,7 @@ to "\fI[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]\fP".
.BR locale (7),
.BR regex (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/hier.7 b/man7/hier.7
index 3b3bfd6be..341c018d4 100644
--- a/man7/hier.7
+++ b/man7/hier.7
@@ -513,10 +513,10 @@ Reserved for historical reasons.
Data cached for programs.
.TP
.I /var/cache/fonts
-Locally-generated fonts (optional).
+Locally generated fonts (optional).
.TP
.I /var/cache/man
-Locally-formatted man pages (optional).
+Locally formatted man pages (optional).
.TP
.I /var/cache/www
WWW proxy or cache data (optional).
@@ -671,7 +671,7 @@ differently.
.PP
The Filesystem Hierarchy Standard
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/hostname.7 b/man7/hostname.7
index 4f5f97717..de7194e46 100644
--- a/man7/hostname.7
+++ b/man7/hostname.7
@@ -124,7 +124,7 @@ IETF RFC\ 1178
.\" Hostname appeared in
.\" 4.2BSD.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/icmp.7 b/man7/icmp.7
index 866f9c7f4..63fdcad35 100644
--- a/man7/icmp.7
+++ b/man7/icmp.7
@@ -199,7 +199,7 @@ output with a zero inode.
.PP
RFC\ 792 for a description of the ICMP protocol.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/inode.7 b/man7/inode.7
index 97000f982..0b037f81b 100644
--- a/man7/inode.7
+++ b/man7/inode.7
@@ -479,7 +479,7 @@ if it is to be interpreted as a string).
.BR statx (2),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/inotify.7 b/man7/inotify.7
index 6ab8b1c27..e97a58191 100644
--- a/man7/inotify.7
+++ b/man7/inotify.7
@@ -23,7 +23,7 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH INOTIFY 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH INOTIFY 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
inotify \- monitoring filesystem events
.SH DESCRIPTION
@@ -924,7 +924,7 @@ Listening for events stopped.
#include <unistd.h>
#include <string.h>
-/* Read all available inotify events from the file descriptor 'fd'.
+/* Read all available inotify events from the file descriptor \(aqfd\(aq.
wd is the table of watch descriptors for the directories in argv.
argc is the length of wd and argv.
argv is the list of watched directories.
@@ -942,9 +942,7 @@ handle_events(int fd, int *wd, int argc, char* argv[])
char buf[4096]
__attribute__ ((aligned(__alignof__(struct inotify_event))));
const struct inotify_event *event;
- int i;
ssize_t len;
- char *ptr;
/* Loop while events can be read from inotify file descriptor. */
@@ -952,7 +950,7 @@ handle_events(int fd, int *wd, int argc, char* argv[])
/* Read some events. */
- len = read(fd, buf, sizeof buf);
+ len = read(fd, buf, sizeof(buf));
if (len == \-1 && errno != EAGAIN) {
perror("read");
exit(EXIT_FAILURE);
@@ -967,7 +965,7 @@ handle_events(int fd, int *wd, int argc, char* argv[])
/* Loop over all events in the buffer */
- for (ptr = buf; ptr < buf + len;
+ for (char *ptr = buf; ptr < buf + len;
ptr += sizeof(struct inotify_event) + event\->len) {
event = (const struct inotify_event *) ptr;
@@ -983,7 +981,7 @@ handle_events(int fd, int *wd, int argc, char* argv[])
/* Print the name of the watched directory */
- for (i = 1; i < argc; ++i) {
+ for (int i = 1; i < argc; ++i) {
if (wd[i] == event\->wd) {
printf("%s/", argv[i]);
break;
@@ -1045,7 +1043,7 @@ main(int argc, char* argv[])
wd[i] = inotify_add_watch(fd, argv[i],
IN_OPEN | IN_CLOSE);
if (wd[i] == \-1) {
- fprintf(stderr, "Cannot watch '%s': %s\en",
+ fprintf(stderr, "Cannot watch \(aq%s\(aq: %s\en",
argv[i], strerror(errno));
exit(EXIT_FAILURE);
}
@@ -1083,7 +1081,7 @@ main(int argc, char* argv[])
/* Console input is available. Empty stdin and quit */
- while (read(STDIN_FILENO, &buf, 1) > 0 && buf != '\en')
+ while (read(STDIN_FILENO, &buf, 1) > 0 && buf != \(aq\en\(aq)
continue;
break;
}
@@ -1121,7 +1119,7 @@ main(int argc, char* argv[])
.IR Documentation/filesystems/inotify.txt
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/intro.7 b/man7/intro.7
index 4b6e169e1..247543c2d 100644
--- a/man7/intro.7
+++ b/man7/intro.7
@@ -41,7 +41,7 @@ Note that these can be different from page to page!
.SH SEE ALSO
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/ip.7 b/man7/ip.7
index f13595e4e..d33179373 100644
--- a/man7/ip.7
+++ b/man7/ip.7
@@ -17,11 +17,6 @@
.\" IP_IPSEC_POLICY (2.5.47)
.\" Needs CAP_NET_ADMIN
.\"
-.\" IP_PASSSEC (2.6.17)
-.\" Boolean
-.\" commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
-.\" Author: Catherine Zhang <cxzhang@watson.ibm.com>
-.\"
.\" IP_MINTTL (2.6.34)
.\" commit d218d11133d888f9745802146a50255a4781d37a
.\" Author: Stephen Hemminger <shemminger@vyatta.com>
@@ -44,7 +39,7 @@
.\" commit 76e21053b5bf33a07c76f99d27a74238310e3c71
.\" Author: Erich E. Hoover <ehoover@mines.edu>
.\"
-.TH IP 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH IP 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
ip \- Linux IPv4 protocol implementation
.SH SYNOPSIS
@@ -657,13 +652,52 @@ is disabled by default and can be enabled by using the
.I /proc
interface.
Other options like timestamps are still handled.
-For datagram sockets, IP options can be only set by the local user.
+For datagram sockets, IP options can be set only by the local user.
Calling
.BR getsockopt (2)
with
.B IP_OPTIONS
puts the current IP options used for sending into the supplied buffer.
.TP
+.BR IP_PASSSEC " (since Linux 2.6.17)"
+.\" commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
+If labeled IPSEC or NetLabel is configured on the sending and receiving
+hosts, this option enables receiving of the security context of the peer
+socket in an ancillary message of type
+.B SCM_SECURITY
+retrieved using
+.BR recvmsg (2).
+This option is supported only for UDP sockets; for TCP or SCTP sockets,
+see the description of the
+.B SO_PEERSEC
+option below.
+.IP
+The value given as an argument to
+.BR setsockopt (2)
+and returned as the result of
+.BR getsockopt (2)
+is an integer boolean flag.
+.IP
+The security context returned in the
+.B SCM_SECURITY
+ancillary message
+is of the same format as the one described under the
+.B SO_PEERSEC
+option below.
+.IP
+Note: the reuse of the
+.B SCM_SECURITY
+message type for the
+.B IP_PASSSEC
+socket option was likely a mistake, since other IP control messages use
+their own numbering scheme in the IP namespace and often use the
+socket option value as the message type.
+There is no conflict currently since the IP option with the same value as
+.B SCM_SECURITY
+is
+.B IP_HDRINCL
+and this is never used for a control message type.
+.TP
.BR IP_PKTINFO " (since Linux 2.2)"
.\" Precisely: 2.1.68
Pass an
@@ -671,12 +705,12 @@ Pass an
ancillary message that contains a
.I pktinfo
structure that supplies some information about the incoming packet.
-This only works for datagram oriented sockets.
+This works only for datagram oriented sockets.
The argument is a flag that tells the socket whether the
.B IP_PKTINFO
message should be passed or not.
-The message itself can only be sent/retrieved
-as control message with a packet using
+The message itself can be sent/retrieved
+only as a control message with a packet using
.BR recvmsg (2)
or
.BR sendmsg (2).
@@ -847,7 +881,7 @@ only.
For raw sockets,
.B IP_RECVERR
enables passing of all received ICMP errors to the
-application, otherwise errors are only reported on connected sockets
+application, otherwise errors are reported only on connected sockets
.IP
It sets or retrieves an integer boolean flag.
.B IP_RECVERR
@@ -910,7 +944,7 @@ This is useful, for instance, for user-space RSVP daemons.
The tapped packets are not forwarded by the kernel; it is
the user's responsibility to send them out again.
Socket binding is ignored,
-such packets are only filtered by protocol.
+such packets are filtered only by protocol.
Expects an integer flag.
.TP
.BR IP_TOS " (since Linux 1.0)"
@@ -979,6 +1013,63 @@ Argument is an
.I ip_mreq_source
structure as described under
.BR IP_ADD_SOURCE_MEMBERSHIP .
+.TP
+.BR SO_PEERSEC " (since Linux 2.6.17)"
+If labeled IPSEC or NetLabel is configured on both the sending and
+receiving hosts, this read-only socket option returns the security
+context of the peer socket connected to this socket.
+By default,
+this will be the same as the security context of the process that created
+the peer socket unless overridden by the policy or by a process with
+the required permissions.
+.IP
+The argument to
+.BR getsockopt (2)
+is a pointer to a buffer of the specified length in bytes
+into which the security context string will be copied.
+If the buffer length is less than the length of the security
+context string, then
+.BR getsockopt (2)
+returns \-1, sets
+.I errno
+to
+.BR ERANGE ,
+and returns the required length via
+.IR optlen .
+The caller should allocate at least
+.BR NAME_MAX
+bytes for the buffer initially, although this is not guaranteed
+to be sufficient.
+Resizing the buffer to the returned length
+and retrying may be necessary.
+.IP
+The security context string may include a terminating null character
+in the returned length, but is not guaranteed to do so: a security
+context "foo" might be represented as either {'f','o','o'} of length 3
+or {'f','o','o','\\0'} of length 4, which are considered to be
+interchangeable.
+The string is printable, does not contain non-terminating null characters,
+and is in an unspecified encoding (in particular, it
+is not guaranteed to be ASCII or UTF-8).
+.IP
+The use of this option for sockets in the
+.B AF_INET
+address family is supported since Linux 2.6.17
+.\" commit 2c7946a7bf45ae86736ab3b43d0085e43947945c
+for TCP sockets, and since Linux 4.17
+.\" commit d452930fd3b9031e59abfeddb2fa383f1403d61a
+for SCTP sockets.
+.IP
+For SELinux, NetLabel conveys only the MLS portion of the security
+context of the peer across the wire, defaulting the rest of the
+security context to the values defined in the policy for the
+netmsg initial security identifier (SID).
+However, NetLabel can
+be configured to pass full security contexts over loopback.
+Labeled IPSEC always passes full security contexts as part of establishing
+the security association (SA) and looks them up based on the association
+for each packet.
+.\"
.SS /proc interfaces
The IP protocol
supports a set of
@@ -1234,13 +1325,13 @@ and
.BR IP_MTU ,
.BR IP_MTU_DISCOVER ,
.BR IP_RECVORIGDSTADDR ,
+.BR IP_PASSSEC ,
.BR IP_PKTINFO ,
.BR IP_RECVERR ,
.BR IP_ROUTER_ALERT ,
and
.BR IP_TRANSPARENT
are Linux-specific.
-.\" IP_PASSSEC is Linux-specific
.\" IP_XFRM_POLICY is Linux-specific
.\" IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs
.PP
@@ -1347,7 +1438,7 @@ RFC\ 791 for the original IP specification.
RFC\ 1122 for the IPv4 host requirements.
RFC\ 1812 for the IPv4 router requirements.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/ipc_namespaces.7 b/man7/ipc_namespaces.7
index 4bd3240a3..344416e37 100644
--- a/man7/ipc_namespaces.7
+++ b/man7/ipc_namespaces.7
@@ -85,7 +85,7 @@ option.
.BR namespaces (7),
.BR sysvipc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/ipv6.7 b/man7/ipv6.7
index a2f66b3ea..df1374d01 100644
--- a/man7/ipv6.7
+++ b/man7/ipv6.7
@@ -422,7 +422,7 @@ RFC\ 2553: IPv6 BASIC API;
Linux tries to be compliant to this.
RFC\ 2460: IPv6 specification.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-1.7 b/man7/iso_8859-1.7
index 39b7edcae..ab12c4574 100644
--- a/man7/iso_8859-1.7
+++ b/man7/iso_8859-1.7
@@ -167,7 +167,7 @@ ISO 8859-1 is also known as Latin-1.
.BR iso_8859\-15 (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-10.7 b/man7/iso_8859-10.7
index 9f94dbedb..a87eb1cc5 100644
--- a/man7/iso_8859-10.7
+++ b/man7/iso_8859-10.7
@@ -163,7 +163,7 @@ ISO 8859-10 is also known as Latin-6.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-11.7 b/man7/iso_8859-11.7
index a719ba804..8ee0c7adb 100644
--- a/man7/iso_8859-11.7
+++ b/man7/iso_8859-11.7
@@ -160,7 +160,7 @@ while TIS-620 leaves it undefined.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-13.7 b/man7/iso_8859-13.7
index 2f8147f5f..652195912 100644
--- a/man7/iso_8859-13.7
+++ b/man7/iso_8859-13.7
@@ -163,7 +163,7 @@ ISO 8859-13 is also known as Latin-7.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-14.7 b/man7/iso_8859-14.7
index 45e0ed579..a7d6b1a4b 100644
--- a/man7/iso_8859-14.7
+++ b/man7/iso_8859-14.7
@@ -163,7 +163,7 @@ ISO 8859-14 is also known as Latin-8.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-15.7 b/man7/iso_8859-15.7
index 385f79101..3b9981258 100644
--- a/man7/iso_8859-15.7
+++ b/man7/iso_8859-15.7
@@ -166,7 +166,7 @@ ISO 8859-15 is also known as Latin-9 (or sometimes as Latin-0).
.BR iso_8859\-1 (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-16.7 b/man7/iso_8859-16.7
index b0fff68c3..511f83a39 100644
--- a/man7/iso_8859-16.7
+++ b/man7/iso_8859-16.7
@@ -164,7 +164,7 @@ ISO 8859-16 is also known as Latin-10.
.BR iso_8859\-3 (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-2.7 b/man7/iso_8859-2.7
index 44b91ff16..a7ae0b400 100644
--- a/man7/iso_8859-2.7
+++ b/man7/iso_8859-2.7
@@ -168,7 +168,7 @@ ISO 8859-2 is also known as Latin-2.
.BR iso_8859\-16 (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-3.7 b/man7/iso_8859-3.7
index e407d392f..459b47a39 100644
--- a/man7/iso_8859-3.7
+++ b/man7/iso_8859-3.7
@@ -156,7 +156,7 @@ ISO 8859-3 is also known as Latin-3.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-4.7 b/man7/iso_8859-4.7
index 0ef886c89..70dadeb5b 100644
--- a/man7/iso_8859-4.7
+++ b/man7/iso_8859-4.7
@@ -163,7 +163,7 @@ ISO 8859-4 is also known as Latin-4.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-5.7 b/man7/iso_8859-5.7
index ffa1e4a8d..c562bb227 100644
--- a/man7/iso_8859-5.7
+++ b/man7/iso_8859-5.7
@@ -168,7 +168,7 @@ T}
.BR koi8\-u (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-6.7 b/man7/iso_8859-6.7
index ad55e0d4e..69d3b82b0 100644
--- a/man7/iso_8859-6.7
+++ b/man7/iso_8859-6.7
@@ -119,7 +119,7 @@ such as Urdu and Persian (Farsi).
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-7.7 b/man7/iso_8859-7.7
index 174d236dd..30e6d5274 100644
--- a/man7/iso_8859-7.7
+++ b/man7/iso_8859-7.7
@@ -167,7 +167,7 @@ ISO 8859-7 was formerly known as ELOT-928 or ECMA-118:1986.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-8.7 b/man7/iso_8859-8.7
index 2e04af9cb..856df96d4 100644
--- a/man7/iso_8859-8.7
+++ b/man7/iso_8859-8.7
@@ -131,7 +131,7 @@ and Yiddish is not provided for.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/iso_8859-9.7 b/man7/iso_8859-9.7
index a8dc16dff..7dec0b734 100644
--- a/man7/iso_8859-9.7
+++ b/man7/iso_8859-9.7
@@ -163,7 +163,7 @@ ISO 8859-9 is also known as Latin-5.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/kernel_lockdown.7 b/man7/kernel_lockdown.7
new file mode 100644
index 000000000..d80e30e41
--- /dev/null
+++ b/man7/kernel_lockdown.7
@@ -0,0 +1,129 @@
+.\"
+.\" Copyright (C) 2017 Red Hat, Inc. All Rights Reserved.
+.\" Written by David Howells (dhowells@redhat.com)
+.\"
+.\" %%%LICENSE_START(GPLv2+_SW_ONEPARA)
+.\" This program is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License
+.\" as published by the Free Software Foundation; either version
+.\" 2 of the License, or (at your option) any later version.
+.\" %%%LICENSE_END
+.\"
+.TH "KERNEL_LOCKDOWN" 7 2020-11-01 Linux "Linux Programmer's Manual"
+.SH NAME
+kernel_lockdown \- kernel image access prevention feature
+.SH DESCRIPTION
+The Kernel Lockdown feature is designed to prevent both direct and indirect
+access to a running kernel image, attempting to protect against unauthorized
+modification of the kernel image and to prevent access to security and
+cryptographic data located in kernel memory, whilst still permitting driver
+modules to be loaded.
+.PP
+Lockdown is typically enabled during boot and may be terminated, if configured,
+by typing a special key combination on a directly attached physical keyboard.
+.PP
+If a prohibited or restricted feature is accessed or used, the kernel will emit
+a message that looks like:
+.PP
+.RS
+ Lockdown: X: Y is restricted, see man kernel_lockdown.7
+.RE
+.PP
+where X indicates the process name and Y indicates what is restricted.
+.PP
+On an EFI-enabled x86 or arm64 machine, lockdown will be automatically enabled
+if the system boots in EFI Secure Boot mode.
+.PP
+If the kernel is appropriately configured, lockdown may be lifted by typing
+the appropriate sequence on a directly attached physical keyboard.
+For x86 machines, this is
+.IR SysRq+x .
+.\"
+.SS Coverage
+When lockdown is in effect, a number of features are disabled or have their
+use restricted.
+This includes special device files and kernel services that allow
+direct access of the kernel image:
+.PP
+.RS
+/dev/mem
+.br
+/dev/kmem
+.br
+/dev/kcore
+.br
+/dev/ioports
+.br
+BPF
+.br
+kprobes
+.RE
+.PP
+and the ability to directly configure and control devices, so as to prevent
+the use of a device to access or modify a kernel image:
+.IP \(bu 2
+The use of module parameters that directly specify hardware parameters to
+drivers through the kernel command line or when loading a module.
+.IP \(bu
+The use of direct PCI BAR access.
+.IP \(bu
+The use of the ioperm and iopl instructions on x86.
+.IP \(bu
+The use of the KD*IO console ioctls.
+.IP \(bu
+The use of the TIOCSSERIAL serial ioctl.
+.IP \(bu
+The alteration of MSR registers on x86.
+.IP \(bu
+The replacement of the PCMCIA CIS.
+.IP \(bu
+The overriding of ACPI tables.
+.IP \(bu
+The use of ACPI error injection.
+.IP \(bu
+The specification of the ACPI RDSP address.
+.IP \(bu
+The use of ACPI custom methods.
+.PP
+Certain facilities are restricted:
+.IP \(bu 2
+Only validly signed modules may be loaded (waived if the module file being
+loaded is vouched for by IMA appraisal).
+.IP \(bu
+Only validly signed binaries may be kexec'd (waived if the binary image file
+to be executed is vouched for by IMA appraisal).
+.IP \(bu
+Unencrypted hibernation/suspend to swap are disallowed as the kernel image is
+saved to a medium that can then be accessed.
+.IP \(bu
+Use of debugfs is not permitted as this allows a whole range of actions
+including direct configuration of, access to and driving of hardware.
+.IP \(bu
+IMA requires the addition of the "secure_boot" rules to the policy,
+whether or not they are specified on the command line,
+for both the built-in and custom policies in secure boot lockdown mode.
+.SH VERSIONS
+The Kernel Lockdown feature was added in Linux 5.4.
+.SH NOTES
+The Kernel Lockdown feature is enabled by CONFIG_SECURITY_LOCKDOWN_LSM.
+The
+.I lsm=lsm1,...,lsmN
+command line parameter controls the sequence of the initialization of
+Linux Security Modules.
+It must contain the string
+.I lockdown
+to enable the Kernel Lockdown feature.
+If the command line parameter is not specified,
+the initialization falls back to the value of the deprecated
+.I security=
+command line parameter and further to the value of CONFIG_LSM.
+.\" commit 000d388ed3bbed745f366ce71b2bb7c2ee70f449
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man7/keyrings.7 b/man7/keyrings.7
index a84928782..3009e898e 100644
--- a/man7/keyrings.7
+++ b/man7/keyrings.7
@@ -549,7 +549,6 @@ An example of the data that one might see in this file
(with the columns numbered for easy reference below)
is the following:
.IP
-.in 0n
.EX
(1) (2) (3)(4) (5) (6) (7) (8) (9)
009a2028 I--Q--- 1 perm 3f010000 1000 1000 user krb_ccache:primary: 12
@@ -562,7 +561,6 @@ is the following:
32a387ea I--Q--- 1 perm 3f010000 1000 1000 keyring _pid: 2
3ce56aea I--Q--- 5 perm 3f030000 1000 1000 keyring _ses: 1
.EE
-.in
.IP
The fields shown in each line of this file are as follows:
.RS
@@ -883,7 +881,7 @@ and under
(or, before Linux 4.13, in the file
.IR Documentation/security/keys.txt ).
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/koi8-r.7 b/man7/koi8-r.7
index 5fc931a56..499520656 100644
--- a/man7/koi8-r.7
+++ b/man7/koi8-r.7
@@ -186,7 +186,7 @@ A4, A6, A7, AD, B4, B6, B7, and BD.
.BR koi8\-u (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/koi8-u.7 b/man7/koi8-u.7
index a77669ce4..abf50eec8 100644
--- a/man7/koi8-u.7
+++ b/man7/koi8-u.7
@@ -192,7 +192,7 @@ A4, A6, A7, AD, B4, B6, B7, and BD.
.BR koi8\-r (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/libc.7 b/man7/libc.7
index 98d662f7b..dfccc99eb 100644
--- a/man7/libc.7
+++ b/man7/libc.7
@@ -121,7 +121,7 @@ project, where they are known.
.BR standards (7),
.BR vdso (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/locale.7 b/man7/locale.7
index 63a8c9074..293e6d402 100644
--- a/man7/locale.7
+++ b/man7/locale.7
@@ -346,7 +346,7 @@ A list of pathnames, separated by colons (\(aq:\(aq),
that should be used to find locale data.
If this variable is set,
only the individual compiled locale data files from
-.I LOCPATH
+.B LOCPATH
and the system default locale data path are used;
any available locale archives are not used (see
.BR localedef (1)).
@@ -399,7 +399,7 @@ POSIX.1-2001.
.BR unicode (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/mailaddr.7 b/man7/mailaddr.7
index d3e0aed60..48381af0d 100644
--- a/man7/mailaddr.7
+++ b/man7/mailaddr.7
@@ -121,7 +121,7 @@ The "postmaster" address is not case sensitive.
IETF RFC\ 5322
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/man-pages.7 b/man7/man-pages.7
index 5db781aa3..a967fe93d 100644
--- a/man7/man-pages.7
+++ b/man7/man-pages.7
@@ -943,8 +943,12 @@ description of the interface.
An example program that does nothing
other than call an interface usually serves little purpose.
.IP *
-Example programs should be fairly short (preferably less than 100 lines;
-ideally less than 50 lines).
+Example programs should ideally be short
+(e.g., a good example can often be provided in less than 100 lines of code),
+though in some cases longer programs may be necessary
+to properly illustrate the use of an API.
+.IP *
+Expressive code and useful comments are appreciated.
.IP *
Example programs should do error checking after system calls and
library function calls.
@@ -1016,7 +1020,7 @@ and
.BR man (7),
.BR mdoc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/man.7 b/man7/man.7
index 3abf64053..ed1e9b44e 100644
--- a/man7/man.7
+++ b/man7/man.7
@@ -31,7 +31,7 @@
.\" Modified Tue Jul 27 20:12:02 2004 by Colin Watson <cjwatson@debian.org>
.\" 2007-05-30, mtk: various rewrites and moved much text to new man-pages.7.
.\"
-.TH MAN 7 2019-03-06 "Linux" "Linux Programmer's Manual"
+.TH MAN 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
man \- macros to format man pages
.SH SYNOPSIS
@@ -169,7 +169,8 @@ implementation removes this limitation (you might still want to limit
yourself to 6 arguments for portability's sake).
Arguments are delimited by spaces.
Double quotes can be used to specify an argument which contains spaces.
-All of the arguments will be printed next to each other without
+For the macros that produce alternating type faces,
+the arguments will be printed next to each other without
intervening spaces, so that the
.B \&.BR
command can be used to specify a word in bold followed by a mark of
@@ -177,7 +178,6 @@ punctuation in Roman.
If no arguments are given, the command is applied to the following line
of text.
.SS Other macros and strings
-.PP
Below are other relevant macros and predefined strings.
Unless noted otherwise, all macros
cause a break (end the current line of text).
@@ -429,7 +429,6 @@ that should be added to this list.
.br
.I /usr/man/whatis
.SH NOTES
-.PP
By all means include full URLs (or URIs) in the text itself;
some tools such as
.BR man2html (1)
@@ -483,7 +482,6 @@ tbl(1)
.B v
vgrind(1)
.SH BUGS
-.PP
Most of the macros describe formatting (e.g., font type and spacing) instead
of marking semantic content (e.g., this text is a reference to another page),
compared to formats like mdoc and DocBook (even HTML has more semantic
@@ -523,7 +521,7 @@ is not implemented.
.BR man\-pages (7),
.BR mdoc (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/math_error.7 b/man7/math_error.7
index be5542c5c..e25727f6e 100644
--- a/man7/math_error.7
+++ b/man7/math_error.7
@@ -265,7 +265,7 @@ An error can still be tested for using
.PP
.I "info libc"
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/mount_namespaces.7 b/man7/mount_namespaces.7
index a55619648..18432d4b0 100644
--- a/man7/mount_namespaces.7
+++ b/man7/mount_namespaces.7
@@ -23,7 +23,7 @@
.\" %%%LICENSE_END
.\"
.\"
-.TH MOUNT_NAMESPACES 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH MOUNT_NAMESPACES 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
mount_namespaces \- overview of Linux mount namespaces
.SH DESCRIPTION
@@ -524,7 +524,7 @@ in the first shell:
.EX
sh1# \fBmkdir /mntY/c\fP
sh1# \fBmount /dev/sda1 /mntY/c\fP
-sh1# \fBcat /proc/self/mountinfo | grep '/mnt' | sed 's/ \- .*//'\fP
+sh1# \fBcat /proc/self/mountinfo | grep \(aq/mnt\(aq | sed \(aqs/ \- .*//\(aq\fP
132 83 8:23 / /mntX rw,relatime shared:1
133 83 8:22 / /mntY rw,relatime shared:2
174 132 8:3 / /mntX/a rw,relatime shared:3
@@ -1138,7 +1138,7 @@ See
.IR Documentation/filesystems/sharedsubtree.txt
in the kernel source tree.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/mq_overview.7 b/man7/mq_overview.7
index f9ca06c15..a1a28330e 100644
--- a/man7/mq_overview.7
+++ b/man7/mq_overview.7
@@ -407,7 +407,7 @@ An example of the use of various message queue functions is shown in
.BR epoll (7),
.BR namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/namespaces.7 b/man7/namespaces.7
index 631849c96..2f8bb1161 100644
--- a/man7/namespaces.7
+++ b/man7/namespaces.7
@@ -24,7 +24,7 @@
.\" %%%LICENSE_END
.\"
.\"
-.TH NAMESPACES 7 2020-04-11 "Linux" "Linux Programmer's Manual"
+.TH NAMESPACES 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
namespaces \- overview of Linux namespaces
.SH DESCRIPTION
@@ -41,7 +41,6 @@ describes the associated
files, and summarizes the APIs for working with namespaces.
.\"
.SS Namespace types
-.PP
The following table shows the namespace types available on Linux.
The second column of the table shows the flag value that is used to specify
the namespace type in various APIs.
@@ -396,6 +395,11 @@ and there is a process that refers to the namespace via a
.IR /proc/[pid]/ns/pid_for_children
symbolic link.
.IP *
+It is a time namespace,
+and there is a process that refers to the namespace via a
+.IR /proc/[pid]/ns/time_for_children
+symbolic link.
+.IP *
It is an IPC namespace, and a corresponding mount of an
.I mqueue
filesystem (see
@@ -432,7 +436,7 @@ and
.BR pam_namespace (8),
.BR switch_root (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/netdevice.7 b/man7/netdevice.7
index 829bfb564..8f4820bb9 100644
--- a/man7/netdevice.7
+++ b/man7/netdevice.7
@@ -374,7 +374,7 @@ Add the following to your program as a workaround:
.BR ip (7),
.BR rtnetlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/netlink.7 b/man7/netlink.7
index 95d1f6b55..f7785b0cc 100644
--- a/man7/netlink.7
+++ b/man7/netlink.7
@@ -579,7 +579,7 @@ information about libnl
.PP
RFC 3549 "Linux Netlink as an IP Services Protocol"
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/network_namespaces.7 b/man7/network_namespaces.7
index 60ee7a5a6..4d418fffb 100644
--- a/man7/network_namespaces.7
+++ b/man7/network_namespaces.7
@@ -80,7 +80,7 @@ option.
.BR iptables (8),
.BR ovs\-vsctl (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/nptl.7 b/man7/nptl.7
index dbe06edd2..ae5f8639f 100644
--- a/man7/nptl.7
+++ b/man7/nptl.7
@@ -131,7 +131,7 @@ meaning that 32-bit and 64-bit binaries can't share mutexes on x86-64 systems.
.BR signal (7),
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/numa.7 b/man7/numa.7
index 8e3041c64..2f435e25e 100644
--- a/man7/numa.7
+++ b/man7/numa.7
@@ -189,7 +189,7 @@ package.
.BR cpuset (7),
.BR numactl (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/operator.7 b/man7/operator.7
index c5f79c872..c542a09ce 100644
--- a/man7/operator.7
+++ b/man7/operator.7
@@ -75,7 +75,7 @@ The ++ and \-\- operators at this precedence level are
the prefix flavors of the operators.
.PD
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/packet.7 b/man7/packet.7
index 896640c55..55ab9a0d4 100644
--- a/man7/packet.7
+++ b/man7/packet.7
@@ -656,7 +656,7 @@ contains example source code for all available versions of
and
.BR PACKET_TX_RING .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/path_resolution.7 b/man7/path_resolution.7
index 74442f668..2ed13b8d2 100644
--- a/man7/path_resolution.7
+++ b/man7/path_resolution.7
@@ -278,7 +278,7 @@ on directories, and read permission on ordinary files.
.BR credentials (7),
.BR symlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/persistent-keyring.7 b/man7/persistent-keyring.7
index 73b2ddc5c..b83b301cb 100644
--- a/man7/persistent-keyring.7
+++ b/man7/persistent-keyring.7
@@ -124,7 +124,7 @@ creates the key if it does not exist, and links it into the keyring.
.BR user\-keyring (7),
.BR user\-session\-keyring (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/pid_namespaces.7 b/man7/pid_namespaces.7
index 147e904b9..2970b9fbe 100644
--- a/man7/pid_namespaces.7
+++ b/man7/pid_namespaces.7
@@ -24,7 +24,7 @@
.\" %%%LICENSE_END
.\"
.\"
-.TH PID_NAMESPACES 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH PID_NAMESPACES 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
pid_namespaces \- overview of Linux PID namespaces
.SH DESCRIPTION
@@ -372,6 +372,8 @@ and when this file is subsequently read it will show that PID.
.IP
This file is writable by a process that has the
.B CAP_SYS_ADMIN
+or (since Linux 5.9)
+.B CAP_CHECKPOINT_RESTORE
capability inside the user namespace that owns the PID namespace.
.\" This ability is necessary to support checkpoint restore in user-space
This makes it possible to determine the PID that is allocated
@@ -405,7 +407,7 @@ See
.BR user_namespaces (7),
.BR switch_root (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/pipe.7 b/man7/pipe.7
index 2d74a4af4..2bb70c320 100644
--- a/man7/pipe.7
+++ b/man7/pipe.7
@@ -418,7 +418,7 @@ and when opening a previously unopened FIFO.
.BR epoll (7),
.BR fifo (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/pkeys.7 b/man7/pkeys.7
index 333fecbc6..c847fc7a7 100644
--- a/man7/pkeys.7
+++ b/man7/pkeys.7
@@ -295,7 +295,7 @@ main(void)
.BR pkey_mprotect (2),
.BR sigaction (2)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/posixoptions.7 b/man7/posixoptions.7
index 97c0b317e..70fb433a0 100644
--- a/man7/posixoptions.7
+++ b/man7/posixoptions.7
@@ -1032,7 +1032,7 @@ This option may imply the following options from the XSI option groups:
.BR sysconf (3),
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/process-keyring.7 b/man7/process-keyring.7
index 59706eb37..78d1b51b1 100644
--- a/man7/process-keyring.7
+++ b/man7/process-keyring.7
@@ -59,7 +59,7 @@ results.
.BR user\-keyring (7),
.BR user\-session\-keyring (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/pthreads.7 b/man7/pthreads.7
index 9b82857e3..4f1eec643 100644
--- a/man7/pthreads.7
+++ b/man7/pthreads.7
@@ -107,6 +107,10 @@ CPU affinity
.RB ( sched_setaffinity (2))
.SS Pthreads function return values
Most pthreads functions return 0 on success, and an error number on failure.
+The error numbers that can be returned have the same meaning as
+the error numbers returned in
+.I errno
+by conventional system calls and C library functions.
Note that the pthreads functions do not set
.IR errno .
For each of the pthreads functions that can return an error,
@@ -948,7 +952,7 @@ Various Pthreads manual pages, for example:
and
.BR pthread_testcancel (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/pty.7 b/man7/pty.7
index 0b26fb54f..3e68b206b 100644
--- a/man7/pty.7
+++ b/man7/pty.7
@@ -177,7 +177,7 @@ have not been implemented under Linux.
.BR pts (4),
.BR tty (4)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/queue.7 b/man7/queue.7
new file mode 100644
index 000000000..8e04c75df
--- /dev/null
+++ b/man7/queue.7
@@ -0,0 +1,157 @@
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\" and Copyright (c) 2020 by Alejandro Colomar <colomar.6.4.3@gmail.com>
+.\"
+.\" %%%LICENSE_START(BSD_3_CLAUSE_UCB)
+.\" Redistribution and use in source and binary forms, 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.
+.\" %%%LICENSE_END
+.\"
+.\"
+.TH QUEUE 7 2015-02-7 "GNU" "Linux Programmer's Manual"
+.SH NAME
+queue \- implementations of linked lists and queues
+.SH DESCRIPTION
+The
+.I <sys/queue.h>
+header file provides a set of macros that
+define and operate on the following data structures:
+.IP * 3
+singly linked lists (SLIST)
+.IP *
+doubly linked lists (LIST)
+.IP *
+singly linked tail queues (STAILQ)
+.IP *
+doubly linked tail queues (TAILQ)
+.IP *
+doubly linked circular queues (CIRCLEQ)
+.PP
+All structures support the following functionality:
+.IP * 3
+Insertion of a new entry at the head of the list.
+.IP *
+Insertion of a new entry after any element in the list.
+.IP *
+O(1) removal of an entry from the head of the list.
+.IP *
+Forward traversal through the list.
+.\".IP *
+.\" Swapping the contents of two lists.
+.PP
+Code size and execution time
+depend on the complexity of the data structure being used,
+so programmers should take care to choose the appropriate one.
+.SS Singly linked lists (SLIST)
+Singly linked lists are the simplest
+and support only the above functionality.
+Singly linked lists are ideal for applications with
+large datasets and few or no removals,
+or for implementing a LIFO queue.
+Singly linked lists add the following functionality:
+.IP * 3
+O(n) removal of any entry in the list.
+.SS Singly linked tail queues (STAILQ)
+Singly linked tail queues add the following functionality:
+.IP * 3
+Entries can be added at the end of a list.
+.IP *
+O(n) removal of any entry in the list.
+.IP *
+They may be concatenated.
+.PP
+However:
+.IP * 3
+All list insertions must specify the head of the list.
+.IP *
+Each head entry requires two pointers rather than one.
+.PP
+Singly linked tail queues are ideal for applications with
+large datasets and few or no removals,
+or for implementing a FIFO queue.
+.SS Doubly linked data structures
+All doubly linked types of data structures (lists and tail queues)
+additionally allow:
+.IP * 3
+Insertion of a new entry before any element in the list.
+.IP *
+O(1) removal of any entry in the list.
+.PP
+However:
+.IP * 3
+Each element requires two pointers rather than one.
+.SS Doubly linked lists (LIST)
+Linked lists are the simplest of the doubly linked data structures.
+They add the following functionality over the above:
+.IP * 3
+They may be traversed backwards.
+.PP
+However:
+.IP * 3
+To traverse backwards, an entry to begin the traversal and the list in
+which it is contained must be specified.
+.SS Doubly linked tail queues (TAILQ)
+Tail queues add the following functionality:
+.IP * 3
+Entries can be added at the end of a list.
+.IP *
+They may be traversed backwards, from tail to head.
+.IP *
+They may be concatenated.
+.PP
+However:
+.IP * 3
+All list insertions and removals must specify the head of the list.
+.IP *
+Each head entry requires two pointers rather than one.
+.SS Doubly linked circular queues (CIRCLEQ)
+Circular queues add the following functionality over the above:
+.IP * 3
+The first and last entries are connected.
+.PP
+However:
+.IP * 3
+The termination condition for traversal is more complex.
+.SH CONFORMING TO
+Not in POSIX.1, POSIX.1-2001 or POSIX.1-2008.
+Present on the BSDs.
+.I <sys/queue.h>
+macros first appeared in 4.4BSD.
+.SH SEE ALSO
+.BR circleq (3),
+.BR insque (3),
+.BR list (3),
+.BR slist (3),
+.BR stailq (3),
+.BR tailq (3)
+.\" .BR tree (3)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man7/random.7 b/man7/random.7
index 80e78efda..e2949dcea 100644
--- a/man7/random.7
+++ b/man7/random.7
@@ -231,7 +231,7 @@ skillfully implemented.
.BR urandom (4),
.BR signal (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/raw.7 b/man7/raw.7
index 7b2151aa1..88918839f 100644
--- a/man7/raw.7
+++ b/man7/raw.7
@@ -285,7 +285,7 @@ and the
.I <linux/ip.h>
header file for the IP protocol.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/regex.7 b/man7/regex.7
index f2074c38b..ee509f9ec 100644
--- a/man7/regex.7
+++ b/man7/regex.7
@@ -290,7 +290,7 @@ This page was taken from Henry Spencer's regex package.
.PP
POSIX.2, section 2.8 (Regular Expression Notation).
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/rtld-audit.7 b/man7/rtld-audit.7
index 144dbf23f..1040ec49a 100644
--- a/man7/rtld-audit.7
+++ b/man7/rtld-audit.7
@@ -25,7 +25,7 @@
.\"
.\" 2009-01-12, mtk, Created
.\"
-.TH RTLD-AUDIT 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH RTLD-AUDIT 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
rtld-audit \- auditing API for the dynamic linker
.SH SYNOPSIS
@@ -70,17 +70,33 @@ the auditing library.
When invoking this function, the dynamic linker passes, in
.IR version ,
the highest version of the auditing interface that the linker supports.
-If necessary, the auditing library can check that this version
-is sufficient for its requirements.
.PP
-As its function result,
-this function should return the version of the auditing interface
-that this auditing library expects to use (returning
+A typical implementation of this function simply returns the constant
+.BR LAV_CURRENT ,
+which indicates the version of
+.I <link.h>
+that was used to build the audit module.
+If the dynamic linker does
+not support this version of the audit interface, it will refuse to
+activate this audit module.
+If the function returns zero, the dynamic
+linker also does not activate this audit module.
+.PP
+In order to enable backwards compatibility with older dynamic linkers,
+an audit module can examine the
+.I version
+argument and return an earlier version than
+.BR LAV_CURRENT ,
+assuming the module can adjust its implementation to match the
+requirements of the previous version of the audit interface.
+The
+.B la_version
+function should not return the value of
.I version
-is acceptable).
-If the returned value is 0,
-or a version that is greater than that supported by the dynamic linker,
-then the audit library is ignored.
+without further checks because it could correspond to an interface
+that does not match the
+.I <link.h>
+definitions used to build the audit module.
.SS la_objsearch()
\&
.nf
@@ -360,7 +376,7 @@ Here is the definition for x86-32:
.BI "Elf32_Addr la_i86_gnu_pltenter(Elf32_Sym *" sym ", unsigned int " ndx ,
.BI " uintptr_t *" refcook ", uintptr_t *" defcook ,
.BI " La_i86_regs *" regs ", unsigned int *" flags ,
-.BI " const char *" symname ", long int *" framesizep );
+.BI " const char *" symname ", long *" framesizep );
.fi
.PP
This function is invoked just before a PLT entry is called,
@@ -508,9 +524,10 @@ This is reportedly fixed in glibc 2.10.
unsigned int
la_version(unsigned int version)
{
- printf("la_version(): %d\en", version);
+ printf("la_version(): version = %u; LAV_CURRENT = %u\en",
+ version, LAV_CURRENT);
- return version;
+ return LAV_CURRENT;
}
char *
@@ -572,7 +589,7 @@ la_symbind32(Elf32_Sym *sym, unsigned int ndx, uintptr_t *refcook,
{
printf("la_symbind32(): symname = %s; sym\->st_value = %p\en",
symname, sym\->st_value);
- printf(" ndx = %d; flags = 0x%x", ndx, *flags);
+ printf(" ndx = %u; flags = %#x", ndx, *flags);
printf("; refcook = %p; defcook = %p\en", refcook, defcook);
return sym\->st_value;
@@ -584,7 +601,7 @@ la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
{
printf("la_symbind64(): symname = %s; sym\->st_value = %p\en",
symname, sym\->st_value);
- printf(" ndx = %d; flags = 0x%x", ndx, *flags);
+ printf(" ndx = %u; flags = %#x", ndx, *flags);
printf("; refcook = %p; defcook = %p\en", refcook, defcook);
return sym\->st_value;
@@ -593,7 +610,7 @@ la_symbind64(Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
Elf32_Addr
la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,
uintptr_t *refcook, uintptr_t *defcook, La_i86_regs *regs,
- unsigned int *flags, const char *symname, long int *framesizep)
+ unsigned int *flags, const char *symname, long *framesizep)
{
printf("la_i86_gnu_pltenter(): %s (%p)\en", symname, sym\->st_value);
@@ -606,7 +623,7 @@ la_i86_gnu_pltenter(Elf32_Sym *sym, unsigned int ndx,
.BR ld.so (8),
.BR ldconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/rtnetlink.7 b/man7/rtnetlink.7
index 4c3db4320..e69802090 100644
--- a/man7/rtnetlink.7
+++ b/man7/rtnetlink.7
@@ -59,7 +59,7 @@ Rtnetlink consists of these message types
(in addition to standard netlink messages):
.TP
.BR RTM_NEWLINK ", " RTM_DELLINK ", " RTM_GETLINK
-Create, remove or get information about a specific network interface.
+Create, remove, or get information about a specific network interface.
These messages contain an
.I ifinfomsg
structure followed by a series of
@@ -91,7 +91,7 @@ is reserved for future use and should be always set to 0xFFFFFFFF.
.TS
tab(:);
c s s
-l l l.
+lb l l.
Routing attributes
rta_type:Value type:Description
_
@@ -106,7 +106,7 @@ IFLA_STATS:T{
see below
T}:Interface Statistics
.TE
-.PP
+.IP
The value type for
.B IFLA_STATS
is
@@ -115,7 +115,7 @@ is
in Linux 2.4 and earlier).
.TP
.BR RTM_NEWADDR ", " RTM_DELADDR ", " RTM_GETADDR
-Add, remove or receive information about an IP address associated with
+Add, remove, or receive information about an IP address associated with
an interface.
In Linux 2.2, an interface can carry multiple IP addresses,
this replaces the alias device concept in 2.0.
@@ -158,7 +158,7 @@ for a permanent address set by the user and other undocumented flags.
.TS
tab(:);
c s s
-l l l.
+lb l l.
Attributes
rta_type:Value type:Description
_
@@ -173,7 +173,7 @@ IFA_CACHEINFO:struct ifa_cacheinfo:Address information
.\" FIXME Document struct ifa_cacheinfo
.TP
.BR RTM_NEWROUTE ", " RTM_DELROUTE ", " RTM_GETROUTE
-Create, remove or receive information about a network route.
+Create, remove, or receive information about a network route.
These messages contain an
.I rtmsg
structure with an optional sequence of
@@ -209,7 +209,7 @@ struct rtmsg {
.EE
.TS
tab(:);
-l l.
+lb l.
rtm_type:Route type
_
RTN_UNSPEC:unknown route
@@ -233,7 +233,7 @@ T}
.TE
.TS
tab(:);
-l l.
+lb l.
rtm_protocol:Route origin
_
RTPROT_UNSPEC:unknown
@@ -258,7 +258,7 @@ for the routing daemon identifiers which are already assigned.
is the distance to the destination:
.TS
tab(:);
-l l.
+lb l.
RT_SCOPE_UNIVERSE:global route
RT_SCOPE_SITE:T{
interior route in the local autonomous system
@@ -279,7 +279,7 @@ The
have the following meanings:
.TS
tab(:);
-l l.
+lb l.
RTM_F_NOTIFY:T{
if the route changes, notify the user via rtnetlink
T}
@@ -291,7 +291,7 @@ RTM_F_EQUALIZE:a multipath equalizer (not yet implemented)
specifies the routing table
.TS
tab(:);
-l l.
+lb l.
RT_TABLE_UNSPEC:an unspecified routing table
RT_TABLE_DEFAULT:the default table
RT_TABLE_MAIN:the main table
@@ -307,7 +307,7 @@ and
.TS
tab(:);
c s s
-l2 l2 l.
+lb2 l2 l.
Attributes
rta_type:Value type:Description
_
@@ -360,29 +360,36 @@ Expire time for IPv6
routes (in seconds)
T}
.TE
-.PP
-.I RTA_MULTIPATH
+.IP
+.B RTA_MULTIPATH
contains several packed instances of
.I struct rtnexthop
together with nested RTAs
.RB ( RTA_GATEWAY ):
-.PP
+.IP
.in +4n
.EX
struct rtnexthop {
unsigned short rtnh_len; /* Length of struct + length
of RTAs */
- unsigned char rtnh_flags; /* Flags (see linux/rtnetlink.h) */
+ unsigned char rtnh_flags; /* Flags (see
+ linux/rtnetlink.h) */
unsigned char rtnh_hops; /* Nexthop priority */
int rtnh_ifindex; /* Interface index for this
nexthop */
}
.EE
.in
-.PP
-There exist a bunch of RTNH_* macros similar to RTA_* and NLHDR_* macros
+.IP
+There exist a bunch of
+.B RTNH_*
+macros similar to
+.B RTA_*
+and
+.B NLHDR_*
+macros
useful to handle these structures.
-.PP
+.IP
.in +4n
.EX
struct rtvia {
@@ -391,27 +398,35 @@ struct rtvia {
};
.EE
.in
-.PP
+.IP
.I rtvia_addr
is the address,
.I rtvia_family
is its family type.
-.PP
-.I RTA_PREF
-may contain values ICMPV6_ROUTER_PREF_LOW,
-ICMPV6_ROUTER_PREF_MEDIUM and
-ICMPV6_ROUTER_PREF_HIGH defined in <linux/icmpv6.h>
-.PP
-.I RTA_ENCAP_TYPE
+.IP
+.B RTA_PREF
may contain values
-LWTUNNEL_ENCAP_MPLS, LWTUNNEL_ENCAP_IP,
-LWTUNNEL_ENCAP_ILA or LWTUNNEL_ENCAP_IP6
-defined in <linux/lwtunnel.h>.
-.sp 1
+.BR ICMPV6_ROUTER_PREF_LOW ,
+.BR ICMPV6_ROUTER_PREF_MEDIUM ,
+and
+.BR ICMPV6_ROUTER_PREF_HIGH
+defined incw
+.IR <linux/icmpv6.h> .
+.IP
+.B RTA_ENCAP_TYPE
+may contain values
+.BR LWTUNNEL_ENCAP_MPLS ,
+.BR LWTUNNEL_ENCAP_IP ,
+.BR LWTUNNEL_ENCAP_ILA ,
+or
+.BR LWTUNNEL_ENCAP_IP6
+defined in
+.IR <linux/lwtunnel.h> .
+.IP
.B Fill these values in!
.TP
.BR RTM_NEWNEIGH ", " RTM_DELNEIGH ", " RTM_GETNEIGH
-Add, remove or receive information about a neighbor table
+Add, remove, or receive information about a neighbor table
entry (e.g., an ARP entry).
The message contains an
.I ndmsg
@@ -438,7 +453,7 @@ struct nda_cacheinfo {
is a bit mask of the following states:
.TS
tab(:);
-l l.
+lb l.
NUD_INCOMPLETE:a currently resolving cache entry
NUD_REACHABLE:a confirmed working cache entry
NUD_STALE:an expired cache entry
@@ -454,7 +469,7 @@ Valid
are:
.TS
tab(:);
-l l.
+lb l.
NTF_PROXY:a proxy arp entry
NTF_ROUTER:an IPv6 router
.TE
@@ -468,7 +483,7 @@ struct has the following meanings for the
field:
.TS
tab(:);
-l l.
+lb l.
NDA_UNSPEC:unknown type
NDA_DST:a neighbor cache n/w layer destination address
NDA_LLADDR:a neighbor cache link layer address
@@ -481,15 +496,15 @@ field is
.BR NDA_CACHEINFO ,
then a
.I struct nda_cacheinfo
-header follows
+header follows.
.TP
.BR RTM_NEWRULE ", " RTM_DELRULE ", " RTM_GETRULE
-Add, delete or retrieve a routing rule.
+Add, delete, or retrieve a routing rule.
Carries a
.I struct rtmsg
.TP
.BR RTM_NEWQDISC ", " RTM_DELQDISC ", " RTM_GETQDISC
-Add, remove or get a queueing discipline.
+Add, remove, or get a queueing discipline.
The message contains a
.I struct tcmsg
and may be followed by a series of
@@ -507,7 +522,7 @@ struct tcmsg {
.TS
tab(:);
c s s
-l2 l2 l.
+lb2 l2 l.
Attributes
rta_type:Value type:Description
_
@@ -523,13 +538,13 @@ In addition, various other qdisc-module-specific attributes are allowed.
For more information see the appropriate include files.
.TP
.BR RTM_NEWTCLASS ", " RTM_DELTCLASS ", " RTM_GETTCLASS
-Add, remove or get a traffic class.
+Add, remove, or get a traffic class.
These messages contain a
.I struct tcmsg
as described above.
.TP
.BR RTM_NEWTFILTER ", " RTM_DELTFILTER ", " RTM_GETTFILTER
-Add, remove or receive information about a traffic filter.
+Add, remove, or receive information about a traffic filter.
These messages contain a
.I struct tcmsg
as described above.
@@ -544,7 +559,7 @@ This manual page is incomplete.
.BR ip (7),
.BR netlink (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/sched.7 b/man7/sched.7
index a2747b317..ba727532f 100644
--- a/man7/sched.7
+++ b/man7/sched.7
@@ -1007,7 +1007,7 @@ The Linux kernel source files
and
.IR Documentation/scheduler/sched-nice-design.txt
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/sem_overview.7 b/man7/sem_overview.7
index 277b6b2d3..872c8daa3 100644
--- a/man7/sem_overview.7
+++ b/man7/sem_overview.7
@@ -158,7 +158,7 @@ An example of the use of various POSIX semaphore functions is shown in
.BR pthreads (7),
.BR shm_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/session-keyring.7 b/man7/session-keyring.7
index 7679e213c..f25ba9e44 100644
--- a/man7/session-keyring.7
+++ b/man7/session-keyring.7
@@ -114,7 +114,7 @@ keyctl new_session
.BR user\-session\-keyring (7),
.BR pam_keyinit (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/shm_overview.7 b/man7/shm_overview.7
index 564b3a521..37411e518 100644
--- a/man7/shm_overview.7
+++ b/man7/shm_overview.7
@@ -122,7 +122,7 @@ on the other hand POSIX shared memory is somewhat less widely available
.BR shm_unlink (3),
.BR sem_overview (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/sigevent.7 b/man7/sigevent.7
index 4875f3850..0174bcec5 100644
--- a/man7/sigevent.7
+++ b/man7/sigevent.7
@@ -23,31 +23,32 @@
.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH SIGEVENT 7 2020-04-11 "GNU" "Linux Programmer's Manual"
+.TH SIGEVENT 7 2020-11-01 "GNU" "Linux Programmer's Manual"
.SH NAME
sigevent \- structure for notification from asynchronous routines
.SH SYNOPSIS
.nf
#include <signal.h>
.PP
-union sigval { /* Data passed with notification */
- int sival_int; /* Integer value */
- void *sival_ptr; /* Pointer value */
+union sigval { /* Data passed with notification */
+ int sival_int; /* Integer value */
+ void *sival_ptr; /* Pointer value */
};
.PP
struct sigevent {
- int sigev_notify; /* Notification method */
- int sigev_signo; /* Notification signal */
- union sigval sigev_value; /* Data passed with
- notification */
- void (*sigev_notify_function) (union sigval);
- /* Function used for thread
- notification (SIGEV_THREAD) */
- void *sigev_notify_attributes;
- /* Attributes for notification thread
- (SIGEV_THREAD) */
- pid_t sigev_notify_thread_id;
- /* ID of thread to signal (SIGEV_THREAD_ID) */
+ int sigev_notify; /* Notification method */
+ int sigev_signo; /* Notification signal */
+ union sigval sigev_value;
+ /* Data passed with notification */
+ void (*sigev_notify_function) (union sigval);
+ /* Function used for thread
+ notification (SIGEV_THREAD) */
+ void *sigev_notify_attributes;
+ /* Attributes for notification thread
+ (SIGEV_THREAD) */
+ pid_t sigev_notify_thread_id;
+ /* ID of thread to signal
+ (SIGEV_THREAD_ID); Linux-specific */
};
.fi
.SH DESCRIPTION
@@ -139,7 +140,7 @@ Currently used only by POSIX timers; see
.BR aio (7),
.BR pthreads (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/signal-safety.7 b/man7/signal-safety.7
index 046fc1aec..85071f526 100644
--- a/man7/signal-safety.7
+++ b/man7/signal-safety.7
@@ -345,7 +345,7 @@ internally.
.BR signal (7),
.BR standards (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/signal.7 b/man7/signal.7
index a8c4bc895..8296e5ab5 100644
--- a/man7/signal.7
+++ b/man7/signal.7
@@ -322,7 +322,6 @@ is to terminate the process without a core dump.)
Linux 2.4 conforms to the POSIX.1-2001 requirements for these signals,
terminating the process with a core dump.
.PP
-.PP
.B SIGEMT
is not specified in POSIX.1-2001, but nevertheless appears
on most other UNIX systems,
@@ -908,7 +907,7 @@ because of how the CPU reports the forbidden operation to the kernel.
.BR pthreads (7),
.BR sigevent (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/sock_diag.7 b/man7/sock_diag.7
index 546064052..218ad1892 100644
--- a/man7/sock_diag.7
+++ b/man7/sock_diag.7
@@ -21,7 +21,7 @@
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
-.TH SOCK_DIAG 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH SOCK_DIAG 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
sock_diag \- obtaining information about sockets
.SH SYNOPSIS
@@ -680,7 +680,7 @@ send_query(int fd)
.iov_len = sizeof(req)
};
struct msghdr msg = {
- .msg_name = (void *) &nladdr,
+ .msg_name = &nladdr,
.msg_namelen = sizeof(nladdr),
.msg_iov = &iov,
.msg_iovlen = 1
@@ -711,13 +711,12 @@ print_diag(const struct unix_diag_msg *diag, unsigned int len)
return \-1;
}
- struct rtattr *attr;
unsigned int rta_len = len \- NLMSG_LENGTH(sizeof(*diag));
unsigned int peer = 0;
size_t path_len = 0;
char path[sizeof(((struct sockaddr_un *) 0)\->sun_path) + 1];
- for (attr = (struct rtattr *) (diag + 1);
+ for (struct rtattr *attr = (struct rtattr *) (diag + 1);
RTA_OK(attr, rta_len); attr = RTA_NEXT(attr, rta_len)) {
switch (attr\->rta_type) {
case UNIX_DIAG_NAME:
@@ -726,7 +725,7 @@ print_diag(const struct unix_diag_msg *diag, unsigned int len)
if (path_len > sizeof(path) \- 1)
path_len = sizeof(path) \- 1;
memcpy(path, RTA_DATA(attr), path_len);
- path[path_len] = '\e0';
+ path[path_len] = \(aq\e0\(aq;
}
break;
@@ -746,7 +745,7 @@ print_diag(const struct unix_diag_msg *diag, unsigned int len)
printf(", name=%s%s", *path ? "" : "@",
*path ? path : path + 1);
- putchar('\en');
+ putchar(\(aq\en\(aq);
return 0;
}
@@ -765,7 +764,7 @@ receive_responses(int fd)
for (;;) {
struct msghdr msg = {
- .msg_name = (void *) &nladdr,
+ .msg_name = &nladdr,
.msg_namelen = sizeof(nladdr),
.msg_iov = &iov,
.msg_iovlen = 1
@@ -841,7 +840,7 @@ main(void)
.BR netlink (7),
.BR tcp (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/socket.7 b/man7/socket.7
index 5b701a239..76108f9b8 100644
--- a/man7/socket.7
+++ b/man7/socket.7
@@ -519,6 +519,22 @@ This provides optimal NUMA behavior and keeps CPU caches hot.
.\" SO_REUSEPORT logic, selecting the socket to receive the packet, ignores
.\" SO_INCOMING_CPU setting.
.TP
+.BR SO_INCOMING_NAPI_ID " (gettable since Linux 4.12)"
+.\" getsockopt 6d4339028b350efbf87c61e6d9e113e5373545c9
+Returns a system level unique ID called NAPI ID that is associated
+with a RX queue on which the last packet associated with that
+socket is received.
+.IP
+This can be used by an application to split the incoming flows among worker
+threads based on the RX queue on which the packets associated with the
+flows are received.
+It allows each worker thread to be associated with
+a NIC HW receive queue and service all the connection
+requests received on that RX queue.
+This mapping between a app thread and
+a HW NIC queue streamlines the
+flow of data from the NIC to the application.
+.TP
.B SO_KEEPALIVE
Enable sending of keep-alive messages on connection-oriented sockets.
Expects an integer boolean flag.
@@ -690,6 +706,13 @@ Return the credentials of the peer process connected to this socket.
For further details, see
.BR unix (7).
.TP
+.BR SO_PEERSEC " (since Linux 2.6.2)"
+Return the security context of the peer socket connected to this socket.
+For further details, see
+.BR unix (7)
+and
+.BR ip (7).
+.TP
.B SO_PRIORITY
Set the protocol-defined priority for all packets to be sent on
this socket.
@@ -1226,13 +1249,14 @@ program is designed to always set this option.
.BR capabilities (7),
.BR ddp (7),
.BR ip (7),
+.BR ipv6 (7),
.BR packet (7),
.BR tcp (7),
.BR udp (7),
.BR unix (7),
.BR tcpdump (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/spufs.7 b/man7/spufs.7
index ba3397fc9..8e67a779a 100644
--- a/man7/spufs.7
+++ b/man7/spufs.7
@@ -771,7 +771,7 @@ none /spu spufs gid=spu 0 0
.PP
.I The Cell Broadband Engine Architecture (CBEA) specification
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/standards.7 b/man7/standards.7
index 57e9fd5e5..31b7de6ea 100644
--- a/man7/standards.7
+++ b/man7/standards.7
@@ -21,7 +21,7 @@
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
-.TH STANDARDS 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH STANDARDS 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
standards \- C and UNIX Standards
.SH DESCRIPTION
@@ -304,9 +304,10 @@ the XCurses specification.
.BR attributes (7),
.BR feature_test_macros (7),
.BR libc (7),
-.BR posixoptions (7)
+.BR posixoptions (7),
+.BR system_data_types (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/suffixes.7 b/man7/suffixes.7
index 772e6f66d..c746a3c98 100644
--- a/man7/suffixes.7
+++ b/man7/suffixes.7
@@ -281,7 +281,7 @@ This list is not exhaustive.
.BR file (1),
.BR make (1)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/symlink.7 b/man7/symlink.7
index acc23f84e..1062d057e 100644
--- a/man7/symlink.7
+++ b/man7/symlink.7
@@ -582,7 +582,7 @@ whether specified on the command line or encountered in the tree walk.
.BR lutimes (3),
.BR path_resolution (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/system_data_types.7 b/man7/system_data_types.7
new file mode 100644
index 000000000..6726bff21
--- /dev/null
+++ b/man7/system_data_types.7
@@ -0,0 +1,1872 @@
+.\" Copyright (c) 2020 by Alejandro Colomar <colomar.6.4.3@gmail.com>
+.\" and Copyright (c) 2020 by Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" %%%LICENSE_START(VERBATIM)
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
+.\"
+.\"
+.TH SYSTEM_DATA_TYPES 7 2020-09-13 "Linux" "Linux Programmer's Manual"
+.SH NAME
+system_data_types \- overview of system data types
+.SH DESCRIPTION
+.\" Layout:
+.\" A list of type names (the struct/union keyword will be omitted).
+.\" Each entry will have the following parts:
+.\" * Include (see NOTES)
+.\"
+.\" * Definition (no "Definition" header)
+.\" Only struct/union types will have definition;
+.\" typedefs will remain opaque.
+.\"
+.\" * Description (no "Description" header)
+.\" A few lines describing the type.
+.\"
+.\" * Versions (optional)
+.\"
+.\" * Conforming to (see NOTES)
+.\" Format: CXY and later; POSIX.1-XXXX and later.
+.\"
+.\" * Notes (optional)
+.\"
+.\" * Bugs (if any)
+.\"
+.\" * See also
+.\"------------------------------------- aiocb ------------------------/
+.TP
+.I aiocb
+.RS
+.IR Include :
+.IR <aio.h> .
+.PP
+.EX
+struct aiocb {
+ int aio_fildes; /* File descriptor */
+ off_t aio_offset; /* File offset */
+ volatile void *aio_buf; /* Location of buffer */
+ size_t aio_nbytes; /* Length of transfer */
+ int aio_reqprio; /* Request priority offset */
+ struct sigevent aio_sigevent; /* Signal number and value */
+ int aio_lio_opcode;/* Operation to be performed */
+};
+.EE
+.PP
+For further information about this structure, see
+.BR aio (7).
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR aio_cancel (3),
+.BR aio_error (3),
+.BR aio_fsync (3),
+.BR aio_read (3),
+.BR aio_return (3),
+.BR aio_suspend (3),
+.BR aio_write (3),
+.BR lio_listio (3)
+.RE
+.\"------------------------------------- clock_t ----------------------/
+.TP
+.I clock_t
+.RS
+.IR Include :
+.I <time.h>
+or
+.IR <sys/types.h> .
+Alternatively,
+.IR <sys/time.h> .
+.PP
+Used for system time in clock ticks or
+.B CLOCKS_PER_SEC
+(defined in
+.IR <time.h> ).
+According to POSIX,
+it shall be an integer type or a real-floating type.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR times (2),
+.BR clock (3)
+.RE
+.\"------------------------------------- clockid_t --------------------/
+.TP
+.I clockid_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <time.h> .
+.PP
+Used for clock ID type in the clock and timer functions.
+According to POSIX,
+it shall be defined as an arithmetic type.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR clock_adjtime (2),
+.BR clock_getres (2),
+.BR clock_nanosleep (2),
+.BR timer_create (2),
+.BR clock_getcpuclockid (3)
+.RE
+.\"------------------------------------- dev_t ------------------------/
+.TP
+.I dev_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <sys/stat.h> .
+.PP
+Used for device IDs.
+According to POSIX,
+it shall be an integer type.
+For further details of this type, see
+.BR makedev (3).
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR mknod (2),
+.BR stat (2)
+.RE
+.\"------------------------------------- div_t ------------------------/
+.TP
+.I div_t
+.RS
+.IR Include :
+.IR <stdlib.h> .
+.PP
+.EX
+typedef struct {
+ int quot; /* Quotient */
+ int rem; /* Remainder */
+} div_t;
+.EE
+.PP
+It is the type of the value returned by the
+.BR div (3)
+function.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR div (3)
+.RE
+.\"------------------------------------- double_t ---------------------/
+.TP
+.I double_t
+.RS
+.IR Include :
+.IR <math.h> .
+.PP
+The implementation's most efficient floating type at least as wide as
+.IR double .
+Its type depends on the value of the macro
+.B FLT_EVAL_METHOD
+(defined in
+.IR <float.h> ):
+.TP
+0
+.I double_t
+is
+.IR double .
+.TP
+1
+.I double_t
+is
+.IR double .
+.TP
+2
+.I double_t
+is
+.IR "long double" .
+.PP
+For other values of
+.BR FLT_EVAL_METHOD ,
+the type of
+.I double_t
+is implementation-defined.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.I float_t
+type in this page.
+.RE
+.\"------------------------------------- fd_set -----------------------/
+.TP
+.I fd_set
+.RS
+.IR Include :
+.IR <sys/select.h> .
+Alternatively,
+.IR <sys/time.h> .
+.PP
+A structure type that can represent a set of file descriptors.
+According to POSIX,
+the maximum number of file descriptors in an
+.I fd_set
+structure is the value of the macro
+.BR FD_SETSIZE .
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR select (2)
+.RE
+.\"------------------------------------- fenv_t -----------------------/
+.TP
+.I fenv_t
+.RS
+.IR Include :
+.IR <fenv.h> .
+.PP
+This type represents the entire floating-point environment,
+including control modes and status flags; for further details, see
+.BR fenv (3).
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR fenv (3)
+.RE
+.\"------------------------------------- fexcept_t --------------------/
+.TP
+.I fexcept_t
+.RS
+.IR Include :
+.IR <fenv.h> .
+.PP
+This type represents the floating-point status flags collectively;
+for further details see
+.BR fenv (3).
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR fenv (3)
+.RE
+.\"------------------------------------- FILE -------------------------/
+.TP
+.I FILE
+.RS
+.IR Include :
+.IR <stdio.h> .
+Alternatively,
+.IR <wchar.h> .
+.PP
+An object type used for streams.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR fclose (3),
+.BR flockfile (3),
+.BR fopen (3),
+.BR fprintf (3),
+.BR fread (3),
+.BR fscanf (3),
+.BR stdin (3),
+.BR stdio (3)
+.RE
+.\"------------------------------------- float_t ----------------------/
+.TP
+.I float_t
+.RS
+.IR Include :
+.IR <math.h> .
+.PP
+The implementation's most efficient floating type at least as wide as
+.IR float .
+Its type depends on the value of the macro
+.B FLT_EVAL_METHOD
+(defined in
+.IR <float.h> ):
+.TP
+0
+.I float_t
+is
+.IR float .
+.TP
+1
+.I float_t
+is
+.IR double .
+.TP
+2
+.I float_t
+is
+.IR "long double" .
+.PP
+For other values of
+.BR FLT_EVAL_METHOD ,
+the type of
+.I float_t
+is implementation-defined.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.I double_t
+type in this page.
+.RE
+.\"------------------------------------- gid_t ------------------------/
+.TP
+.I gid_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <grp.h> ,
+.IR <pwd.h> ,
+.IR <signal.h> ,
+.IR <stropts.h> ,
+.IR <sys/ipc.h> ,
+.IR <sys/stat.h> ,
+or
+.IR <unistd.h> .
+.PP
+A type used to hold group IDs.
+According to POSIX,
+this shall be an integer type.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR chown (2),
+.BR getgid (2),
+.BR getegid (2),
+.BR getgroups (2),
+.BR getresgid (2),
+.BR getgrnam (2),
+.BR credentials (7)
+.RE
+.\"------------------------------------- id_t -------------------------/
+.TP
+.I id_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <sys/resource.h> .
+.PP
+A type used to hold a general identifier.
+According to POSIX,
+this shall be an integer type that can be used to contain a
+.IR pid_t ,
+.IR uid_t ,
+or
+.IR gid_t .
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR getpriority (2),
+.BR waitid (2)
+.RE
+.\"------------------------------------- imaxdiv_t --------------------/
+.TP
+.I imaxdiv_t
+.RS
+.IR Include :
+.IR <inttypes.h> .
+.PP
+.EX
+typedef struct {
+ intmax_t quot; /* Quotient */
+ intmax_t rem; /* Remainder */
+} imaxdiv_t;
+.EE
+.PP
+It is the type of the value returned by the
+.BR imaxdiv (3)
+function.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR imaxdiv (3)
+.RE
+.\"------------------------------------- intmax_t ---------------------/
+.TP
+.I intmax_t
+.RS
+.IR Include :
+.IR <stdint.h> .
+Alternatively,
+.IR <inttypes.h> .
+.PP
+A signed integer type
+capable of representing any value of any signed integer type
+supported by the implementation.
+According to the C language standard, it shall be
+capable of storing values in the range
+.RB [ INTMAX_MIN ,
+.BR INTMAX_MAX ].
+.PP
+The macro
+.BR INTMAX_C ()
+.\" TODO: Document INT*_C(3)
+expands its argument to an integer constant of type
+.IR intmax_t .
+.PP
+The length modifier for
+.I intmax_t
+for the
+.BR printf (3)
+and the
+.BR scanf (3)
+families of functions is
+.BR j ;
+resulting commonly in
+.B %jd
+or
+.B %ji
+for printing
+.I intmax_t
+values.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR Bugs :
+.I intmax_t
+is not large enough to represent values of type
+.I __int128
+in implementations where
+.I __int128
+is defined and
+.I long long
+is less than 128 bits wide.
+.PP
+.IR "See also" :
+the
+.I uintmax_t
+type in this page.
+.RE
+.\"------------------------------------- intN_t -----------------------/
+.TP
+.IR int N _t
+.RS
+.IR Include :
+.IR <stdint.h> .
+Alternatively,
+.IR <inttypes.h> .
+.PP
+.IR int8_t ,
+.IR int16_t ,
+.IR int32_t ,
+.I int64_t
+.PP
+A signed integer type
+of a fixed width of exactly N bits,
+N being the value specified in its type name.
+According to the C language standard, they shall be
+capable of storing values in the range
+.RB [ INT N _MIN ,
+.BR INT N _MAX ],
+substituting N by the appropriate number.
+.PP
+According to POSIX,
+.IR int8_t ,
+.IR int16_t ,
+and
+.I int32_t
+are required;
+.I int64_t
+is only required in implementations that provide integer types
+with width 64;
+and all other types of this form are optional.
+.PP
+The length modifiers for the
+.IR int N _t
+types for the
+.BR printf (3)
+family of functions
+are expanded by macros of the forms
+.BR PRId N
+and
+.BR PRIi N
+(defined in
+.IR <inttypes.h> );
+resulting for example in
+.B %"PRId64"
+or
+.B %"PRIi64"
+for printing
+.I int64_t
+values.
+The length modifiers for the
+.IR int N _t
+types for the
+.BR scanf (3)
+family of functions
+are expanded by macros of the forms
+.BR SCNd N
+and
+.BR SCNi N,
+(defined in
+.IR <inttypes.h> );
+resulting for example in
+.B %"SCNd8"
+or
+.B %"SCNi8"
+for scanning
+.I int8_t
+values.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.IR intmax_t ,
+.IR uint N _t ,
+and
+.I uintmax_t
+types in this page.
+.RE
+.\"------------------------------------- intptr_t ---------------------/
+.TP
+.I intptr_t
+.RS
+.IR Include :
+.IR <stdint.h> .
+Alternatively,
+.IR <inttypes.h> .
+.PP
+A signed integer type
+such that any valid
+.RI ( "void *" )
+value can be converted to this type and back.
+According to the C language standard, it shall be
+capable of storing values in the range
+.RB [ INTPTR_MIN ,
+.BR INTPTR_MAX ].
+.PP
+The length modifier for
+.I intptr_t
+for the
+.BR printf (3)
+family of functions
+is expanded by the macros
+.B PRIdPTR
+and
+.B PRIiPTR
+(defined in
+.IR <inttypes.h> );
+resulting commonly in
+.B %"PRIdPTR"
+or
+.B %"PRIiPTR"
+for printing
+.I intptr_t
+values.
+The length modifier for
+.I intptr_t
+for the
+.BR scanf (3)
+family of functions
+is expanded by the macros
+.B SCNdPTR
+and
+.B SCNiPTR,
+(defined in
+.IR <inttypes.h> );
+resulting commonly in
+.B %"SCNdPTR"
+or
+.B %"SCNiPTR"
+for scanning
+.I intptr_t
+values.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.I uintptr_t
+and
+.I void *
+types in this page.
+.RE
+.\"------------------------------------- lconv ------------------------/
+.TP
+.I lconv
+.RS
+.IR Include :
+.IR <locale.h> .
+.PP
+.EX
+struct lconv { /* Values in the "C" locale: */
+ char *decimal_point; /* "." */
+ char *thousands_sep; /* "" */
+ char *grouping; /* "" */
+ char *mon_decimal_point; /* "" */
+ char *mon_thousands_sep; /* "" */
+ char *mon_grouping; /* "" */
+ char *positive_sign; /* "" */
+ char *negative_sign; /* "" */
+ char *currency_symbol; /* "" */
+ char frac_digits; /* CHAR_MAX */
+ char p_cs_precedes; /* CHAR_MAX */
+ char n_cs_precedes; /* CHAR_MAX */
+ char p_sep_by_space; /* CHAR_MAX */
+ char n_sep_by_space; /* CHAR_MAX */
+ char p_sign_posn; /* CHAR_MAX */
+ char n_sign_posn; /* CHAR_MAX */
+ char *int_curr_symbol; /* "" */
+ char int_frac_digits; /* CHAR_MAX */
+ char int_p_cs_precedes; /* CHAR_MAX */
+ char int_n_cs_precedes; /* CHAR_MAX */
+ char int_p_sep_by_space; /* CHAR_MAX */
+ char int_n_sep_by_space; /* CHAR_MAX */
+ char int_p_sign_posn; /* CHAR_MAX */
+ char int_n_sign_posn; /* CHAR_MAX */
+};
+.EE
+.PP
+Contains members related to the formatting of numeric values.
+In the "C" locale, its members have the values
+shown in the comments above.
+.PP
+.IR "Conforming to" :
+C11 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR setlocale (3),
+.BR localeconv (3),
+.BR charsets (5),
+.BR locale (7)
+.RE
+.\"------------------------------------- ldiv_t -----------------------/
+.TP
+.I ldiv_t
+.RS
+.IR Include :
+.IR <stdlib.h> .
+.PP
+.EX
+typedef struct {
+ long quot; /* Quotient */
+ long rem; /* Remainder */
+} ldiv_t;
+.EE
+.PP
+It is the type of the value returned by the
+.BR ldiv (3)
+function.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR ldiv (3)
+.RE
+.\"------------------------------------- lldiv_t ----------------------/
+.TP
+.I lldiv_t
+.RS
+.IR Include :
+.IR <stdlib.h> .
+.PP
+.EX
+typedef struct {
+ long long quot; /* Quotient */
+ long long rem; /* Remainder */
+} lldiv_t;
+.EE
+.PP
+It is the type of the value returned by the
+.BR lldiv (3)
+function.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR lldiv (3)
+.RE
+.\"------------------------------------- off_t ------------------------/
+.TP
+.I off_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <aio.h> ,
+.IR <fcntl.h> ,
+.IR <stdio.h> ,
+.IR <sys/mman.h> ,
+.IR <sys/stat.h.h> ,
+or
+.IR <unistd.h> .
+.PP
+Used for file sizes.
+According to POSIX,
+this shall be a signed integer type.
+.PP
+.IR Versions :
+.I <aio.h>
+and
+.I <stdio.h>
+define
+.I off_t
+since POSIX.1-2008.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR Notes :
+On some architectures,
+the width of this type can be controlled with the feature test macro
+.BR _FILE_OFFSET_BITS .
+.PP
+.IR "See also" :
+.\" .BR fallocate (2),
+.BR lseek (2),
+.BR mmap (2),
+.\" .BR mmap2 (2),
+.BR posix_fadvise (2),
+.BR pread (2),
+.\" .BR preadv (2),
+.BR truncate (2),
+.BR fseeko (3),
+.\" .BR getdirentries (3),
+.BR lockf (3),
+.BR posix_fallocate (3),
+.BR feature_test_macros (7)
+.\".PP TODO: loff_t, off64_t
+.\"See also the
+.\".I loff_t
+.\"and
+.\".I off64_t
+.\"types in this page.
+.RE
+.\"------------------------------------- pid_t ------------------------/
+.TP
+.I pid_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <fcntl.h> ,
+.IR <sched.h> ,
+.IR <signal.h> ,
+.IR <spawn.h> ,
+.IR <sys/msg.h> ,
+.IR <sys/sem.h> ,
+.IR <sys/shm.h> ,
+.IR <sys/wait.h> ,
+.IR <termios.h> ,
+.IR <time.h> ,
+.IR <unistd.h> ,
+or
+.IR <utmpx.h> .
+.PP
+This type is used for storing process IDs, process group IDs, and session IDs.
+According to POSIX, it shall be a signed integer type,
+and the implementation shall support one or more programming environments
+where the width of
+.I pid_t
+is no greater than the width of the type
+.IR long .
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR fork (2),
+.BR getpid (2),
+.BR getppid (2),
+.BR getsid (2),
+.BR gettid (2),
+.BR getpgid (2),
+.BR kill (2),
+.BR pidfd_open (2),
+.BR sched_setscheduler (2),
+.BR waitpid (2),
+.BR sigqueue (3),
+.BR credentials (7),
+.RE
+.\"------------------------------------- ptrdiff_t --------------------/
+.TP
+.I ptrdiff_t
+.RS
+.IR Include :
+.IR <stddef.h> .
+.PP
+Used for a count of elements, and array indices.
+It is the result of subtracting two pointers.
+According to the C language standard, it shall be a signed integer type
+capable of storing values in the range
+.RB [ PTRDIFF_MIN ,
+.BR PTRDIFF_MAX ].
+.PP
+The length modifier for
+.I ptrdiff_t
+for the
+.BR printf (3)
+and the
+.BR scanf (3)
+families of functions is
+.BR t ;
+resulting commonly in
+.B %td
+or
+.B %ti
+for printing
+.I ptrdiff_t
+values.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.I size_t
+and
+.I ssize_t
+types in this page.
+.RE
+.\"------------------------------------- regex_t ----------------------/
+.TP
+.I regex_t
+.RS
+.IR Include :
+.IR <regex.h> .
+.PP
+.EX
+typedef struct {
+ size_t re_nsub; /* Number of parenthesized subexpressions. */
+} regex_t;
+.EE
+.PP
+This is a structure type used in regular expression matching.
+It holds a compiled regular expression, compiled with
+.BR regcomp (3).
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR regex (3)
+.RE
+.\"------------------------------------- regmatch_t -------------------/
+.TP
+.I regmatch_t
+.RS
+.IR Include :
+.IR <regex.h> .
+.PP
+.EX
+typedef struct {
+ regoff_t rm_so; /* Byte offset from start of string
+ to start of substring */
+ regoff_t rm_eo; /* Byte offset from start of string of
+ the first character after the end of
+ substring */
+} regmatch_t;
+.EE
+.PP
+This is a structure type used in regular expression matching.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR regexec (3)
+.RE
+.\"------------------------------------- regoff_t ---------------------/
+.TP
+.I regoff_t
+.RS
+.IR Include :
+.IR <regex.h> .
+.PP
+According to POSIX, it shall be a signed integer type
+capable of storing the largest value that can be stored in either a
+.I ptrdiff_t
+type or a
+.I ssize_t
+type.
+.PP
+.IR Versions :
+Prior to POSIX.1-2008, the type was capable of storing
+the largest value that can be stored in either an
+.I off_t
+type or a
+.I ssize_t
+type.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.I regmatch_t
+structure and the
+.I ptrdiff_t
+and
+.I ssize_t
+types in this page.
+.RE
+.\"------------------------------------- sigevent ---------------------/
+.TP
+.I sigevent
+.RS
+.IR Include :
+.IR <signal.h> .
+Alternatively,
+.IR <aio.h> ,
+.IR <mqueue.h> ,
+or
+.IR <time.h> .
+.PP
+.EX
+struct sigevent {
+ int sigev_notify; /* Notification type */
+ int sigev_signo; /* Signal number */
+ union sigval sigev_value; /* Signal value */
+ void (*sigev_notify_function)(union sigval);
+ /* Notification function */
+ pthread_attr_t *sigev_notify_attributes;
+ /* Notification attributes */
+};
+.EE
+.PP
+For further details about this type, see
+.BR sigevent (7).
+.PP
+.IR Versions :
+.I <aio.h>
+and
+.I <time.h>
+define
+.I sigevent
+since POSIX.1-2008.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR timer_create (2),
+.BR getaddrinfo_a (3),
+.BR lio_listio (3),
+.BR mq_notify (3)
+.PP
+See also the
+.I aiocb
+structure in this page.
+.RE
+.\"------------------------------------- siginfo_t --------------------/
+.TP
+.I siginfo_t
+.RS
+.IR Include :
+.IR <signal.h> .
+Alternatively,
+.IR <sys/wait.h> .
+.PP
+.EX
+typedef struct {
+ int si_signo; /* Signal number */
+ int si_code; /* Signal code */
+ pid_t si_pid; /* Sending process ID */
+ uid_t si_uid; /* Real user ID of sending process */
+ void *si_addr; /* Address of faulting instruction */
+ int si_status; /* Exit value or signal */
+ union sigval si_value; /* Signal value */
+} siginfo_t;
+.EE
+.PP
+Information associated with a signal.
+For further details on this structure
+(including additional, Linux-specific fields), see
+.BR sigaction (2).
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR pidfd_send_signal (2),
+.BR rt_sigqueueinfo (2),
+.BR sigaction (2),
+.BR sigwaitinfo (2),
+.BR psiginfo (3)
+.RE
+.\"------------------------------------- sigset_t ---------------------/
+.TP
+.I sigset_t
+.RS
+.IR Include :
+.IR <signal.h> .
+Alternatively,
+.IR <spawn.h> ,
+or
+.IR <sys/select.h> .
+.PP
+This is a type that represents a set of signals.
+According to POSIX, this shall be an integer or structure type.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR epoll_pwait (2),
+.BR ppoll (2),
+.BR pselect (2),
+.BR sigaction (2),
+.BR signalfd (2),
+.BR sigpending (2),
+.BR sigprocmask (2),
+.BR sigsuspend (2),
+.BR sigwaitinfo (2),
+.BR signal (7)
+.RE
+.\"------------------------------------- sigval -----------------------/
+.TP
+.I sigval
+.RS
+.IR Include :
+.IR <signal.h> .
+.PP
+.EX
+union sigval {
+ int sigval_int; /* Integer value */
+ void *sigval_ptr; /* Pointer value */
+};
+.EE
+.PP
+Data passed with a signal.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR pthread_sigqueue (3),
+.BR sigqueue (3),
+.BR sigevent (7)
+.PP
+See also the
+.I sigevent
+structure
+and the
+.I siginfo_t
+type
+in this page.
+.RE
+.\"------------------------------------- size_t -----------------------/
+.TP
+.I size_t
+.RS
+.IR Include :
+.I <stddef.h>
+or
+.IR <sys/types.h> .
+Alternatively,
+.IR <aio.h> ,
+.IR <glob.h> ,
+.IR <grp.h> ,
+.IR <iconv.h> ,
+.IR <monetary.h> ,
+.IR <mqueue.h> ,
+.IR <ndbm.h> ,
+.IR <pwd.h> ,
+.IR <regex.h> ,
+.IR <search.h> ,
+.IR <signal.h> ,
+.IR <stdio.h> ,
+.IR <stdlib.h> ,
+.IR <string.h> ,
+.IR <strings.h> ,
+.IR <sys/mman.h> ,
+.IR <sys/msg.h> ,
+.IR <sys/sem.h> ,
+.IR <sys/shm.h> ,
+.IR <sys/socket.h> ,
+.IR <sys/uio.h> ,
+.IR <time.h> ,
+.IR <unistd.h> ,
+.IR <wchar.h> ,
+or
+.IR <wordexp.h> .
+.PP
+Used for a count of bytes. It is the result of the
+.I sizeof
+operator.
+According to the C language standard,
+it shall be an unsigned integer type
+capable of storing values in the range [0,
+.BR SIZE_MAX ].
+According to POSIX,
+the implementation shall support one or more programming environments
+where the width of
+.I size_t
+is no greater than the width of the type
+.IR long .
+.PP
+The length modifier for
+.I size_t
+for the
+.BR printf (3)
+and the
+.BR scanf (3)
+families of functions is
+.BR z ;
+resulting commonly in
+.B %zu
+or
+.B %zx
+for printing
+.I size_t
+values.
+.PP
+.IR Versions :
+.IR <aio.h> ,
+.IR <glob.h> ,
+.IR <grp.h> ,
+.IR <iconv.h> ,
+.IR <mqueue.h> ,
+.IR <pwd.h> ,
+.IR <signal.h> ,
+and
+.I <sys/socket.h>
+define
+.I size_t
+since POSIX.1-2008.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR read (2),
+.BR write (2),
+.BR fread (3),
+.BR fwrite (3),
+.BR memcmp (3),
+.BR memcpy (3),
+.BR memset (3),
+.BR offsetof (3)
+.PP
+See also the
+.I ptrdiff_t
+and
+.I ssize_t
+types in this page.
+.RE
+.\"------------------------------------- ssize_t ----------------------/
+.TP
+.I ssize_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <aio.h> ,
+.IR <monetary.h> ,
+.IR <mqueue.h> ,
+.IR <stdio.h> ,
+.IR <sys/msg.h> ,
+.IR <sys/socket.h> ,
+.IR <sys/uio.h> ,
+or
+.IR <unistd.h> .
+.PP
+Used for a count of bytes or an error indication.
+According to POSIX, it shall be a signed integer type
+capable of storing values at least in the range [-1,
+.BR SSIZE_MAX ],
+and the implementation shall support one or more programming environments
+where the width of
+.I ssize_t
+is no greater than the width of the type
+.IR long .
+.PP
+Glibc and most other implementations provide a length modifier for
+.I ssize_t
+for the
+.BR printf (3)
+and the
+.BR scanf (3)
+families of functions, which is
+.BR z ;
+resulting commonly in
+.B %zd
+or
+.B %zi
+for printing
+.I ssize_t
+values.
+Although
+.B z
+works for
+.I ssize_t
+on most implementations,
+portable POSIX programs should avoid using it\(emfor example,
+by converting the value to
+.I intmax_t
+and using its length modifier
+.RB ( j ).
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR read (2),
+.BR readlink (2),
+.BR readv (2),
+.BR recv (2),
+.BR send (2),
+.BR write (2)
+.PP
+See also the
+.I ptrdiff_t
+and
+.I size_t
+types in this page.
+.RE
+.\"------------------------------------- suseconds_t ------------------/
+.TP
+.I suseconds_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <sys/select.h> ,
+or
+.IR <sys/time.h> .
+.PP
+Used for time in microseconds.
+According to POSIX, it shall be a signed integer type
+capable of storing values at least in the range [-1, 1000000],
+and the implementation shall support one or more programming environments
+where the width of
+.I suseconds_t
+is no greater than the width of the type
+.IR long .
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.I timeval
+structure in this page.
+.RE
+.\"------------------------------------- time_t -----------------------/
+.TP
+.I time_t
+.RS
+.IR Include :
+.I <time.h>
+or
+.IR <sys/types.h> .
+Alternatively,
+.IR <sched.h> ,
+.IR <sys/msg.h> ,
+.IR <sys/select.h> ,
+.IR <sys/sem.h> ,
+.IR <sys/shm.h> ,
+.IR <sys/stat.h> ,
+.IR <sys/time.h> ,
+or
+.IR <utime.h> .
+.PP
+Used for time in seconds.
+According to POSIX, it shall be an integer type.
+.\" In POSIX.1-2001, the type was specified as being either an integer
+.\" type or a real-floating type. However, existing implementations
+.\" used an integer type, and POSIX.1-2008 tightened the specification
+.\" to reflect this.
+.PP
+.IR Versions :
+.I <sched.h>
+defines
+.I time_t
+since POSIX.1-2008.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR stime (2),
+.BR time (2),
+.BR ctime (3),
+.BR difftime (3)
+.RE
+.\"------------------------------------- timer_t ----------------------/
+.TP
+.I timer_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <time.h> .
+.PP
+Used for timer ID returned by
+.BR timer_create (2).
+According to POSIX,
+there are no defined comparison or assignment operators for this type.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR timer_create (2),
+.BR timer_delete (2),
+.BR timer_getoverrun (2),
+.BR timer_settime (2)
+.RE
+.\"------------------------------------- timespec ---------------------/
+.TP
+.I timespec
+.RS
+.IR Include :
+.IR <time.h> .
+Alternatively,
+.IR <aio.h> ,
+.IR <mqueue.h> ,
+.IR <sched.h> ,
+.IR <signal.h> ,
+.IR <sys/select.h> ,
+or
+.IR <sys/stat.h> .
+.PP
+.EX
+struct timespec {
+ time_t tv_sec; /* Seconds */
+ long tv_nsec; /* Nanoseconds */
+};
+.EE
+.PP
+Describes times in seconds and nanoseconds.
+.PP
+.IR "Conforming to" :
+C11 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR clock_gettime (2),
+.BR clock_nanosleep (2),
+.BR nanosleep (2),
+.BR timerfd_gettime (2),
+.BR timer_gettime (2)
+.RE
+.\"------------------------------------- timeval ----------------------/
+.TP
+.I timeval
+.RS
+.IR Include :
+.IR <sys/time.h> .
+Alternatively,
+.IR <sys/resource.h> ,
+.IR <sys/select.h> ,
+or
+.IR <utmpx.h> .
+.PP
+.EX
+struct timeval {
+ time_t tv_sec; /* Seconds */
+ suseconds_t tv_usec; /* Microseconds */
+};
+.EE
+.PP
+Describes times in seconds and microseconds.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR gettimeofday (2),
+.BR select (2),
+.BR utimes (2),
+.BR adjtime (3),
+.BR futimes (3),
+.BR timeradd (3)
+.RE
+.\"------------------------------------- uid_t ----------------------/
+.TP
+.I uid_t
+.RS
+.IR Include :
+.IR <sys/types.h> .
+Alternatively,
+.IR <pwd.h> ,
+.IR <signal.h> ,
+.IR <stropts.h> ,
+.IR <sys/ipc.h> ,
+.IR <sys/stat.h> ,
+or
+.IR <unistd.h> .
+.PP
+A type used to hold user IDs.
+According to POSIX,
+this shall be an integer type.
+.PP
+.IR "Conforming to" :
+POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR chown (2),
+.BR getuid (2),
+.BR geteuid (2),
+.BR getresuid (2),
+.BR getpwnam (2),
+.BR credentials (7)
+.RE
+.\"------------------------------------- uintmax_t --------------------/
+.TP
+.I uintmax_t
+.RS
+.IR Include :
+.IR <stdint.h> .
+Alternatively,
+.IR <inttypes.h> .
+.PP
+An unsigned integer type
+capable of representing any value of any unsigned integer type
+supported by the implementation.
+According to the C language standard, it shall be
+capable of storing values in the range [0,
+.BR UINTMAX_MAX ].
+.PP
+The macro
+.BR UINTMAX_C ()
+.\" TODO: Document UINT*_C(3)
+expands its argument to an integer constant of type
+.IR uintmax_t .
+.PP
+The length modifier for
+.I uintmax_t
+for the
+.BR printf (3)
+and the
+.BR scanf (3)
+families of functions is
+.BR j ;
+resulting commonly in
+.B %ju
+or
+.B %jx
+for printing
+.I uintmax_t
+values.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR Bugs :
+.I uintmax_t
+is not large enough to represent values of type
+.I unsigned __int128
+in implementations where
+.I unsigned __int128
+is defined and
+.I unsigned long long
+is less than 128 bits wide.
+.PP
+.IR "See also" :
+the
+.I intmax_t
+type in this page.
+.RE
+.\"------------------------------------- uintN_t ----------------------/
+.TP
+.IR uint N _t
+.RS
+.IR Include :
+.IR <stdint.h> .
+Alternatively,
+.IR <inttypes.h> .
+.PP
+.IR uint8_t ,
+.IR uint16_t ,
+.IR uint32_t ,
+.I uint64_t
+.PP
+An unsigned integer type
+of a fixed width of exactly N bits,
+N being the value specified in its type name.
+According to the C language standard, they shall be
+capable of storing values in the range [0,
+.BR UINT N _MAX ],
+substituting N by the appropriate number.
+.PP
+According to POSIX,
+.IR uint8_t ,
+.IR uint16_t ,
+and
+.I uint32_t
+are required;
+.I uint64_t
+is only required in implementations that provide integer types
+with width 64;
+and all other types of this form are optional.
+.PP
+The length modifiers for the
+.IR uint N _t
+types for the
+.BR printf (3)
+family of functions
+are expanded by macros of the forms
+.BR PRIu N,
+.BR PRIo N,
+.BR PRIx N,
+and
+.BR PRIX N
+(defined in
+.IR <inttypes.h> );
+resulting for example in
+.B %"PRIu32"
+or
+.B %"PRIx32"
+for printing
+.I uint32_t
+values.
+The length modifiers for the
+.IR uint N _t
+types for the
+.BR scanf (3)
+family of functions
+are expanded by macros of the forms
+.BR SCNu N,
+.BR SCNo N,
+.BR SCNx N,
+and
+.BR SCNX N
+(defined in
+.IR <inttypes.h> );
+resulting for example in
+.B %"SCNu16"
+or
+.B %"SCNx16"
+for scanning
+.I uint16_t
+values.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.IR intmax_t ,
+.IR int N _t ,
+and
+.IR uintmax_t
+types in this page.
+.RE
+.\"------------------------------------- uintptr_t --------------------/
+.TP
+.I uintptr_t
+.RS
+.IR Include :
+.IR <stdint.h> .
+Alternatively,
+.IR <inttypes.h> .
+.PP
+An unsigned integer type
+such that any valid
+.RI ( "void *" )
+value can be converted to this type and back.
+According to the C language standard, it shall be
+capable of storing values in the range [0,
+.BR UINTPTR_MAX ].
+.PP
+The length modifier for
+.I uintptr_t
+for the
+.BR printf (3)
+family of functions
+is expanded by the macros
+.BR PRIuPTR ,
+.BR PRIoPTR ,
+.BR PRIxPTR ,
+and
+.B PRIXPTR
+(defined in
+.IR <inttypes.h> );
+resulting commonly in
+.B %"PRIuPTR"
+or
+.B %"PRIxPTR"
+for printing
+.I uintptr_t
+values.
+The length modifier for
+.I uintptr_t
+for the
+.BR scanf (3)
+family of functions
+is expanded by the macros
+.BR SCNuPTR,
+.BR SCNoPTR,
+.B SCNxPTR
+and
+.B SCNXPTR
+(defined in
+.IR <inttypes.h> );
+resulting commonly in
+.B %"SCNuPTR"
+or
+.B %"SCNxPTR"
+for scanning
+.I uintptr_t
+values.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+the
+.I intptr_t
+and
+.I void *
+types in this page.
+.RE
+.\"------------------------------------- va_list ----------------------/
+.TP
+.I va_list
+.RS
+.IR Include :
+.IR <stdarg> .
+Alternatively,
+.IR <stdio.h> ,
+or
+.IR <wchar.h> .
+.PP
+Used by functions with a varying number of arguments of varying types.
+The function must declare an object of type
+.I va_list
+which is used by the macros
+.BR va_start (3),
+.BR va_arg (3),
+.BR va_copy (3)
+and
+.BR va_end (3)
+to traverse the list of arguments.
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR va_start (3),
+.BR va_arg (3),
+.BR va_copy (3),
+.BR va_end (3)
+.RE
+.\"------------------------------------- void * -----------------------/
+.TP
+.I void *
+.RS
+According to the C language standard,
+a pointer to any object type may be converted to a pointer to
+.I void
+and back.
+POSIX further requires that any pointer,
+including pointers to functions,
+may be converted to a pointer to
+.I void
+and back.
+.PP
+Conversions from and to any other pointer type are done implicitly,
+not requiring casts at all.
+Note that this feature prevents any kind of type checking:
+the programmer should be careful not to convert a
+.I void *
+value to a type incompatible to that of the underlying data,
+because that would result in undefined behavior.
+.PP
+This type is useful in function parameters and return value
+to allow passing values of any type.
+The function will typically use some mechanism to know
+the real type of the data being passed via a pointer to
+.IR void .
+.PP
+A value of this type can't be dereferenced,
+as it would give a value of type
+.IR void ,
+which is not possible.
+Likewise, pointer arithmetic is not possible with this type.
+However, in GNU C, pointer arithmetic is allowed
+as an extension to the standard;
+this is done by treating the size of a
+.I void
+or of a function as 1.
+A consequence of this is that
+.I sizeof
+is also allowed on
+.I void
+and on function types, and returns 1.
+.PP
+The conversion specifier for
+.I void *
+for the
+.BR printf (3)
+and the
+.BR scanf (3)
+families of functions is
+.BR p .
+.PP
+.IR Versions :
+The POSIX requirement about compatibility between
+.I void *
+and function pointers was added in
+POSIX.1-2008 Technical Corrigendum 1 (2013).
+.PP
+.IR "Conforming to" :
+C99 and later; POSIX.1-2001 and later.
+.PP
+.IR "See also" :
+.BR malloc (3),
+.BR memcmp (3),
+.BR memcpy (3),
+.BR memset (3)
+.PP
+See also the
+.I intptr_t
+and
+.I uintptr_t
+types in this page.
+.RE
+.\"--------------------------------------------------------------------/
+.SH NOTES
+The structures described in this manual page shall contain,
+at least, the members shown in their definition, in no particular order.
+.PP
+Most of the integer types described in this page don't have
+a corresponding length modifier for the
+.BR printf (3)
+and the
+.BR scanf (3)
+families of functions.
+To print a value of an integer type that doesn't have a length modifier,
+it should be converted to
+.I intmax_t
+or
+.I uintmax_t
+by an explicit cast.
+To scan into a variable of an integer type
+that doesn't have a length modifier,
+an intermediate temporary variable of type
+.I intmax_t
+or
+.I uintmax_t
+should be used.
+When copying from the temporary variable to the destination variable,
+the value could overflow.
+If the type has upper and lower limits,
+the user should check that the value is within those limits,
+before actually copying the value.
+The example below shows how these conversions should be done.
+.SS Conventions used in this page
+In "Conforming to" we only concern ourselves with
+C99 and later and POSIX.1-2001 and later.
+Some types may be specified in earlier versions of one of these standards,
+but in the interests of simplicity we omit details from earlier standards.
+.PP
+In "Include", we first note the "primary" header(s) that
+define the type according to either the C or POSIX.1 standards.
+Under "Alternatively", we note additional headers that
+the standards specify shall define the type.
+.SH EXAMPLES
+The program shown below scans from a string and prints a value stored in
+a variable of an integer type that doesn't have a length modifier.
+The appropriate conversions from and to
+.IR intmax_t ,
+and the appropriate range checks,
+are used as explained in the notes section above.
+.PP
+.EX
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+int
+main (void)
+{
+ static const char *const str = "500000 us in half a second";
+ suseconds_t us;
+ intmax_t tmp;
+
+ /* Scan the number from the string into the temporary variable */
+
+ sscanf(str, "%jd", &tmp);
+
+ /* Check that the value is within the valid range of suseconds_t */
+
+ if (tmp < \-1 || tmp > 1000000) {
+ fprintf(stderr, "Scanned value outside valid range!\en");
+ exit(EXIT_FAILURE);
+ }
+
+ /* Copy the value to the suseconds_t variable \(aqus\(aq */
+
+ us = tmp;
+
+ /* Even though suseconds_t can hold the value \-1, this isn\(aqt
+ a sensible number of microseconds */
+
+ if (us < 0) {
+ fprintf(stderr, "Scanned value shouldn\(aqt be negative!\en");
+ exit(EXIT_FAILURE);
+ }
+
+ /* Print the value */
+
+ printf("There are %jd microseconds in half a second.\en",
+ (intmax_t) us);
+
+ exit(EXIT_SUCCESS);
+}
+.EE
+.SH SEE ALSO
+.BR feature_test_macros (7),
+.BR standards (7)
+.SH COLOPHON
+This page is part of release 5.09 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%https://www.kernel.org/doc/man\-pages/.
diff --git a/man7/sysvipc.7 b/man7/sysvipc.7
index 6b17fd136..4ed4ffc39 100644
--- a/man7/sysvipc.7
+++ b/man7/sysvipc.7
@@ -118,7 +118,7 @@ IPC namespaces, see
.BR ftok (3),
.BR ipc_namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/tcp.7 b/man7/tcp.7
index 456b2f598..e28d088f4 100644
--- a/man7/tcp.7
+++ b/man7/tcp.7
@@ -1393,7 +1393,7 @@ RFC\ 2581 for TCP congestion control algorithms.
.br
RFC\ 2018 and RFC\ 2883 for SACK and extensions to SACK.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/termio.7 b/man7/termio.7
index 182dbb139..d5601e903 100644
--- a/man7/termio.7
+++ b/man7/termio.7
@@ -64,7 +64,7 @@ or
.BR termios (3),
.BR tty (4)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/thread-keyring.7 b/man7/thread-keyring.7
index cea938ff5..36ceb0b2d 100644
--- a/man7/thread-keyring.7
+++ b/man7/thread-keyring.7
@@ -54,7 +54,7 @@ otherwise the operation fails with the error
.BR user\-keyring (7),
.BR user\-session\-keyring (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/time.7 b/man7/time.7
index 1c9b2d0ec..3cc923cf3 100644
--- a/man7/time.7
+++ b/man7/time.7
@@ -235,7 +235,7 @@ in
.BR time_namespaces (7),
.BR hwclock (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/time_namespaces.7 b/man7/time_namespaces.7
index 6e582caba..d1a435635 100644
--- a/man7/time_namespaces.7
+++ b/man7/time_namespaces.7
@@ -158,7 +158,6 @@ value is not valid.
.TP
.B EPERM
The caller does not have the
-the
.BR CAP_SYS_TIME
capability.
.TP
@@ -368,7 +367,7 @@ CLOCK_BOOTTIME : 76633.544 (21h 19m 23s)
.BR namespaces (7),
.BR time (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/udp.7 b/man7/udp.7
index 6278bb8e5..6d2f3e310 100644
--- a/man7/udp.7
+++ b/man7/udp.7
@@ -273,7 +273,7 @@ RFC\ 1122 for the host requirements.
.br
RFC\ 1191 for a description of path MTU discovery.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/udplite.7 b/man7/udplite.7
index 317fc5d3d..7ca8ca752 100644
--- a/man7/udplite.7
+++ b/man7/udplite.7
@@ -155,7 +155,7 @@ RFC\ 3828 for the Lightweight User Datagram Protocol (UDP-Lite).
.I Documentation/networking/udplite.txt
in the Linux kernel source tree
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/unicode.7 b/man7/unicode.7
index 73977045f..8fd848fc6 100644
--- a/man7/unicode.7
+++ b/man7/unicode.7
@@ -265,7 +265,7 @@ Bruno Haible: Unicode HOWTO.
.BR charsets (7),
.BR utf\-8 (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/units.7 b/man7/units.7
index 54f0a87e8..af0f8ede0 100644
--- a/man7/units.7
+++ b/man7/units.7
@@ -127,7 +127,7 @@ hda: 120064896 sectors (61473 MB) w/2048KiB Cache
.PP
the MB are megabytes and the KiB are kibibytes.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/unix.7 b/man7/unix.7
index acce8c9ca..3e5eace28 100644
--- a/man7/unix.7
+++ b/man7/unix.7
@@ -17,7 +17,7 @@
.\" address that can appear in the sockaddr_un structure: pathname,
.\" unnamed, and abstract.
.\"
-.TH UNIX 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH UNIX 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
unix \- sockets for local interprocess communication
.SH SYNOPSIS
@@ -349,6 +349,50 @@ stream sockets and for
.B AF_UNIX
stream and datagram socket pairs created using
.BR socketpair (2).
+.TP
+.B SO_PEERSEC
+This read-only socket option returns the
+security context of the peer socket connected to this socket.
+By default, this will be the same as the security context of
+the process that created the peer socket unless overridden
+by the policy or by a process with the required permissions.
+.IP
+The argument to
+.BR getsockopt (2)
+is a pointer to a buffer of the specified length in bytes
+into which the security context string will be copied.
+If the buffer length is less than the length of the security
+context string, then
+.BR getsockopt (2)
+returns \-1, sets
+.I errno
+to
+.BR ERANGE ,
+and returns the required length via
+.IR optlen .
+The caller should allocate at least
+.BR NAME_MAX
+bytes for the buffer initially, although this is not guaranteed
+to be sufficient.
+Resizing the buffer to the returned length
+and retrying may be necessary.
+.IP
+The security context string may include a terminating null character
+in the returned length, but is not guaranteed to do so: a security
+context "foo" might be represented as either {'f','o','o'} of length 3
+or {'f','o','o','\\0'} of length 4, which are considered to be
+interchangeable.
+The string is printable, does not contain non-terminating null characters,
+and is in an unspecified encoding (in particular, it
+is not guaranteed to be ASCII or UTF-8).
+.IP
+The use of this option for sockets in the
+.B AF_UNIX
+address family is supported since Linux 2.6.2 for connected stream sockets,
+and since Linux 4.18
+.\" commit 0b811db2cb2aabc910e53d34ebb95a15997c33e7
+also for stream and datagram socket pairs created using
+.BR socketpair (2).
.\"
.SS Autobind feature
If a
@@ -948,7 +992,7 @@ main(int argc, char *argv[])
* the structure.
*/
- memset(&name, 0, sizeof(struct sockaddr_un));
+ memset(&name, 0, sizeof(name));
/* Bind socket to socket name. */
@@ -956,7 +1000,7 @@ main(int argc, char *argv[])
strncpy(name.sun_path, SOCKET_NAME, sizeof(name.sun_path) \- 1);
ret = bind(connection_socket, (const struct sockaddr *) &name,
- sizeof(struct sockaddr_un));
+ sizeof(name));
if (ret == \-1) {
perror("bind");
exit(EXIT_FAILURE);
@@ -991,7 +1035,7 @@ main(int argc, char *argv[])
/* Wait for next data packet. */
- ret = read(data_socket, buffer, BUFFER_SIZE);
+ ret = read(data_socket, buffer, sizeof(buffer));
if (ret == \-1) {
perror("read");
exit(EXIT_FAILURE);
@@ -999,16 +1043,16 @@ main(int argc, char *argv[])
/* Ensure buffer is 0\-terminated. */
- buffer[BUFFER_SIZE \- 1] = 0;
+ buffer[sizeof(buffer) \- 1] = 0;
/* Handle commands. */
- if (!strncmp(buffer, "DOWN", BUFFER_SIZE)) {
+ if (!strncmp(buffer, "DOWN", sizeof(buffer))) {
down_flag = 1;
break;
}
- if (!strncmp(buffer, "END", BUFFER_SIZE)) {
+ if (!strncmp(buffer, "END", sizeof(buffer))) {
break;
}
@@ -1020,7 +1064,7 @@ main(int argc, char *argv[])
/* Send result. */
sprintf(buffer, "%d", result);
- ret = write(data_socket, buffer, BUFFER_SIZE);
+ ret = write(data_socket, buffer, sizeof(buffer));
if (ret == \-1) {
perror("write");
exit(EXIT_FAILURE);
@@ -1063,7 +1107,6 @@ int
main(int argc, char *argv[])
{
struct sockaddr_un addr;
- int i;
int ret;
int data_socket;
char buffer[BUFFER_SIZE];
@@ -1082,15 +1125,15 @@ main(int argc, char *argv[])
* the structure.
*/
- memset(&addr, 0, sizeof(struct sockaddr_un));
+ memset(&addr, 0, sizeof(addr));
/* Connect socket to socket address */
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, SOCKET_NAME, sizeof(addr.sun_path) \- 1);
- ret = connect (data_socket, (const struct sockaddr *) &addr,
- sizeof(struct sockaddr_un));
+ ret = connect(data_socket, (const struct sockaddr *) &addr,
+ sizeof(addr));
if (ret == \-1) {
fprintf(stderr, "The server is down.\en");
exit(EXIT_FAILURE);
@@ -1098,7 +1141,7 @@ main(int argc, char *argv[])
/* Send arguments. */
- for (i = 1; i < argc; ++i) {
+ for (int i = 1; i < argc; ++i) {
ret = write(data_socket, argv[i], strlen(argv[i]) + 1);
if (ret == \-1) {
perror("write");
@@ -1108,7 +1151,7 @@ main(int argc, char *argv[])
/* Request result. */
- strcpy (buffer, "END");
+ strcpy(buffer, "END");
ret = write(data_socket, buffer, strlen(buffer) + 1);
if (ret == \-1) {
perror("write");
@@ -1117,7 +1160,7 @@ main(int argc, char *argv[])
/* Receive result. */
- ret = read(data_socket, buffer, BUFFER_SIZE);
+ ret = read(data_socket, buffer, sizeof(buffer));
if (ret == \-1) {
perror("read");
exit(EXIT_FAILURE);
@@ -1125,7 +1168,7 @@ main(int argc, char *argv[])
/* Ensure buffer is 0\-terminated. */
- buffer[BUFFER_SIZE \- 1] = 0;
+ buffer[sizeof(buffer) \- 1] = 0;
printf("Result = %s\en", buffer);
@@ -1152,7 +1195,7 @@ see
.BR socket (7),
.BR udp (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/uri.7 b/man7/uri.7
index bf13a1e52..5c2ef5c41 100644
--- a/man7/uri.7
+++ b/man7/uri.7
@@ -713,7 +713,7 @@ tools) and invokes the right tool for any URI.
IETF RFC\ 2255
.UE
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/user-keyring.7 b/man7/user-keyring.7
index c26385147..e23400817 100644
--- a/man7/user-keyring.7
+++ b/man7/user-keyring.7
@@ -85,7 +85,7 @@ If a user keyring does not exist when it is accessed, it will be created.
.BR user\-session\-keyring (7),
.BR pam_keyinit (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/user-session-keyring.7 b/man7/user-session-keyring.7
index 285209f36..e6f0878ee 100644
--- a/man7/user-session-keyring.7
+++ b/man7/user-session-keyring.7
@@ -96,7 +96,7 @@ In such a scenario, the user session keyring acts as a substitute for the
.BR thread\-keyring (7),
.BR user\-keyring (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/user_namespaces.7 b/man7/user_namespaces.7
index d59b6deba..42dd77401 100644
--- a/man7/user_namespaces.7
+++ b/man7/user_namespaces.7
@@ -24,7 +24,7 @@
.\" %%%LICENSE_END
.\"
.\"
-.TH USER_NAMESPACES 7 2020-06-09 "Linux" "Linux Programmer's Manual"
+.TH USER_NAMESPACES 7 2020-11-01 "Linux" "Linux Programmer's Manual"
.SH NAME
user_namespaces \- overview of Linux user namespaces
.SH DESCRIPTION
@@ -1018,7 +1018,7 @@ and group ID
.PP
.in +4n
.EX
-$ \fB./userns_child_exec \-p \-m \-U \-M '0 1000 1' \-G '0 1000 1' bash\fP
+$ \fB./userns_child_exec \-p \-m \-U \-M \(aq0 1000 1\(aq \-G \(aq0 1000 1\(aq bash\fP
.EE
.in
.PP
@@ -1053,10 +1053,10 @@ and a full set of permitted and effective capabilities:
.PP
.in +4n
.EX
-bash$ \fBcat /proc/$$/status | egrep '\(ha[UG]id'\fP
+bash$ \fBcat /proc/$$/status | egrep \(aq\(ha[UG]id\(aq\fP
Uid: 0 0 0 0
Gid: 0 0 0 0
-bash$ \fBcat /proc/$$/status | egrep '\(haCap(Prm|Inh|Eff)'\fP
+bash$ \fBcat /proc/$$/status | egrep \(aq\(haCap(Prm|Inh|Eff)\(aq\fP
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
@@ -1076,6 +1076,7 @@ CapEff: 0000001fffffffff
#define _GNU_SOURCE
#include <sched.h>
#include <unistd.h>
+#include <stdint.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <signal.h>
@@ -1149,13 +1150,13 @@ usage(char *pname)
static void
update_map(char *mapping, char *map_file)
{
- int fd, j;
+ int fd;
size_t map_len; /* Length of \(aqmapping\(aq */
/* Replace commas in mapping string with newlines */
map_len = strlen(mapping);
- for (j = 0; j < map_len; j++)
+ for (int j = 0; j < map_len; j++)
if (mapping[j] == \(aq,\(aq)
mapping[j] = \(aq\en\(aq;
@@ -1190,8 +1191,8 @@ proc_setgroups_write(pid_t child_pid, char *str)
char setgroups_path[PATH_MAX];
int fd;
- snprintf(setgroups_path, PATH_MAX, "/proc/%ld/setgroups",
- (long) child_pid);
+ snprintf(setgroups_path, PATH_MAX, "/proc/%jd/setgroups",
+ (intmax_t) child_pid);
fd = open(setgroups_path, O_RDWR);
if (fd == \-1) {
@@ -1222,7 +1223,7 @@ proc_setgroups_write(pid_t child_pid, char *str)
static int /* Start function for cloned child */
childFunc(void *arg)
{
- struct child_args *args = (struct child_args *) arg;
+ struct child_args *args = arg;
char ch;
/* Wait until the parent has updated the UID and GID mappings.
@@ -1323,16 +1324,17 @@ main(int argc, char *argv[])
/* Parent falls through to here */
if (verbose)
- printf("%s: PID of child created by clone() is %ld\en",
- argv[0], (long) child_pid);
+ printf("%s: PID of child created by clone() is %jd\en",
+ argv[0], (intmax_t) child_pid);
/* Update the UID and GID maps in the child */
if (uid_map != NULL || map_zero) {
- snprintf(map_path, PATH_MAX, "/proc/%ld/uid_map",
- (long) child_pid);
+ snprintf(map_path, PATH_MAX, "/proc/%jd/uid_map",
+ (intmax_t) child_pid);
if (map_zero) {
- snprintf(map_buf, MAP_BUF_SIZE, "0 %ld 1", (long) getuid());
+ snprintf(map_buf, MAP_BUF_SIZE, "0 %jd 1",
+ (intmax_t) getuid());
uid_map = map_buf;
}
update_map(uid_map, map_path);
@@ -1341,10 +1343,11 @@ main(int argc, char *argv[])
if (gid_map != NULL || map_zero) {
proc_setgroups_write(child_pid, "deny");
- snprintf(map_path, PATH_MAX, "/proc/%ld/gid_map",
- (long) child_pid);
+ snprintf(map_path, PATH_MAX, "/proc/%jd/gid_map",
+ (intmax_t) child_pid);
if (map_zero) {
- snprintf(map_buf, MAP_BUF_SIZE, "0 %ld 1", (long) getgid());
+ snprintf(map_buf, MAP_BUF_SIZE, "0 %ld 1",
+ (intmax_t) getgid());
gid_map = map_buf;
}
update_map(gid_map, map_path);
@@ -1383,7 +1386,7 @@ main(int argc, char *argv[])
The kernel source file
.IR Documentation/namespaces/resource-control.txt .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/utf-8.7 b/man7/utf-8.7
index 013c1e43b..479d1ba5f 100644
--- a/man7/utf-8.7
+++ b/man7/utf-8.7
@@ -229,7 +229,7 @@ ISO/IEC 10646-1:2000, Unicode 3.1, RFC\ 3629, Plan 9.
.BR charsets (7),
.BR unicode (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/uts_namespaces.7 b/man7/uts_namespaces.7
index 6bac8f509..b2cfbe161 100644
--- a/man7/uts_namespaces.7
+++ b/man7/uts_namespaces.7
@@ -66,7 +66,7 @@ option.
.BR unshare (2),
.BR namespaces (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/vdso.7 b/man7/vdso.7
index cd14bc110..8a28ff53c 100644
--- a/man7/vdso.7
+++ b/man7/vdso.7
@@ -596,7 +596,7 @@ find arch/ \-iname \(aq*vdso*\(aq \-o \-iname \(aq*gate*\(aq
.EE
.in
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/vsock.7 b/man7/vsock.7
index 610639a0d..18bab315c 100644
--- a/man7/vsock.7
+++ b/man7/vsock.7
@@ -247,7 +247,7 @@ Previous versions supported only local communication within a guest
.BR socket (2),
.BR capabilities (7)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/x25.7 b/man7/x25.7
index c4d45ca0e..d06df5df2 100644
--- a/man7/x25.7
+++ b/man7/x25.7
@@ -125,7 +125,7 @@ The URL is
.UR ftp://ftp.pspt.fi\:/pub\:/ham\:/linux\:/ax25\:/x25doc.tgz
.UE .
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man7/xattr.7 b/man7/xattr.7
index b207721e3..30ba552a8 100644
--- a/man7/xattr.7
+++ b/man7/xattr.7
@@ -198,7 +198,7 @@ This page was formerly named
.BR capabilities (7),
.BR selinux (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/iconvconfig.8 b/man8/iconvconfig.8
index e1aa2df69..27707bb1d 100644
--- a/man8/iconvconfig.8
+++ b/man8/iconvconfig.8
@@ -100,7 +100,7 @@ Usual system gconv module configuration cache.
.BR iconv (1),
.BR iconv (3)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/intro.8 b/man8/intro.8
index 810944dbe..c1baed830 100644
--- a/man8/intro.8
+++ b/man8/intro.8
@@ -47,7 +47,7 @@ Look at the header of the manual page source for the author(s) and copyright
conditions.
Note that these can be different from page to page!
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/ld.so.8 b/man8/ld.so.8
index f012b38cf..bbfdc3542 100644
--- a/man8/ld.so.8
+++ b/man8/ld.so.8
@@ -1,6 +1,8 @@
.\" %%%LICENSE_START(PUBLIC_DOMAIN)
.\" This is in the public domain
.\" %%%LICENSE_END
+.\" Various parts:
+.\" Copyright (C) 2007-9, 2013, 2016 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.TH LD.SO 8 2020-08-13 "GNU" "Linux Programmer's Manual"
.SH NAME
@@ -375,7 +377,7 @@ subdirectory below the directory containing the program to be executed:
.IP
.in +4n
.EX
-$ \fBLD_LIBRARY_PATH='$ORIGIN/$LIB' prog\fP
+$ \fBLD_LIBRARY_PATH=\(aq$ORIGIN/$LIB\(aq prog\fP
.EE
.in
.IP
@@ -829,7 +831,7 @@ mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm
.\"
.\" In the above, (libc5) stands for David Engel's ld.so/ld\-linux.so.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/ldconfig.8 b/man8/ldconfig.8
index fa29e8e7d..64edd1dff 100644
--- a/man8/ldconfig.8
+++ b/man8/ldconfig.8
@@ -216,7 +216,7 @@ as well as those found in the trusted directories.
.BR ldd (1),
.BR ld.so (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/nscd.8 b/man8/nscd.8
index a2612318a..7b51cde74 100644
--- a/man8/nscd.8
+++ b/man8/nscd.8
@@ -97,7 +97,7 @@ $ \fBnscd \-i\fP \fI<database>\fP
.\" .B nscd
.\" was written by Thorsten Kukuk and Ulrich Drepper.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/sln.8 b/man8/sln.8
index 83f7885f5..693561b32 100644
--- a/man8/sln.8
+++ b/man8/sln.8
@@ -62,7 +62,7 @@ program supports no command-line options.
.BR ld.so (8),
.BR ldconfig (8)
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/tzselect.8 b/man8/tzselect.8
index 783e52e2f..631c19ef4 100644
--- a/man8/tzselect.8
+++ b/man8/tzselect.8
@@ -50,7 +50,7 @@ Timezone data file for timezone
.BR zic (8)
.\" @(#)tzselect.8 1.3
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/zdump.8 b/man8/zdump.8
index 7b4334ae2..517b3eb1e 100644
--- a/man8/zdump.8
+++ b/man8/zdump.8
@@ -231,7 +231,7 @@ introduction of UTC is problematic.
.\" This file is in the public domain, so clarified as of
.\" 2009-05-17 by Arthur David Olson.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/man8/zic.8 b/man8/zic.8
index 0bfa5d689..61c72af76 100644
--- a/man8/zic.8
+++ b/man8/zic.8
@@ -786,7 +786,7 @@ specifying transition instants using universal time.
.\" This file is in the public domain, so clarified as of
.\" 2009-05-17 by Arthur David Olson.
.SH COLOPHON
-This page is part of release 5.08 of the Linux
+This page is part of release 5.09 of the Linux
.I man-pages
project.
A description of the project,
diff --git a/proj.man-pages.desc b/proj.man-pages.desc
index d6114112d..0ce5cfad8 100644
--- a/proj.man-pages.desc
+++ b/proj.man-pages.desc
@@ -1 +1 @@
-man-pages|Linux kernel and C library user-space interface documentation|https://www.kernel.org/doc/man-pages/|REPO|Git|https://www.kernel.org/doc/man-pages/index.html|https://www.kernel.org/doc/man-pages/reporting_bugs.html|2020-08-13
+man-pages|Linux kernel and C library user-space interface documentation|https://www.kernel.org/doc/man-pages/|REPO|Git|https://www.kernel.org/doc/man-pages/index.html|https://www.kernel.org/doc/man-pages/reporting_bugs.html|2020-11-01
diff --git a/proj.man-pages.pages b/proj.man-pages.pages
index 8cd21d5d6..b94f19b6d 100644
--- a/proj.man-pages.pages
+++ b/proj.man-pages.pages
@@ -59,6 +59,7 @@ man2/ioperm.2
man2/munmap.2
man2/getpmsg.2
man2/unlinkat.2
+man2/mq_unlink.2
man2/readlinkat.2
man2/signalfd4.2
man2/readv.2
@@ -105,6 +106,7 @@ man2/poll.2
man2/setreuid.2
man2/getunwind.2
man2/inw.2
+man2/mq_timedsend.2
man2/fallocate.2
man2/fchdir.2
man2/ioctl_userfaultfd.2
@@ -160,6 +162,7 @@ man2/recvmmsg.2
man2/setrlimit.2
man2/sgetmask.2
man2/oldfstat.2
+man2/mq_notify.2
man2/vm86.2
man2/epoll_create1.2
man2/subpage_prot.2
@@ -336,6 +339,7 @@ man2/waitid.2
man2/inw_p.2
man2/_Exit.2
man2/rt_sigpending.2
+man2/mq_open.2
man2/fattach.2
man2/chdir.2
man2/userfaultfd.2
@@ -355,6 +359,7 @@ man2/bdflush.2
man2/clock_getres.2
man2/fgetxattr.2
man2/posix_fadvise.2
+man2/getcwd.2
man2/geteuid.2
man2/getmsg.2
man2/fremovexattr.2
@@ -376,6 +381,7 @@ man2/stat64.2
man2/tee.2
man2/syslog.2
man2/tuxcall.2
+man2/mq_timedreceive.2
man2/_llseek.2
man2/ioctl_fslabel.2
man2/gettid.2
@@ -513,7 +519,9 @@ man3/bswap.3
man3/alphasort.3
man3/xdrmem_create.3
man3/sigwait.3
+man3/slist.3
man3/explicit_bzero.3
+man3/strerrorname_np.3
man3/getgrnam.3
man3/SLIST_FIRST.3
man3/tcsendbreak.3
@@ -541,6 +549,7 @@ man3/vtimes.3
man3/execlp.3
man3/gethostbyname2.3
man3/pthread_attr_setstack.3
+man3/suseconds_t.3
man3/cfgetispeed.3
man3/iswlower.3
man3/isinff.3
@@ -588,6 +597,7 @@ man3/toupper.3
man3/putpwent.3
man3/regexec.3
man3/xdrrec_endofrecord.3
+man3/time_t.3
man3/tfind.3
man3/svctcp_create.3
man3/argz_delete.3
@@ -626,6 +636,7 @@ man3/addseverity.3
man3/calloc.3
man3/fesetenv.3
man3/endaliasent.3
+man3/off_t.3
man3/malloc_trim.3
man3/addmntent.3
man3/bzero.3
@@ -656,7 +667,9 @@ man3/clntudp_bufcreate.3
man3/localtime_r.3
man3/clock_getcpuclockid.3
man3/wcscasecmp.3
+man3/void.3
man3/timerclear.3
+man3/circleq.3
man3/MB_LEN_MAX.3
man3/clog10.3
man3/error_at_line.3
@@ -667,6 +680,7 @@ man3/iscntrl.3
man3/wcspbrk.3
man3/timezone.3
man3/strcasestr.3
+man3/ptrdiff_t.3
man3/pthread_setconcurrency.3
man3/basename.3
man3/lround.3
@@ -682,6 +696,7 @@ man3/setbuffer.3
man3/atanf.3
man3/fread.3
man3/iconv_close.3
+man3/fexcept_t.3
man3/ether_aton_r.3
man3/htobe64.3
man3/bcmp.3
@@ -699,6 +714,7 @@ man3/STAILQ_INIT.3
man3/xdr_reference.3
man3/wctrans.3
man3/xprt_unregister.3
+man3/regoff_t.3
man3/key_secretkey_is_set.3
man3/mmap64.3
man3/wmemcmp.3
@@ -715,11 +731,13 @@ man3/malloc_hook.3
man3/isprint_l.3
man3/ntohl.3
man3/getw.3
+man3/aiocb.3
man3/y0f.3
man3/imaxdiv.3
man3/ceil.3
man3/casin.3
man3/dladdr1.3
+man3/pthread_attr_setsigmask_np.3
man3/mallopt.3
man3/fwprintf.3
man3/pthread_setschedparam.3
@@ -727,6 +745,7 @@ man3/usleep.3
man3/ynl.3
man3/erfcl.3
man3/erfc.3
+man3/siginfo_t.3
man3/round.3
man3/ccos.3
man3/y1.3
@@ -748,6 +767,7 @@ man3/xdr_short.3
man3/ftrylockfile.3
man3/fgetwc.3
man3/strnlen.3
+man3/uintptr_t.3
man3/rewinddir.3
man3/coshl.3
man3/expm1f.3
@@ -797,6 +817,7 @@ man3/iswxdigit.3
man3/valloc.3
man3/wcsspn.3
man3/CPU_SET_S.3
+man3/uint16_t.3
man3/toascii.3
man3/fmal.3
man3/SLIST_REMOVE.3
@@ -878,9 +899,12 @@ man3/strcasecmp.3
man3/rpmatch.3
man3/res_nsearch.3
man3/srand.3
+man3/sigabbrev_np.3
+man3/int32_t.3
man3/if_indextoname.3
man3/ctanhl.3
man3/svc_getargs.3
+man3/timespec.3
man3/setkey_r.3
man3/strdup.3
man3/pthread_setaffinity_np.3
@@ -888,6 +912,7 @@ man3/lrintl.3
man3/errx.3
man3/LIST_HEAD.3
man3/FD_CLR.3
+man3/float_t.3
man3/setcontext.3
man3/mtrace.3
man3/sigsetops.3
@@ -909,6 +934,7 @@ man3/HUGE_VAL.3
man3/TAILQ_FIRST.3
man3/aio_error.3
man3/makedev.3
+man3/va_list.3
man3/inet_net_ntop.3
man3/envz_entry.3
man3/strtold.3
@@ -918,6 +944,7 @@ man3/sincos.3
man3/gmtime_r.3
man3/setutent.3
man3/sysv_signal.3
+man3/dev_t.3
man3/getgrgid_r.3
man3/strsignal.3
man3/rresvport_af.3
@@ -951,9 +978,11 @@ man3/llroundl.3
man3/tdelete.3
man3/qgcvt.3
man3/minor.3
+man3/sys_siglist.3
man3/initstate_r.3
man3/wordexp.3
man3/svcraw_create.3
+man3/uint32_t.3
man3/vwarnx.3
man3/cacosh.3
man3/getdate_r.3
@@ -1012,7 +1041,9 @@ man3/getloadavg.3
man3/LIST_INSERT_HEAD.3
man3/wcsncpy.3
man3/__realloc_hook.3
+man3/uintmax_t.3
man3/mprobe.3
+man3/ldiv_t.3
man3/ntohs.3
man3/fabsl.3
man3/cimagf.3
@@ -1110,6 +1141,7 @@ man3/pthread_mutexattr_setpshared.3
man3/pthread_timedjoin_np.3
man3/clnt_perrno.3
man3/endttyent.3
+man3/sigset_t.3
man3/log2l.3
man3/wmemmove.3
man3/atanh.3
@@ -1155,6 +1187,7 @@ man3/strchrnul.3
man3/endrpcent.3
man3/getwchar_unlocked.3
man3/__memalign_hook.3
+man3/intptr_t.3
man3/warnx.3
man3/callrpc.3
man3/tcflow.3
@@ -1246,6 +1279,7 @@ man3/putwchar.3
man3/freopen.3
man3/cfsetspeed.3
man3/stpncpy.3
+man3/clock_t.3
man3/strdupa.3
man3/strtouq.3
man3/sem_destroy.3
@@ -1271,6 +1305,7 @@ man3/argz_insert.3
man3/getaliasbyname_r.3
man3/getpwnam_r.3
man3/y1l.3
+man3/regex_t.3
man3/ldexp.3
man3/logwtmp.3
man3/envz_get.3
@@ -1281,6 +1316,7 @@ man3/envz_add.3
man3/bstring.3
man3/abort.3
man3/va_end.3
+man3/int16_t.3
man3/timercmp.3
man3/truncl.3
man3/__after_morecore_hook.3
@@ -1355,6 +1391,7 @@ man3/end.3
man3/glob.3
man3/expm1.3
man3/pthread_attr_setscope.3
+man3/uint8_t.3
man3/asprintf.3
man3/ctime.3
man3/scalbn.3
@@ -1417,6 +1454,7 @@ man3/aio_write.3
man3/wctomb.3
man3/tgammal.3
man3/fmaxl.3
+man3/timeval.3
man3/setservent.3
man3/ilogb.3
man3/error_print_progname.3
@@ -1461,6 +1499,7 @@ man3/nextdownl.3
man3/cosh.3
man3/mq_setattr.3
man3/pthread_attr_getstacksize.3
+man3/stailq.3
man3/wcsrtombs.3
man3/setaliasent.3
man3/div.3
@@ -1496,6 +1535,7 @@ man3/rintl.3
man3/ctanl.3
man3/key_setsecret.3
man3/longjmp.3
+man3/uint64_t.3
man3/setstate.3
man3/SLIST_NEXT.3
man3/iswprint.3
@@ -1516,10 +1556,12 @@ man3/gethostbyname.3
man3/iconv.3
man3/opterr.3
man3/lio_listio.3
+man3/timer_t.3
man3/unlockpt.3
man3/strtoul.3
man3/logl.3
man3/daylight.3
+man3/id_t.3
man3/copysignl.3
man3/cimag.3
man3/rint.3
@@ -1547,6 +1589,7 @@ man3/readdir_r.3
man3/endutent.3
man3/lgammal.3
man3/iswdigit.3
+man3/uid_t.3
man3/atan2f.3
man3/optopt.3
man3/asctime.3
@@ -1557,6 +1600,7 @@ man3/gnu_get_libc_release.3
man3/mkfifo.3
man3/pthread_spin_unlock.3
man3/svcerr_systemerr.3
+man3/ssize_t.3
man3/__fwriting.3
man3/gsignal.3
man3/atoi.3
@@ -1569,6 +1613,7 @@ man3/eventfd_read.3
man3/getaliasent_r.3
man3/clearenv.3
man3/rawmemchr.3
+man3/sigval.3
man3/inet_network.3
man3/sigdelset.3
man3/sighold.3
@@ -1584,6 +1629,7 @@ man3/wcswidth.3
man3/creall.3
man3/sigvec.3
man3/log10f.3
+man3/gid_t.3
man3/adjtime.3
man3/wcstok.3
man3/__ppc_get_timebase.3
@@ -1743,6 +1789,7 @@ man3/CPU_OR_S.3
man3/ssignal.3
man3/sigqueue.3
man3/vasprintf.3
+man3/fenv_t.3
man3/getpwnam.3
man3/setnetent.3
man3/nanf.3
@@ -1774,6 +1821,7 @@ man3/svcfd_create.3
man3/__ppc_set_ppr_low.3
man3/ttyname_r.3
man3/pthread_mutexattr_getpshared.3
+man3/lconv.3
man3/logf.3
man3/regerror.3
man3/putenv.3
@@ -1785,6 +1833,7 @@ man3/strtok.3
man3/pthread_getaffinity_np.3
man3/xdr_int.3
man3/xdr_u_int.3
+man3/strerrordesc_np.3
man3/xdr_destroy.3
man3/inet_net_pton.3
man3/cexpf.3
@@ -1801,6 +1850,7 @@ man3/erf.3
man3/setmntent.3
man3/pthread_cleanup_push_defer_np.3
man3/reallocarray.3
+man3/uintN_t.3
man3/clnt_freeres.3
man3/memset.3
man3/xdr_u_long.3
@@ -1833,10 +1883,13 @@ man3/mrand48_r.3
man3/getnetgrent_r.3
man3/mkfifoat.3
man3/inet.3
+man3/int8_t.3
man3/major.3
+man3/list.3
man3/endgrent.3
man3/cfsetospeed.3
man3/exp2l.3
+man3/sigdescr_np.3
man3/scalbf.3
man3/TAILQ_INSERT_TAIL.3
man3/catanhf.3
@@ -1845,6 +1898,7 @@ man3/xdr_rejected_reply.3
man3/getutid.3
man3/dbopen.3
man3/getprotobyname.3
+man3/clockid_t.3
man3/sem_post.3
man3/fseek.3
man3/stdin.3
@@ -1854,9 +1908,11 @@ man3/ttyslot.3
man3/exp10.3
man3/unlocked_stdio.3
man3/__flbf.3
+man3/tailq.3
man3/isxdigit.3
man3/fetestexcept.3
man3/getprotoent_r.3
+man3/FILE.3
man3/gethostbyname_r.3
man3/log10.3
man3/updwtmpx.3
@@ -1873,6 +1929,7 @@ man3/isatty.3
man3/scandir.3
man3/remainderf.3
man3/endspent.3
+man3/size_t.3
man3/fminl.3
man3/mq_timedsend.3
man3/hypotl.3
@@ -1916,6 +1973,7 @@ man3/getutline_r.3
man3/getutent.3
man3/vwprintf.3
man3/getnetbyname.3
+man3/regmatch_t.3
man3/remque.3
man3/exec.3
man3/futimes.3
@@ -1982,6 +2040,7 @@ man3/cproj.3
man3/getnetbyname_r.3
man3/xdr.3
man3/isnormal.3
+man3/double_t.3
man3/mempcpy.3
man3/erand48_r.3
man3/stdio_ext.3
@@ -2020,6 +2079,7 @@ man3/pow10f.3
man3/pthread_mutexattr_getrobust_np.3
man3/putc_unlocked.3
man3/forkpty.3
+man3/int64_t.3
man3/getsubopt.3
man3/j0.3
man3/encrypt_r.3
@@ -2045,6 +2105,7 @@ man3/getgrgid.3
man3/wcpncpy.3
man3/realpath.3
man3/ferror.3
+man3/intmax_t.3
man3/rand_r.3
man3/herror.3
man3/aligned_alloc.3
@@ -2058,6 +2119,7 @@ man3/ptsname_r.3
man3/pututxline.3
man3/fpathconf.3
man3/open_memstream.3
+man3/intN_t.3
man3/getdate_err.3
man3/matherr.3
man3/INFINITY.3
@@ -2069,9 +2131,12 @@ man3/wcsrchr.3
man3/pthread_attr_getstack.3
man3/xdr_long.3
man3/svc_unregister.3
+man3/pid_t.3
man3/modf.3
+man3/imaxdiv_t.3
man3/authunix_create_default.3
man3/daemon.3
+man3/div_t.3
man3/clnt_control.3
man3/killpg.3
man3/mkstemps.3
@@ -2079,6 +2144,7 @@ man3/nanl.3
man3/swapcontext.3
man3/toupper_l.3
man3/ldiv.3
+man3/lldiv_t.3
man3/xdr_float.3
man3/putspent.3
man3/NAN.3
@@ -2203,6 +2269,7 @@ man6/intro.6
man7/uts_namespaces.7
man7/user_namespaces.7
man7/iso_8859_1.7
+man7/queue.7
man7/iso_8859-14.7
man7/iso_8859_11.7
man7/glob.7
@@ -2334,6 +2401,7 @@ man7/locale.7
man7/signal.7
man7/iso-8859-14.7
man7/man.7
+man7/kernel_lockdown.7
man7/iso_8859_8.7
man7/koi8-r.7
man7/spufs.7
@@ -2347,6 +2415,7 @@ man7/vsock.7
man7/shm_overview.7
man7/latin4.7
man7/persistent-keyring.7
+man7/system_data_types.7
man7/latin7.7
man7/latin6.7
man7/tis-620.7
diff --git a/scripts/FIXME_list.sh b/scripts/FIXME_list.sh
index f7acc9880..59ba3c0cb 100755
--- a/scripts/FIXME_list.sh
+++ b/scripts/FIXME_list.sh
@@ -73,9 +73,9 @@ for dir in "$@"; do
# /.\" FIXME . / ==> do not display this FIXME, unless
# -a command-line option was supplied
- if ($0 ~ /^\.\\\" FIXME \./ )
+ if ($0 ~ /^\.\\" FIXME \./ )
FIXME_type = "hidden"
- else if ($0 ~ /^\.\\\" FIXME *\?/ )
+ else if ($0 ~ /^\.\\" FIXME *\?/ )
FIXME_type = "question"
else
FIXME_type = "normal";
@@ -96,12 +96,12 @@ for dir in "$@"; do
if (getline == 0)
finished = 1;
- if (!($0 ~ /^.\\\"/))
+ if (!($0 ~ /^.\\"/))
finished = 1;
# /.\" .$/ ==> Explicit end of FIXME
- if ($0 ~ /^.\\\" \.$/)
+ if ($0 ~ /^.\\" \.$/)
finished = 1;
} while (!finished);
diff --git a/scripts/man_show_fixme.sh b/scripts/man_show_fixme.sh
index 98e6ce829..6a42b3321 100755
--- a/scripts/man_show_fixme.sh
+++ b/scripts/man_show_fixme.sh
@@ -5,13 +5,13 @@
#
for f in $*; do
cat $f | awk '
- /^\.\\\" *FIXME/ {
+ /^\.\\" *FIXME/ {
if ($0 ~ /.*FIXME *\..*/) {
# FIXMES of the form "FIXME ." are "private" and
# ignored by this script
} else {
sub("FIXME[: ]*", "")
- if ($0 ~ /^\.\\\"[ ]*$/) {
+ if ($0 ~ /^\.\\"[ ]*$/) {
# If the FIXME line contains no additional text after
# "FIXME", then discard the blank line
@@ -31,7 +31,7 @@ for f in $*; do
}
}
- $0 !~ /^\.\\\"/ && fixme == 1 {
+ $0 !~ /^\.\\"/ && fixme == 1 {
fixme = 0
print "T}"
print ".TE"
@@ -51,5 +51,5 @@ for f in $*; do
{
print $0
}
- ' | tee "/tmp/$(basename $f).src" | man -l /dev/stdin
+ ' | tee "/tmp/$(basename $f).src" | man --nh --nj -l /dev/stdin
done