Hello Eugene, On 9/19/18 7:12 PM, Eugene Syromyatnikov wrote: > Added: arc_gettls, arc_settls, arc_usr_cmpxchg, arch_prctl, > atomic_barrier, atomic_cmpxchg_32, bfin_spinlock, breakpoint, clone2, > cmpxchg, cmpxchg_badaddr, dma_memcpy, execv, get_tls, getdomainname, > getdtablesize, gethostname, getxgid, getxpid, getxuid, io_pgetevents, > metag_get_tls, metag_set_fpu_flags,metag_set_tls, metag_set_global_bit, > newfstatat, old_adjtimex, oldumount, or1k_atomic, pread, pwrite, > riscv_flush_icache, rseq, sched_get_affinity, sched_set_affinity, > set_tls, setaltroot, sethae, setpgrp, spill, sram_alloc, sram_free, > swapcontext, switch_endian, sys_debug_setcontext, syscall, sysmips, > timerfd, usr26, usr32, xtensa. > > Uncommented: memory_ordering > > Renamed: ppc_rtas to rtas (__NR_rtas), ppc_swapcontext to swapcontext > (__NR_swacontext). > > Typo: s/remaed/renamed to/ I have applied a version of this patch, and tweaked somewhat. (Changes are pushed to Git.) Thanks, Michael > Other: s/ia64/IA-64/, s/Sparc/SPARC/ > Signed-off-by: Eugene Syromyatnikov <evgsyr@xxxxxxxxx> > --- > man2/syscalls.2 | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 173 insertions(+), 13 deletions(-) > > diff --git a/man2/syscalls.2 b/man2/syscalls.2 > index d1c4eb4..1046b29 100644 > --- a/man2/syscalls.2 > +++ b/man2/syscalls.2 > @@ -146,7 +146,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.11 > +The list of system calls that are available as at kernel 4.18 > (or in a few cases only on older kernels) is as follows: > .\" > .\" Looking at scripts/checksyscalls.sh in the kernel source is > @@ -170,14 +170,29 @@ l l l. > \fBadjtimex\fP(2) 1.0 > \fBalarm\fP(2) 1.0 > \fBalloc_hugepages\fP(2) 2.5.36 Removed in 2.5.44 > +.\" 4adeefe161a74369e44cc8e663f240ece0470dc3 > +\fBarc_gettls\fP(2) 3.9 ARC only > +\fBarc_settls\fP(2) 3.9 ARC only > +.\" 91e040a79df73d371f70792f30380d4e44805250 > +\fBarc_usr_cmpxchg\fP(2) 4.9 ARC onlt > +.\" x86: 79170fda313ed5be2394f87aa2a00d597f8ed4a1 > +\fBarch_prctl\fP(2) 2.6 x86_64, x86 since 4.12 > +.\" 9674cdc74d63f346870943ef966a034f8c71ee57 > +\fBatomic_barrier\fP(2) 2.6.34 m68k only > +\fBatomic_cmpxchg_32\fP(2) 2,6,34 m68k only > \fBbdflush\fP(2) 1.2 T{ > Deprecated (does nothing) > .br > since 2.6 > T} > +\fBbfin_spinlock\fP(2) 2.6.22 Blackfin only (port removed in Linux 4.17) > \fBbind\fP(2) 2.0 See notes on \fBsocketcall\fP(2) > \fBbpf\fP(2) 3.18 > \fBbrk\fP(2) 1.0 > +\fBbreakpoint\fP(2) 2.2 T{ > +ARM OABI only, defined with > +\fB__ARM_NR\fP prefix > +T} > \fBcacheflush\fP(2) 1.2 Not on x86 > \fBcapget\fP(2) 2.2 > \fBcapset\fP(2) 2.2 > @@ -196,12 +211,31 @@ T} > \fBclock_nanosleep\fP(2) 2.6 > \fBclock_settime\fP(2) 2.6 > \fBclone\fP(2) 1.0 > +\fBclone2\fP(2) 2.4 IA-64 only > \fBclose\fP(2) 1.0 > +.\" dcef1f634657dabe7905af3ccda12cf7f0b6fcc1 > +.\" cc20d42986d5807cbe4f5c7c8e3dab2e59ea0db3 > +.\" db695c0509d6ec9046ee5e4c520a19fa17d9fce2 > +\fBcmpxchg\fP(2) 2.6.12 T{ > +ARM, syscall constant never was > +.br > +exposed to userspace, in-kernel > +.br > +definition had \fB__ARM_NR\fP prefix, > +.br > +removed in 4.4 > +T} > +.\" 867e359b97c970a60626d5d76bbe2a8fadbf38fb > +.\" bb9d812643d8a121df7d614a2b9c60193a92deb0 > +\fBcmpxchg_badaddr\fP(2) 2.6.36 Tile only (port removed in Linux 4.17) > \fBconnect\fP(2) 2.0 See notes on \fBsocketcall\fP(2) > \fBcopy_file_range\fP(2) 4.5 > \fBcreat\fP(2) 1.0 > \fBcreate_module\fP(2) 1.0 Removed in 2.6 > \fBdelete_module\fP(2) 1.0 > +.\" 1394f03221790a988afc3e4b3cb79f2e477246a9 > +.\" 4ba66a9760722ccbb691b8f7116cad2f791cca7b > +\fBdma_memcpy\fP(2) 2.6.22 Blackfin only (port removed in Linux 4.17) > \fBdup\fP(2) 1.0 > \fBdup2\fP(2) 1.0 > \fBdup3\fP(2) 2.6.27 > @@ -212,6 +246,11 @@ T} > \fBepoll_wait\fP(2) 2.6 > \fBeventfd\fP(2) 2.6.22 > \fBeventfd2\fP(2) 2.6.27 > +\fBexecv\fP(2) 2.0 T{ > +SPARC/SPARC64 only, for compatibility > +.br > +with SunOS, see \fBexecve\fP(2) > +T} > \fBexecve\fP(2) 1.0 > \fBexecveat\fP(2) 3.19 > \fBexit\fP(2) 1.0 > @@ -256,14 +295,34 @@ T} > \fBget_mempolicy\fP(2) 2.6.6 > \fBget_robust_list\fP(2) 2.6.17 > \fBget_thread_area\fP(2) 2.6 > +.\" 8fcd6c45f5a65621ec809b7866a3623e9a01d4ed > +\fBget_tls\fP(2) 4.15 ARM OABI only, has \fB__ARM_NR\fP prefix > \fBgetcpu\fP(2) 2.6.19 > \fBgetcwd\fP(2) 2.2 > \fBgetdents\fP(2) 2.0 > \fBgetdents64\fP(2) 2.4 > +.\" parisc: 863722e856e64dae0e252b6bb546737c6c5626ce > +\fBgetdomainname\fP(2) 2.2 T{ > +SPARC, SPARC64; available > +.br > +as \fBosf_getdomainname\fP(2) > +.br > +on Alpha since Linux 2.0 > +T} > +,\" ec98c6b9b47df6df1c1fa6cf3d427414f8c2cf16 > +\fBgetdtablesize\fP(2) 2.0 T{ > +SPARC (removed in 2.6.26), > +.br > +available on Alpha as \fBosf_getdtablesize\fP(2) > +.br > +since Linux 2.0 > +T} > \fBgetegid\fP(2) 1.0 > \fBgetegid32\fP(2) 2.4 > \fBgeteuid\fP(2) 1.0 > \fBgeteuid32\fP(2) 2.4 > +.\" SPARC removal: ec98c6b9b47df6df1c1fa6cf3d427414f8c2cf16 > +\fBgethostname\fP(2) 2.0 Alpha, was available on SPARC up to Linux 2.6.26 > \fBgetgid\fP(2) 1.0 > \fBgetgid32\fP(2) 2.4 > \fBgetgroups\fP(2) 1.0 > @@ -283,6 +342,27 @@ T} > \fBgetresuid32\fP(2) 2.4 > \fBgetrlimit\fP(2) 1.0 > \fBgetrusage\fP(2) 1.0 > +\fBgetxgid\fP(2) 2.0 T{ > +Alpha only, returns a pair of GID and effective GID > +.br > +via registers \fBr0\fP and \fBr20\fP, provided instead > +.br > +of \fBgetgid\fP(2) and \fBgetegid\fP(2) syscalls > +T} > +\fBgetxpid\fP(2) 2.0 T{ > +Alpha onlt, returns a pair of PID and parent PID > +.br > +via registers \fBr0\fP and \fBr20\fP, provided instead > +.br > +of \fBgetpid\fP(2) and \fBgetppid\fP(2) syscalls > +T} > +\fBgetxuid\fP(2) 2.0 T{ > +Alpha only, returns a pair of GID and effective GID > +.br > +via registers \fBr0\fP and \fBr20\fP, provided instead > +.br > +of \fBgetuid\fP(2) and \fBgeteuid\fP(2) syscalls > +T} > \fBgetsid\fP(2) 2.0 > \fBgetsockname\fP(2) 2.0 See notes on \fBsocketcall\fP(2) > \fBgetsockopt\fP(2) 2.0 See notes on \fBsocketcall\fP(2) > @@ -290,7 +370,7 @@ T} > \fBgettimeofday\fP(2) 1.0 > \fBgetuid\fP(2) 1.0 > \fBgetuid32\fP(2) 2.4 > -\fBgetunwind\fP(2) 2.4.8 ia64; deprecated > +\fBgetunwind\fP(2) 2.4.8 IA-64 only; deprecated > \fBgetxattr\fP(2) 2.6; 2.4.18 > \fBinit_module\fP(2) 1.0 > \fBinotify_add_watch\fP(2) 2.6.13 > @@ -300,6 +380,8 @@ T} > \fBio_cancel\fP(2) 2.6 > \fBio_destroy\fP(2) 2.6 > \fBio_getevents\fP(2) 2.6 > +.\" 7a074e96dee62586c935c80cecd931431bfdd0be > +\fBio_pgetevents\fP(2) 4.18 > \fBio_setup\fP(2) 2.6 > \fBio_submit\fP(2) 2.6 > \fBioctl\fP(2) 1.0 > @@ -310,7 +392,7 @@ T} > \fBipc\fP(2) 1.0 > .\" Implements System V IPC calls > \fBkcmp\fP(2) 3.5 > -\fBkern_features\fP(2) 3.7 Sparc64 > +\fBkern_features\fP(2) 3.7 SPARC64 only > .\" FIXME . document kern_features(): > .\" commit 517ffce4e1a03aea979fe3a18a3dd1761a24fafb > \fBkexec_file_load\fP(2) 3.17 > @@ -339,7 +421,13 @@ T} > \fBlstat64\fP(2) 2.4 > \fBmadvise\fP(2) 2.4 > \fBmbind\fP(2) 2.6.6 > -.\" \fBmemory_ordering\fP(2) ??? Sparc64 > +\fBmemory_ordering\fP(2) 2.2 SPARC64 only > +.\" 26025bbfbba33a9425be1b89eccb4664ea4c17b6 > +.\" bb6fb6dfcc17cddac11ac295861f7608194447a7 > +\fBmetag_get_tls\fP(2) 3.9 Metag only (port removed in Linux 4.17) > +\fBmetag_set_fpu_flags\fP(2) 3.9 Metag only (port removed in Linux 4.17) > +\fBmetag_set_tls\fP(2) 3.9 Metag only (port removed in Linux 4.17) > +\fBmetag_setglobalbit\fP(2) 3.9 Metag only (port removed in Linux 4.17) > \fBmembarrier\fP(2) 3.17 > \fBmemfd_create\fP(2) 3.17 > \fBmigrate_pages\fP(2) 2.6.16 > @@ -377,16 +465,33 @@ T} > \fBmunmap\fP(2) 1.0 > \fBname_to_handle_at\fP(2) 2.6.39 > \fBnanosleep\fP(2) 2.0 > +.\" 5590ff0d5528b60153c0b4e7b771472b5a95e297 > +\fBnewfstatat\fP(2) 2.6.16 See \fBstat\fP(2) > \fBnfsservctl\fP(2) 2.2 Removed in 3.1 > \fBnice\fP(2) 1.0 > +\fBold_adjtimex\fP(2) 2.0 T{ > +Alpha only, variant of \fBadjtimex\fP(2) > +.br > +that uses \fBstruct timeval32\fP, > +.br > +for compatibility with OSF/1 > +T} > +\fBold_getrlimit\fP(2) 2.4 T{ > +Old variant of \fBgetrlimit\fP(2) syscall > +.br > +that used a different value for \fBRLIM_INFINITY\fP > +T} > \fBoldfstat\fP(2) 1.0 > \fBoldlstat\fP(2) 1.0 > \fBoldolduname\fP(2) 1.0 > \fBoldstat\fP(2) 1.0 > +\fBoldumount\fP(2) 2.4.116 Name of the old \fBumount\fP(2) syscall on Alpha > \fBolduname\fP(2) 1.0 > \fBopen\fP(2) 1.0 > \fBopen_by_handle_at\fP(2) 2.6.39 > \fBopenat\fP(2) 2.6.16 > +.\" 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a > +\fBor1k_atomic\fP(2) 3.1 OpenRISC 1000 only > \fBpause\fP(2) 1.0 > \fBpciconfig_iobase\fP(2) 2.2.15; 2.4 Not on x86 > .\" Alpha, PowerPC, ARM; not x86 > @@ -400,9 +505,9 @@ Was perf_counter_open() in > 2.6.31; renamed in 2.6.32 > T} > \fBpersonality\fP(2) 1.2 > -\fBperfctr\fP(2) 2.2 Sparc; removed in 2.6.34 > +\fBperfctr\fP(2) 2.2 SPARC only; removed in 2.6.34 > .\" commit c7d5a0050773e98d1094eaa9f2a1a793fafac300 removed perfctr() > -\fBperfmonctl\fP(2) 2.4 ia64 > +\fBperfmonctl\fP(2) 2.4 IA-64 only > \fBpipe\fP(2) 1.0 > \fBpipe2\fP(2) 2.6.27 > \fBpivot_root\fP(2) 2.4 > @@ -410,10 +515,15 @@ T} > \fBpkey_free\fP(2) 4.8 > \fBpkey_mprotect\fP(2) 4.8 > \fBpoll\fP(2) 2.0.36; 2.2 > -\fBppc_rtas\fP(2) 2.6.2 PowerPC only > -\fBppc_swapcontext\fP(2) 2.6.3 PowerPC only > \fBppoll\fP(2) 2.6.16 > \fBprctl\fP(2) 2.2 > +\fBpread\fP(2) T{ > +Used for \fBpread64\fP(2) on AVR32 > +.br > +(port was removed in Linux 4.12) > +.br > +and Blackfin (port was removed in Linux 4.17) > +T} > \fBpread64\fP(2) T{ > Added as "pread" in 2.2; > .br > @@ -427,10 +537,17 @@ 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) on AVR32 > +.br > +(port was removed in Linux 4.12) > +.br > +and Blackfin (port was removed in Linux 4.17) > +T} > \fBpwrite64\fP(2) T{ > Added as "pwrite" in 2.2; > .br > -renamed "pwrite64" in 2.6 > +renamed to "pwrite64" in 2.6 > T} > \fBpwritev\fP(2) 2.6.30 > \fBpwritev2\fP(2) 4.6 > @@ -455,7 +572,11 @@ T} > \fBrenameat2\fP(2) 3.15 > \fBrequest_key\fP(2) 2.6.10 > \fBrestart_syscall\fP(2) 2.6 > +.\" 921ebd8f2c081b3cf6c3b29ef4103eef3ff26054 > +\fBriscv_flush_icache\fP(2) 4.15 RISC-V only > \fBrmdir\fP(2) 1.0 > +.\" d7822b1e24f2df5df98c76f0e94a5416349ff759 > +\fBrseq\fP(2) 4.18 > \fBrt_sigaction\fP(2) 2.2 > \fBrt_sigpending\fP(2) 2.2 > \fBrt_sigprocmask\fP(2) 2.2 > @@ -464,11 +585,13 @@ T} > \fBrt_sigsuspend\fP(2) 2.2 > \fBrt_sigtimedwait\fP(2) 2.2 > \fBrt_tgsigqueueinfo\fP(2) 2.6.31 > +\fBrtas\fP(2) 2.6.2 PowerPC/PowerPC64 only > \fBs390_runtime_instr\fP(2) 3.7 s390 only > \fBs390_pci_mmio_read\fP(2) 3.19 s390 only > \fBs390_pci_mmio_write\fP(2) 3.19 s390 only > \fBs390_sthyi\fP(2) 4.15 s390 only > \fBs390_guarded_storage\fP(2) 4.12 s390 only > +\fBsched_get_affinity\fP(2) 2.6 Name of \fBsched_getaffinity\fP(2) on SPARC and SPARC64 > \fBsched_get_priority_max\fP(2) 2.0 > \fBsched_get_priority_min\fP(2) 2.0 > \fBsched_getaffinity\fP(2) 2.6 > @@ -476,6 +599,7 @@ T} > \fBsched_getparam\fP(2) 2.0 > \fBsched_getscheduler\fP(2) 2.0 > \fBsched_rr_get_interval\fP(2) 2.0 > +\fBsched_set_affinity\fP(2) 2.6 Name of \fBsched_setaffinity\fP(2) 0n SPARC and SPARC64 > \fBsched_setaffinity\fP(2) 2.6 > \fBsched_setattr\fP(2) 3.14 > \fBsched_setparam\fP(2) 2.0 > @@ -497,6 +621,16 @@ T} > \fBset_robust_list\fP(2) 2.6.17 > \fBset_thread_area\fP(2) 2.6 > \fBset_tid_address\fP(2) 2.6 > +\fBset_tls\fP(2) 2.6.11 ARM OABI/EABI only (constant has \fB__ARM_NR\fP prefix) > +\fBsetaltroot\fP(2) 2.6.10 T{ > +Removed in 2.6.11, exposed one of implementation > +.br > +details of the \fBpersonality\fP(2) syscall > +.br > +(creating an alternative root, precursor > +.br > +of mount namespaces) to user space. > +T} > .\" See http://lkml.org/lkml/2005/8/1/83 > .\" "[PATCH] remove sys_set_zone_reclaim()" > \fBsetdomainname\fP(2) 1.0 > @@ -508,10 +642,19 @@ T} > \fBsetgid32\fP(2) 2.4 > \fBsetgroups\fP(2) 1.0 > \fBsetgroups32\fP(2) 2.4 > +.\" arch/alpha/include/asm/core_lca.h > +\fBsethae\fP(2) 2.0 T{ > +Alpha only, used for configuring Host Address > +.br > +Extension register on low-cost Alphas in order > +.br > +to access address space beyond first 27 bits > +T} > \fBsethostname\fP(2) 1.0 > \fBsetitimer\fP(2) 1.0 > \fBsetns\fP(2) 3.0 > \fBsetpgid\fP(2) 1.0 > +\fBsetpgrp\fP(2) 2.0 Alternative name for \fBsetpgid\fP(2) on Alpha > \fBsetpriority\fP(2) 1.0 > \fBsetregid\fP(2) 1.0 > \fBsetregid32\fP(2) 2.4 > @@ -548,9 +691,13 @@ T} > \fBsocketcall\fP(2) 1.0 > .\" Implements BSD socket calls > \fBsocketpair\fP(2) 2.0 See notes on \fBsocketcall\fP(2) > +.\" 5a0015d62668e64c8b6e02e360fbbea121bfd5e6 > +\fBspill\fP(2) 2.6.13 Xtensa only > \fBsplice\fP(2) 2.6.17 > -\fBspu_create\fP(2) 2.6.16 PowerPC only > -\fBspu_run\fP(2) 2.6.16 PowerPC only > +\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 Blackfin (port removed in Linux 4.17) > +\fBsram_free\fP(2) 2.6.22 Blackfin (port removed in Linux 4.17) > \fBssetmask\fP(2) 1.0 > \fBstat\fP(2) 1.0 > \fBstat64\fP(2) 2.4 > @@ -558,7 +705,10 @@ T} > \fBstatfs64\fP(2) 2.6 > \fBstatx\fP(2) 4.11 > \fBstime\fP(2) 1.0 > -\fBsubpage_prot\fP(2) 2.6.25 PowerPC only > +\fBsubpage_prot\fP(2) 2.6.25 PowerPC/PowerPC64 only > +\fBswapcontext\fP(2) 2.6.3 PowerPC/PowerPC64 only > +.\" 529d235a0e190ded1d21ccc80a73e625ebcad09b > +\fBswitch_endian\fP(2) 4.1 PowerPC64 only > \fBswapoff\fP(2) 1.0 > \fBswapon\fP(2) 1.0 > \fBsymlink\fP(2) 1.0 > @@ -570,10 +720,13 @@ T} > .\" First appeared on ARM, as arm_sync_file_range(), but later renamed > .\" \fBsys_debug_setcontext\fP(2) ??? PowerPC if CONFIG_PPC32 > \fBsyncfs\fP(2) 2.6.39 > +\fBsys_debug_setcontext\fP(2) 2.6.11 PowerPC only > +\fBsyscall\fP(2) 1.0 Still available on ARM OABI and MIPS O32 ABI > \fBsysfs\fP(2) 1.2 > \fBsysinfo\fP(2) 1.0 > \fBsyslog\fP(2) 1.0 > .\" glibc interface is \fBklogctl\fP(3) > +\fBsysmips\fP(2) 2.6.0 MIPS only > \fBtee\fP(2) 2.6.17 > \fBtgkill\fP(2) 2.6 > \fBtime\fP(2) 1.0 > @@ -582,6 +735,9 @@ T} > \fBtimer_getoverrun\fP(2) 2.6 > \fBtimer_gettime\fP(2) 2.6 > \fBtimer_settime\fP(2) 2.6 > +.\" b215e283992899650c4271e7385c79e26fb9a88e > +.\" 4d672e7ac79b5ec5cdc90e450823441e20464691 > +\fBtimerfd\fP(2) 2.6.22 Old timerfd interface, removed in 2.6.25 > \fBtimerfd_create\fP(2) 2.6.25 > \fBtimerfd_gettime\fP(2) 2.6.25 > \fBtimerfd_settime\fP(2) 2.6.25 > @@ -602,10 +758,12 @@ T} > \fBuselib\fP(2) 1.0 > \fBustat\fP(2) 1.0 > \fBuserfaultfd\fP(2) 4.3 > +\fBusr26\fP(2) 2.4.8.1 ARM OABI only > +\fBusr32\fP(2) 2.4.8.1 ARM OABI only > \fButime\fP(2) 1.0 > \fButimensat\fP(2) 2.6.22 > \fButimes\fP(2) 2.2 > -\fButrap_install\fP(2) 2.2 Sparc only > +\fButrap_install\fP(2) 2.2 SPARC64 only > .\" FIXME . document utrap_install() > .\" There's a man page for Solaris 5.11 > \fBvfork\fP(2) 2.2 > @@ -621,6 +779,8 @@ T} > \fBwaitpid\fP(2) 1.0 > \fBwrite\fP(2) 1.0 > \fBwritev\fP(2) 2.0 > +.\" 5a0015d62668e64c8b6e02e360fbbea121bfd5e6 > +\fBxtensa\fP(2) 2.6.13 Xtensa only > .TE > .ad > .PP > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/