OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / original / man2 / syscalls.2
diff --git a/original/man2/syscalls.2 b/original/man2/syscalls.2
deleted file mode 100644 (file)
index 85c9997..0000000
+++ /dev/null
@@ -1,859 +0,0 @@
-.\" Copyright (C) 2007 Michael Kerrisk <mtk.manpages@gmail.com>
-.\" with some input from Stepan Kasal <kasal@ucw.cz>
-.\"
-.\" Some content retained from an earlier version of this page:
-.\" Copyright (C) 1998 Andries Brouwer (aeb@cwi.nl)
-.\" Modifications for 2.2 and 2.4 Copyright (C) 2002 Ian Redfern
-.\" <redferni@logica.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 SYSCALLS 2 2015-01-22 "Linux" "Linux Programmer's Manual"
-.SH NAME
-syscalls \- Linux system calls
-.SH SYNOPSIS
-Linux system calls.
-.SH DESCRIPTION
-The system call is the fundamental interface between an application
-and the Linux kernel.
-.SS System calls and library wrapper functions
-System calls are generally not invoked directly,
-but rather via wrapper functions in glibc (or perhaps some other library).
-For details of direct invocation of a system call, see
-.BR intro (2).
-Often, but not always, the name of the wrapper function is the same
-as the name of the system call that it invokes.
-For example, glibc contains a function
-.BR truncate ()
-which invokes the underlying "truncate" system call.
-
-Often the glibc wrapper function is quite thin, doing little work
-other than copying arguments to the right registers
-before invoking the system call,
-and then setting
-.I errno
-appropriately after the system call has returned.
-(These are the same steps that are performed by
-.BR syscall (2),
-which can be used to invoke system calls
-for which no wrapper function is provided.)
-Note: system calls indicate a failure by returning a negative error
-number to the caller;
-when this happens,
-the wrapper function negates the returned error number
-(to make it positive), copies it to
-.IR errno ,
-and returns \-1 to the caller of the wrapper.
-
-Sometimes, however, the wrapper function does some extra work
-before invoking the system call.
-For example, nowadays there are (for reasons described below) two
-related system calls,
-.BR truncate (2)
-and
-.BR truncate64 (2),
-and the glibc
-.BR truncate ()
-wrapper function checks which of those system calls
-are provided by the kernel and determines which should be employed.
-.SS System call list
-Below is a list of the Linux system calls.
-In the list, the
-.I Kernel
-column indicates the kernel version
-for those system calls that were new in Linux 2.2,
-or have appeared since that kernel version.
-Note the following points:
-.IP * 3
-Where no kernel version is indicated,
-the system call appeared in kernel 1.0 or earlier.
-.IP *
-Where a system call is marked "1.2"
-this means the system call probably appeared in a 1.1.x kernel version,
-and first appeared in a stable kernel with 1.2.
-(Development of the 1.2 kernel was initiated from a branch of kernel
-1.0.6 via the 1.1.x unstable kernel series.)
-.IP *
-Where a system call is marked "2.0"
-this means the system call probably appeared in a 1.3.x kernel version,
-and first appeared in a stable kernel with 2.0.
-(Development of the 2.0 kernel was initiated from a branch of kernel
-1.2.x, somewhere around 1.2.10,
-via the 1.3.x unstable kernel series.)
-.\" Was kernel 2.0 started from a branch of 1.2.10?
-.\" At least from the timestamps of the tarballs of
-.\" of 1.2.10 and 1.3.0, that's how it looks, but in
-.\" fact the diff doesn't seem very clear, the
-.\" 1.3.0 .tar.bz is much bigger (2.0 MB) than the
-.\" 1.2.10 .tar.bz2 (1.8 MB), and AEB points out the
-.\" timestamps of some files in 1.3.0 seem to be older
-.\" than those in 1.2.10.  All of this suggests
-.\" that there might not have been a clean branch point.
-.IP *
-Where a system call is marked "2.2"
-this means the system call probably appeared in a 2.1.x kernel version,
-and first appeared in a stable kernel with 2.2.0.
-(Development of the 2.2 kernel was initiated from a branch of kernel
-2.0.21 via the 2.1.x unstable kernel series.)
-.IP *
-Where a system call is marked "2.4"
-this means the system call probably appeared in a 2.3.x kernel version,
-and first appeared in a stable kernel with 2.4.0.
-(Development of the 2.4 kernel was initiated from a branch of
-kernel 2.2.8 via the 2.3.x unstable kernel series.)
-.IP *
-Where a system call is marked "2.6"
-this means the system call probably appeared in a 2.5.x kernel version,
-and first appeared in a stable kernel with 2.6.0.
-(Development of kernel 2.6 was initiated from a branch
-of kernel 2.4.15 via the 2.5.x unstable kernel series.)
-.IP *
-Starting with kernel 2.6.0, the development model changed,
-and new system calls may appear in each 2.6.x release.
-In this case, the exact version number where the system call appeared
-is shown.
-This convention continues with the 3.x kernel series,
-which followed on from kernel 2.6.39.
-.IP *
-In some cases, a system call was added to a stable kernel
-series after it branched from the previous stable kernel
-series, and then backported into the earlier stable kernel series.
-For example some system calls that appeared in 2.6.x were also backported
-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 3.15
-(or in a few cases only on older kernels) is as follows:
-.\"
-.\" Looking at scripts/checksyscalls.sh in the kernel source is
-.\" instructive about x86 specifics.
-.\"
-.ad l
-.TS
-l2 le l
----
-l l l.
-\fBSystem call\fP      \fBKernel\fP    \fBNotes\fP
-
-\fB_llseek\fP(2)       1.2
-\fB_newselect\fP(2)    2.0
-\fB_sysctl\fP(2)       2.0
-\fBaccept\fP(2)        2.0     See notes on \fBsocketcall\fP(2)
-\fBaccept4\fP(2)       2.6.28
-\fBaccess\fP(2)        1.0
-\fBacct\fP(2)  1.0
-\fBadd_key\fP(2)       2.6.11
-\fBadjtimex\fP(2)      1.0
-\fBalarm\fP(2) 1.0
-\fBalloc_hugepages\fP(2)       2.5.36  Removed in 2.5.44
-\fBbdflush\fP(2)       1.2     T{
-Deprecated (does nothing)
-.br
-since 2.6
-T}
-\fBbind\fP(2)  2.0     See notes on \fBsocketcall\fP(2)
-\fBbpf\fP(2)   3.18
-\fBbrk\fP(2)   1.0
-\fBcacheflush\fP(2)    1.2     Not on x86
-\fBcapget\fP(2)        2.2
-\fBcapset\fP(2)        2.2
-\fBchdir\fP(2) 1.0
-\fBchmod\fP(2) 1.0
-\fBchown\fP(2) 2.2     T{
-See \fBchown\fP(2) for
-.br
-version details
-T}
-\fBchown32\fP(2)       2.4
-\fBchroot\fP(2)        1.0
-\fBclock_adjtime\fP(2) 2.6.39
-\fBclock_getres\fP(2)  2.6
-\fBclock_gettime\fP(2) 2.6
-\fBclock_nanosleep\fP(2)       2.6
-\fBclock_settime\fP(2) 2.6
-\fBclone\fP(2) 1.0
-\fBclose\fP(2) 1.0
-\fBconnect\fP(2)       2.0     See notes on \fBsocketcall\fP(2)
-\fBcreat\fP(2) 1.0
-\fBcreate_module\fP(2) 1.0     Removed in 2.6
-\fBdelete_module\fP(2) 1.0
-\fBdup\fP(2)   1.0
-\fBdup2\fP(2)  1.0
-\fBdup3\fP(2)  2.6.27
-\fBepoll_create\fP(2)  2.6
-\fBepoll_create1\fP(2) 2.6.27
-\fBepoll_ctl\fP(2)     2.6
-\fBepoll_pwait\fP(2)   2.6.19
-\fBepoll_wait\fP(2)    2.6
-\fBeventfd\fP(2)       2.6.22
-\fBeventfd2\fP(2)      2.6.27
-\fBexecve\fP(2)        1.0
-\fBexecveat\fP(2)      3.19
-\fBexit\fP(2)  1.0
-\fBexit_group\fP(2)    2.6
-\fBfaccessat\fP(2)     2.6.16
-\fBfadvise64\fP(2)     2.6
-.\" Implements \fBposix_fadvise\fP(2)
-\fBfadvise64_64\fP(2)  2.6
-\fBfallocate\fP(2)     2.6.23
-\fBfanotify_init\fP(2) 2.6.37
-\fBfanotify_mark\fP(2) 2.6.37
-.\" The fanotify calls were added in Linux 2.6.36,
-.\" but disabled while the API was finalized.
-\fBfchdir\fP(2)        1.0
-\fBfchmod\fP(2)        1.0
-\fBfchmodat\fP(2)      2.6.16
-\fBfchown\fP(2)        1.0
-\fBfchown32\fP(2)      2.4
-\fBfchownat\fP(2)      2.6.16
-\fBfcntl\fP(2) 1.0
-\fBfcntl64\fP(2)       2.4
-\fBfdatasync\fP(2)     2.0
-\fBfgetxattr\fP(2)     2.6; 2.4.18
-\fBfinit_module\fP(2)  3.8
-\fBflistxattr\fP(2)    2.6; 2.4.18
-\fBflock\fP(2) 2.0
-\fBfork\fP(2)  1.0
-\fBfree_hugepages\fP(2)        2.5.36  Removed in 2.5.44
-\fBfremovexattr\fP(2)  2.6; 2.4.18
-\fBfsetxattr\fP(2)     2.6; 2.4.18
-\fBfstat\fP(2) 1.0
-\fBfstat64\fP(2)       2.4
-\fBfstatat64\fP(2)     2.6.16
-\fBfstatfs\fP(2)       1.0
-\fBfstatfs64\fP(2)     2.6
-\fBfsync\fP(2) 1.0
-\fBftruncate\fP(2)     1.0
-\fBftruncate64\fP(2)   2.4
-\fBfutex\fP(2) 2.6
-\fBfutimesat\fP(2)     2.6.16
-\fBget_kernel_syms\fP(2)       1.0     Removed in 2.6
-\fBget_mempolicy\fP(2) 2.6.6
-\fBget_robust_list\fP(2)       2.6.17
-\fBget_thread_area\fP(2)       2.6
-\fBgetcpu\fP(2)        2.6.19
-\fBgetcwd\fP(2)        2.2
-\fBgetdents\fP(2)      2.0
-\fBgetdents64\fP(2)    2.4
-\fBgetegid\fP(2)       1.0
-\fBgetegid32\fP(2)     2.4
-\fBgeteuid\fP(2)       1.0
-\fBgeteuid32\fP(2)     2.4
-\fBgetgid\fP(2)        1.0
-\fBgetgid32\fP(2)      2.4
-\fBgetgroups\fP(2)     1.0
-\fBgetgroups32\fP(2)   2.4
-\fBgetitimer\fP(2)     1.0
-\fBgetpeername\fP(2)   2.0     See notes on \fBsocketcall\fP(2)
-\fBgetpagesize\fP(2)   2.0     Not on x86
-\fBgetpgid\fP(2)       1.0
-\fBgetpgrp\fP(2)       1.0
-\fBgetpid\fP(2)        1.0
-\fBgetppid\fP(2)       1.0
-\fBgetpriority\fP(2)   1.0
-\fBgetrandom\fP(2)     3.17
-\fBgetresgid\fP(2)     2.2
-\fBgetresgid32\fP(2)   2.4
-\fBgetresuid\fP(2)     2.2
-\fBgetresuid32\fP(2)   2.4
-\fBgetrlimit\fP(2)     1.0
-\fBgetrusage\fP(2)     1.0
-\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)
-\fBgettid\fP(2)        2.4.11
-\fBgettimeofday\fP(2)  1.0
-\fBgetuid\fP(2)        1.0
-\fBgetuid32\fP(2)      2.4
-.\" \fBgetunwind\fP(2) 2.4.8   ia64; DEPRECATED
-\fBgetxattr\fP(2)      2.6; 2.4.18
-\fBinit_module\fP(2)   1.0
-\fBinotify_add_watch\fP(2)     2.6.13
-\fBinotify_init\fP(2)  2.6.13
-\fBinotify_init1\fP(2) 2.6.27
-\fBinotify_rm_watch\fP(2)      2.6.13
-\fBio_cancel\fP(2)     2.6
-\fBio_destroy\fP(2)    2.6
-\fBio_getevents\fP(2)  2.6
-\fBio_setup\fP(2)      2.6
-\fBio_submit\fP(2)     2.6
-\fBioctl\fP(2) 1.0
-\fBioperm\fP(2)        1.0
-\fBiopl\fP(2)  1.0
-\fBioprio_get\fP(2)    2.6.13
-\fBioprio_set\fP(2)    2.6.13
-\fBipc\fP(2)   1.0
-.\" Implements System V IPC calls
-\fBkcmp\fP(2)  3.5
-\fBkern_features\fP(2) 3.7     Sparc64
-.\" FIXME . document kern_features():
-.\" commit 517ffce4e1a03aea979fe3a18a3dd1761a24fafb
-\fBkexec_file_load\fP(2)       3.17
-\fBkexec_load\fP(2)    2.6.13
-.\" The entry in the syscall table was reserved starting in 2.6.7
-.\" Was named sys_kexec_load() from 2.6.7 to 2.6.16
-\fBkeyctl\fP(2)        2.6.11
-\fBkill\fP(2)  1.0
-\fBlchown\fP(2)        1.0     T{
-See \fBchown\fP(2) for
-.br
-version details
-T}
-\fBlchown32\fP(2)      2.4
-\fBlgetxattr\fP(2)     2.6; 2.4.18
-\fBlink\fP(2)  1.0
-\fBlinkat\fP(2)        2.6.16
-\fBlisten\fP(2)        2.0     See notes on \fBsocketcall\fP(2)
-\fBlistxattr\fP(2)     2.6; 2.4.18
-\fBllistxattr\fP(2)    2.6; 2.4.18
-\fBlookup_dcookie\fP(2)        2.6
-\fBlremovexattr\fP(2)  2.6; 2.4.18
-\fBlseek\fP(2) 1.0
-\fBlsetxattr\fP(2)     2.6; 2.4.18
-\fBlstat\fP(2) 1.0
-\fBlstat64\fP(2)       2.4
-\fBmadvise\fP(2)       2.4
-\fBmbind\fP(2) 2.6.6
-.\" \fBmemory_ordering\fP(2)   ???     Sparc64
-\fBmemfd_create\fP(2)  3.17
-\fBmigrate_pages\fP(2) 2.6.16
-\fBmincore\fP(2)       2.4
-\fBmkdir\fP(2) 1.0
-\fBmkdirat\fP(2)       2.6.16
-\fBmknod\fP(2) 1.0
-\fBmknodat\fP(2)       2.6.16
-\fBmlock\fP(2) 2.0
-\fBmlockall\fP(2)      2.0
-\fBmmap\fP(2)  1.0
-\fBmmap2\fP(2) 2.4
-\fBmodify_ldt\fP(2)    1.0
-\fBmount\fP(2) 1.0
-\fBmove_pages\fP(2)    2.6.18
-\fBmprotect\fP(2)      1.0
-\fBmq_getsetattr\fP(2) 2.6.6
-.\" Implements \fBmq_getattr\fP(3) and \fBmq_setattr\fP(3)
-\fBmq_notify\fP(2)     2.6.6
-\fBmq_open\fP(2)       2.6.6
-\fBmq_timedreceive\fP(2)       2.6.6
-\fBmq_timedsend\fP(2)  2.6.6
-\fBmq_unlink\fP(2)     2.6.6
-\fBmremap\fP(2)        2.0
-\fBmsgctl\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBmsgget\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBmsgrcv\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBmsgsnd\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBmsync\fP(2) 2.0
-.\" \fBmultiplexer\fP(2)       ??      __NR_multiplexer reserved on
-.\"            PowerPC, but unimplemented?
-\fBmunlock\fP(2)       2.0
-\fBmunlockall\fP(2)    2.0
-\fBmunmap\fP(2)        1.0
-\fBname_to_handle_at\fP(2)     2.6.39
-\fBnanosleep\fP(2)     2.0
-\fBnfsservctl\fP(2)    2.2     Removed in 3.1
-\fBnice\fP(2)  1.0
-\fBoldfstat\fP(2)      1.0
-\fBoldlstat\fP(2)      1.0
-\fBoldolduname\fP(2)   1.0
-\fBoldstat\fP(2)       1.0
-\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
-\fBpause\fP(2) 1.0
-\fBpciconfig_iobase\fP(2)      2.2.15; 2.4     Not on x86
-.\" Alpha, PowerPC, ARM; not x86
-\fBpciconfig_read\fP(2)        2.0.26; 2.2     Not on x86
-.\" , PowerPC, ARM; not x86
-\fBpciconfig_write\fP(2)       2.0.26; 2.2     Not on x86
-.\" , PowerPC, ARM; not x86
-\fBperf_event_open\fP(2)       2.6.31  T{
-Was perf_counter_open() in
-.br
-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
-.\"    commit c7d5a0050773e98d1094eaa9f2a1a793fafac300 removed perfctr()
-\fBperfmonctl\fP(2)    2.4     ia64
-\fBpipe\fP(2)  1.0
-\fBpipe2\fP(2) 2.6.27
-\fBpivot_root\fP(2)    2.4
-\fBpoll\fP(2)  2.0.36; 2.2
-\fBppc_rtas\fP(2)      2.6.2   PowerPC only
-\fBppoll\fP(2) 2.6.16
-\fBprctl\fP(2) 2.2
-\fBpread64\fP(2)               T{
-Added as "pread" in 2.2;
-.br
-renamed "pread64" in 2.6
-T}
-\fBpreadv\fP(2)        2.6.30
-\fBprlimit\fP(2)       2.6.36
-\fBprlimit64\fP(2)     2.6.36
-\fBprocess_vm_readv\fP(2)      3.2
-\fBprocess_vm_writev\fP(2)     3.2
-\fBpselect6\fP(2)      2.6.16
-.\" Implements \fBpselect\fP(2)
-\fBptrace\fP(2)        1.0
-\fBpwrite64\fP(2)              T{
-Added as "pwrite" in 2.2;
-.br
-renamed "pwrite64" in 2.6
-T}
-\fBpwritev\fP(2)       2.6.30
-\fBquery_module\fP(2)  2.2     Removed in 2.6
-\fBquotactl\fP(2)      1.0
-\fBread\fP(2)  1.0
-\fBreadahead\fP(2)     2.4.13
-\fBreaddir\fP(2)       1.0
-.\" Supersedes \fBgetdents\fP(2)
-\fBreadlink\fP(2)      1.0
-\fBreadlinkat\fP(2)    2.6.16
-\fBreadv\fP(2) 2.0
-\fBreboot\fP(2)        1.0
-\fBrecv\fP(2)  2.0     See notes on \fBsocketcall\fP(2)
-\fBrecvfrom\fP(2)      2.0     See notes on \fBsocketcall\fP(2)
-\fBrecvmsg\fP(2)       2.0     See notes on \fBsocketcall\fP(2)
-\fBrecvmmsg\fP(2)      2.6.33
-\fBremap_file_pages\fP(2)      2.6     Deprecated since 3.16
-\fBremovexattr\fP(2)   2.6; 2.4.18
-\fBrename\fP(2)        1.0
-\fBrenameat\fP(2)      2.6.16
-\fBrenameat2\fP(2)     3.15
-\fBrequest_key\fP(2)   2.6.11
-\fBrestart_syscall\fP(2)       2.6
-\fBrmdir\fP(2) 1.0
-\fBrt_sigaction\fP(2)  2.2
-\fBrt_sigpending\fP(2) 2.2
-\fBrt_sigprocmask\fP(2)        2.2
-\fBrt_sigqueueinfo\fP(2)       2.2
-\fBrt_sigreturn\fP(2)  2.2
-\fBrt_sigsuspend\fP(2) 2.2
-\fBrt_sigtimedwait\fP(2)       2.2
-\fBrt_tgsigqueueinfo\fP(2)     2.6.31
-\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
-\fBsched_get_priority_max\fP(2)        2.0
-\fBsched_get_priority_min\fP(2)        2.0
-\fBsched_getaffinity\fP(2)     2.6
-\fBsched_getattr\fP(2) 3.14
-\fBsched_getparam\fP(2)        2.0
-\fBsched_getscheduler\fP(2)    2.0
-\fBsched_rr_get_interval\fP(2) 2.0
-\fBsched_setaffinity\fP(2)     2.6
-\fBsched_setattr\fP(2) 3.14
-\fBsched_setparam\fP(2)        2.0
-\fBsched_setscheduler\fP(2)    2.0
-\fBsched_yield\fP(2)   2.0
-\fBseccomp\fP(2)       3.17
-\fBselect\fP(2)        1.0
-\fBsemctl\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBsemget\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBsemop\fP(2) 2.0     See notes on \fBipc\fP(2)
-\fBsemtimedop\fP(2)    2.6; 2.4.22
-\fBsend\fP(2)  2.0     See notes on \fBsocketcall\fP(2)
-\fBsendfile\fP(2)      2.2
-\fBsendfile64\fP(2)    2.6; 2.4.19
-\fBsendmmsg\fP(2)      3.0
-\fBsendmsg\fP(2)       2.0     See notes on \fBsocketcall\fP(2)
-\fBsendto\fP(2)        2.0     See notes on \fBsocketcall\fP(2)
-\fBset_mempolicy\fP(2) 2.6.6
-\fBset_robust_list\fP(2)       2.6.17
-\fBset_thread_area\fP(2)       2.6
-\fBset_tid_address\fP(2)       2.6
-.\" See http://lkml.org/lkml/2005/8/1/83
-.\" "[PATCH] remove sys_set_zone_reclaim()"
-\fBsetdomainname\fP(2) 1.0
-\fBsetfsgid\fP(2)      1.2
-\fBsetfsgid32\fP(2)    2.4
-\fBsetfsuid\fP(2)      1.2
-\fBsetfsuid32\fP(2)    2.4
-\fBsetgid\fP(2)        1.0
-\fBsetgid32\fP(2)      2.4
-\fBsetgroups\fP(2)     1.0
-\fBsetgroups32\fP(2)   2.4
-\fBsethostname\fP(2)   1.0
-\fBsetitimer\fP(2)     1.0
-\fBsetns\fP(2) 3.0
-\fBsetpgid\fP(2)       1.0
-\fBsetpriority\fP(2)   1.0
-\fBsetregid\fP(2)      1.0
-\fBsetregid32\fP(2)    2.4
-\fBsetresgid\fP(2)     2.2
-\fBsetresgid32\fP(2)   2.4
-\fBsetresuid\fP(2)     2.2
-\fBsetresuid32\fP(2)   2.4
-\fBsetreuid\fP(2)      1.0
-\fBsetreuid32\fP(2)    2.4
-\fBsetrlimit\fP(2)     1.0
-\fBsetsid\fP(2)        1.0
-\fBsetsockopt\fP(2)    2.0     See notes on \fBsocketcall\fP(2)
-\fBsettimeofday\fP(2)  1.0
-\fBsetuid\fP(2)        1.0
-\fBsetuid32\fP(2)      2.4
-\fBsetup\fP(2) 1.0     Removed in 2.2
-\fBsetxattr\fP(2)      2.6; 2.4.18
-\fBsgetmask\fP(2)      1.0
-\fBshmat\fP(2) 2.0     See notes on \fBipc\fP(2)
-\fBshmctl\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBshmdt\fP(2) 2.0     See notes on \fBipc\fP(2)
-\fBshmget\fP(2)        2.0     See notes on \fBipc\fP(2)
-\fBshutdown\fP(2)      2.0     See notes on \fBsocketcall\fP(2)
-\fBsigaction\fP(2)     1.0
-\fBsigaltstack\fP(2)   2.2
-\fBsignal\fP(2)        1.0
-\fBsignalfd\fP(2)      2.6.22
-\fBsignalfd4\fP(2)     2.6.27
-\fBsigpending\fP(2)    1.0
-\fBsigprocmask\fP(2)   1.0
-\fBsigreturn\fP(2)     1.0
-\fBsigsuspend\fP(2)    1.0
-\fBsocket\fP(2)        2.0     See notes on \fBsocketcall\fP(2)
-\fBsocketcall\fP(2)    1.0
-.\" Implements BSD socket calls
-\fBsocketpair\fP(2)    2.0     See notes on \fBsocketcall\fP(2)
-\fBsplice\fP(2)        2.6.17
-\fBspu_create\fP(2)    2.6.16  PowerPC only
-\fBspu_run\fP(2)       2.6.16  PowerPC only
-\fBssetmask\fP(2)      1.0
-\fBstat\fP(2)  1.0
-\fBstat64\fP(2)        2.4
-\fBstatfs\fP(2)        1.0
-\fBstatfs64\fP(2)      2.6
-\fBstime\fP(2) 1.0
-\fBsubpage_prot\fP(2)  2.6.25  PowerPC only
-\fBswapoff\fP(2)       1.0
-\fBswapon\fP(2)        1.0
-\fBsymlink\fP(2)       1.0
-\fBsymlinkat\fP(2)     2.6.16
-\fBsync\fP(2)  1.0
-\fBsync_file_range\fP(2)       2.6.17
-\fBsync_file_range2\fP(2)      2.6.22
-.\" PowerPC, ARM, tile
-.\" 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
-\fBsysfs\fP(2) 1.2
-\fBsysinfo\fP(2)       1.0
-\fBsyslog\fP(2)        1.0
-.\" glibc interface is \fBklogctl\fP(3)
-\fBtee\fP(2)   2.6.17
-\fBtgkill\fP(2)        2.6
-\fBtime\fP(2)  1.0
-\fBtimer_create\fP(2)  2.6
-\fBtimer_delete\fP(2)  2.6
-\fBtimer_getoverrun\fP(2)      2.6
-\fBtimer_gettime\fP(2) 2.6
-\fBtimer_settime\fP(2) 2.6
-\fBtimerfd_create\fP(2)        2.6.25
-\fBtimerfd_gettime\fP(2)       2.6.25
-\fBtimerfd_settime\fP(2)       2.6.25
-\fBtimes\fP(2) 1.0
-\fBtkill\fP(2) 2.6; 2.4.22
-\fBtruncate\fP(2)      1.0
-\fBtruncate64\fP(2)    2.4
-\fBugetrlimit\fP(2)    2.4
-\fBumask\fP(2) 1.0
-\fBumount\fP(2)        1.0
-.\" sys_oldumount() -- __NR_umount
-\fBumount2\fP(2)       2.2
-.\" sys_umount() -- __NR_umount2
-\fBuname\fP(2) 1.0
-\fBunlink\fP(2)        1.0
-\fBunlinkat\fP(2)      2.6.16
-\fBunshare\fP(2)       2.6.16
-\fBuselib\fP(2)        1.0
-\fBustat\fP(2) 1.0
-\fButime\fP(2) 1.0
-\fButimensat\fP(2)     2.6.22
-\fButimes\fP(2)        2.2
-\fButrap_install\fP(2) 2.2     Sparc only
-.\" FIXME . document utrap_install()
-.\" There's a man page for Solaris 5.11
-\fBvfork\fP(2) 2.2
-\fBvhangup\fP(2)       1.0
-\fBvm86old\fP(2)       1.0     T{
-Was "vm86"; renamed in
-2.0.28/2.2
-T}
-\fBvm86\fP(2)  2.0.28; 2.2
-\fBvmsplice\fP(2)      2.6.17
-\fBwait4\fP(2) 1.0
-\fBwaitid\fP(2)        2.6.10
-\fBwaitpid\fP(2)       1.0
-\fBwrite\fP(2) 1.0
-\fBwritev\fP(2)        2.0
-.TE
-.ad
-.PP
-On many platforms, including x86-32, socket calls are all multiplexed
-(via glibc wrapper functions) through
-.BR socketcall (2)
-and similarly System\ V IPC calls are multiplexed through
-.BR ipc (2).
-
-Although slots are reserved for them in the system call table,
-the following system calls are not implemented in the standard kernel:
-.BR afs_syscall (2), \" __NR_afs_syscall is 53 on Linux 2.6.22/i386
-.BR break (2),       \" __NR_break is 17 on Linux 2.6.22/i386
-.BR ftime (2),       \" __NR_ftime is 35 on Linux 2.6.22/i386
-.BR getpmsg (2),     \" __NR_getpmsg is 188 on Linux 2.6.22/i386
-.BR gtty (2),        \" __NR_gtty is 32 on Linux 2.6.22/i386
-.BR idle (2),        \" __NR_idle is 112 on Linux 2.6.22/i386
-.BR lock (2),        \" __NR_lock is 53 on Linux 2.6.22/i386
-.BR madvise1 (2),    \" __NR_madvise1 is 219 on Linux 2.6.22/i386
-.BR mpx (2),         \" __NR_mpx is 66 on Linux 2.6.22/i386
-.BR phys (2),        \" Slot has been reused
-.BR prof (2),        \" __NR_prof is 44 on Linux 2.6.22/i386
-.BR profil (2),      \" __NR_profil is 98 on Linux 2.6.22/i386
-.BR putpmsg (2),     \" __NR_putpmsg is 189 on Linux 2.6.22/i386
-.\" __NR_security is 223 on Linux 2.4/i386; absent on 2.6/i386, present
-.\" on a couple of 2.6 architectures
-.BR security (2),    \" __NR_security is 223 on Linux 2.4/i386
-.\" The security call is for future use.
-.BR stty (2),        \" __NR_stty is 31 on Linux 2.6.22/i386
-.BR tuxcall (2),     \" __NR_tuxcall is 184 on x86_64, also on PPC and alpha
-.BR ulimit (2),      \" __NR_ulimit is 58 on Linux 2.6.22/i386
-and
-.BR vserver (2)      \" __NR_vserver is 273 on Linux 2.6.22/i386
-(see also
-.BR unimplemented (2)).
-However,
-.BR ftime (3),
-.BR profil (3),
-and
-.BR ulimit (3)
-exist as library routines.
-The slot for
-.BR phys (2)
-is in use since kernel 2.1.116 for
-.BR umount (2);
-.BR phys (2)
-will never be implemented.
-The
-.BR getpmsg (2)
-and
-.BR putpmsg (2)
-calls are for kernels patched to support STREAMS,
-and may never be in the standard kernel.
-
-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.
-.SH NOTES
-.PP
-Roughly speaking, the code belonging to the system call
-with number __NR_xxx defined in
-.I /usr/include/asm/unistd.h
-can be found in the Linux kernel source in the routine
-.IR sys_xxx ().
-(The dispatch table for i386 can be found in
-.IR /usr/src/linux/arch/i386/kernel/entry.S .)
-There are many exceptions, however, mostly because
-older system calls were superseded by newer ones,
-and this has been treated somewhat unsystematically.
-On platforms with
-proprietary operating-system emulation,
-such as parisc, sparc, sparc64, and alpha,
-there are many additional system calls; mips64 also contains a full
-set of 32-bit system calls.
-
-Over time, changes to the interfaces of some system calls have been
-necessary.
-One reason for such changes was the need to increase the size of
-structures or scalar values passed to the system call.
-Because of these changes, there are now various groups
-of related system calls
-(e.g.,
-.BR truncate (2)
-and
-.BR truncate64 (2))
-which perform similar tasks, but which vary in
-details such as the size of their arguments.
-(As noted earlier, applications are generally unaware of this:
-the glibc wrapper functions do some work to ensure that the right
-system call is invoked, and that ABI compatibility is
-preserved for old binaries.)
-Examples of systems calls that exist in multiple versions are
-the following:
-.IP * 3
-By now there are three different versions of
-.BR stat (2):
-.IR sys_stat ()
-(slot
-.IR __NR_oldstat ),
-.IR sys_newstat ()
-(slot
-.IR __NR_stat ),
-and
-.IR sys_stat64 ()
-(slot
-.IR __NR_stat64 ),
-with the last being the most current.
-.\" e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195
-.\" The stat system calls deal with three different data structures,
-.\" defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64
-A similar story applies for
-.BR lstat (2)
-and
-.BR fstat (2).
-.IP *
-Similarly, the defines
-.IR __NR_oldolduname ,
-.IR __NR_olduname ,
-and
-.I __NR_uname
-refer to the routines
-.IR sys_olduname (),
-.IR sys_uname ()
-and
-.IR sys_newuname ().
-.IP *
-In Linux 2.0, a new version of
-.BR vm86 (2)
-appeared, with the old and the new kernel routines being named
-.IR sys_vm86old ()
-and
-.IR sys_vm86 ().
-.IP *
-In Linux 2.4, a new version of
-.BR getrlimit (2)
-appeared, with the old and the new kernel routines being named
-.IR sys_old_getrlimit ()
-(slot
-.IR __NR_getrlimit )
-and
-.IR sys_getrlimit ()
-(slot
-.IR __NR_ugetrlimit ).
-.IP *
-Linux 2.4 increased the size of user and group IDs from 16 to 32 bits.
-.\" 64-bit off_t changes: ftruncate64, *stat64,
-.\" fcntl64 (because of the flock structure), getdents64, *statfs64
-To support this change, a range of system calls were added
-(e.g.,
-.BR chown32 (2),
-.BR getuid32 (2),
-.BR getgroups32 (2),
-.BR setresuid32 (2)),
-superseding earlier calls of the same name without the
-"32" suffix.
-.IP *
-Linux 2.4 added support for applications on 32-bit architectures
-to access large files (i.e., files for which the sizes and
-file offsets can't be represented in 32 bits.)
-To support this change, replacements were required for system calls
-that deal with file offsets and sizes.
-Thus the following system calls were added:
-.BR fcntl64 (2),
-.BR ftruncate64 (2),
-.BR getdents64 (2),
-.BR stat64 (2),
-.BR statfs64 (2),
-and their analogs that work with file descriptors or
-symbolic links.
-These system calls supersede the older system calls
-which, except in the case of the "stat" calls,
-have the same name without the "64" suffix.
-
-On newer platforms that only have 64-bit file access and 32-bit uids
-(e.g., alpha, ia64, s390x) there are no *64 or *32 calls.
-Where the *64 and *32 calls exist, the other versions are obsolete.
-.IP *
-The
-.I rt_sig*
-calls were added in kernel 2.2 to support the addition
-of real-time signals (see
-.BR signal (7)).
-These system calls supersede the older system calls of the same
-name without the "rt_" prefix.
-.IP *
-The
-.BR select (2)
-and
-.BR mmap (2)
-system calls use five or more arguments,
-which caused problems in the way
-argument passing on the i386 used to be set up.
-Thus, while other architectures have
-.IR sys_select ()
-and
-.IR sys_mmap ()
-corresponding to
-.I __NR_select
-and
-.IR __NR_mmap ,
-on i386 one finds
-.IR old_select ()
-and
-.IR old_mmap ()
-(routines that use a pointer to a
-argument block) instead.
-These days passing five arguments
-is not a problem any more, and there is a
-.I __NR__newselect
-.\" (used by libc 6)
-that corresponds directly to
-.IR sys_select ()
-and similarly
-.IR __NR_mmap2 .
-.\" .PP
-.\" Two system call numbers,
-.\" .IR __NR__llseek
-.\" and
-.\" .IR __NR__sysctl
-.\" have an additional underscore absent in
-.\" .IR sys_llseek ()
-.\" and
-.\" .IR sys_sysctl ().
-.\"
-.\" In kernel 2.1.81,
-.\" .BR lchown (2)
-.\" and
-.\" .BR chown (2)
-.\" were swapped; that is,
-.\" .BR lchown (2)
-.\" was added with the semantics that were then current for
-.\" .BR chown (2),
-.\" and the semantics of the latter call were changed to what
-.\" they are today.
-.SH SEE ALSO
-.BR intro (2),
-.BR syscall (2),
-.BR unimplemented (2),
-.BR errno (3),
-.BR libc (7),
-.BR vdso (7)
-.SH COLOPHON
-This page is part of release 3.79 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
-\%http://www.kernel.org/doc/man\-pages/.