1SYSCALLS(2)                Linux Programmer's Manual               SYSCALLS(2)
2
3
4

NAME

6       none - list of all system calls
7

SYNOPSIS

9       Linux 2.4 system calls.
10

DESCRIPTION

12       The system call is the fundamental interface between an application and
13       the Linux kernel. As of Linux  2.4.17,  there  are  1100  system  calls
14       listed  in  /usr/src/linux/include/asm-*/unistd.h.  This man page lists
15       those that are common to most platforms.
16
17       _llseek(2), _newselect(2), _sysctl(2), accept(2),  access(2),  acct(2),
18       adjtimex(2), afs_syscall, alarm(2), bdflush(2), bind(2), break, brk(2),
19       cacheflush(2),  capget(2),  capset(2),  chdir(2),  chmod(2),  chown(2),
20       chown32,  chroot(2),  clone(2),  close(2),  connect(2),  creat(2), cre‐
21       ate_module(2), delete_module(2), dup(2), dup2(2),  execve(2),  exit(2),
22       fchdir(2),  fchmod(2),  fchown(2),  fchown32, fcntl(2), fcntl64, fdata‐
23       sync(2), flock(2), fork(2), fstat(2),  fstat64,  fstatfs(2),  fsync(2),
24       ftime,  ftruncate(2),  ftruncate64, get_kernel_syms(2), getcwd(2), get‐
25       dents(2), getdents64,  getegid(2),  getegid32,  geteuid(2),  geteuid32,
26       getgid(2),  getgid32,  getgroups(2),  getgroups32,  getitimer(2),  get‐
27       pagesize(2),  getpeername(2),  getpmsg,  getpgid(2),  getpgrp(2),  get‐
28       pid(2),  getppid(2),  getpriority(2),  getresgid(2),  getresgid32, get‐
29       resuid(2), getresuid32,  getrlimit(2),  getrusage(2),  getsid(2),  get‐
30       sockname(2),  getsockopt(2),  gettid,  gettimeofday(2), getuid(2), get‐
31       uid32,  gtty,  idle,  init_module(2),  ioctl(2),  ioperm(2),   iopl(2),
32       ipc(2),   kill(2),   lchown(2),  lchown32,  link(2),  listen(2),  lock,
33       lseek(2),  lstat(2),   lstat64,   madvise(2),   mincore(2),   mkdir(2),
34       mknod(2),  mlock(2),  mlockall(2),  mmap(2),  modify_ldt(2),  mount(2),
35       mprotect(2), mpx, mremap(2), msync(2), munlock(2), munlockall(2),  mun‐
36       map(2),   nanosleep(2),  nfsservctl(2),  nice(2),  oldfstat,  oldlstat,
37       oldolduname, oldstat, oldumount, olduname, open(2), pause(2), personal‐
38       ity(2),  phys,  pipe(2),  pivot_root(2),  poll(2),  prctl(2), pread(2),
39       prof, profil,  ptrace(2),  putpmsg,  pwrite(2),  query_module(2),  quo‐
40       tactl(2),   read(2),   readahead,  readdir(2),  readlink(2),  readv(2),
41       reboot(2),  recv(2),  recvfrom(2),  recvmsg(2),  rename(2),   rmdir(2),
42       rt_sigaction, rt_sigpending, rt_sigprocmask, rt_sigqueueinfo, rt_sigre‐
43       turn,   rt_sigsuspend,   rt_sigtimedwait,    sched_get_priority_max(2),
44       sched_get_priority_min(2),   sched_getparam(2),  sched_getscheduler(2),
45       sched_rr_get_interval(2),   sched_setparam(2),   sched_setscheduler(2),
46       sched_yield(2),  security, select(2), sendfile(2), send(2), sendmsg(2),
47       sendto(2), setdomainname(2), setfsgid(2), setfsgid32, setfsuid(2), set‐
48       fsuid32,   setgid(2),   setgid32,   setgroups(2),   setgroups32,   set‐
49       hostname(2),  setitimer(2),  setpgid(2),  setpriority(2),  setregid(2),
50       setregid32,  setresgid(2), setresgid32, setresuid(2), setresuid32, set‐
51       reuid(2),  setreuid32,  setrlimit(2),  setsid(2),  setsockopt(2),  set‐
52       timeofday(2),  setuid(2), setuid32, setup(2), sgetmask(2), shutdown(2),
53       sigaction(2), sigaltstack(2), signal(2), sigpending(2), sigprocmask(2),
54       sigreturn(2),  sigsuspend(2),  socket(2), socketcall(2), socketpair(2),
55       ssetmask(2), stat(2), stat64, statfs(2),  stime(2),  stty,  swapoff(2),
56       swapon(2),   symlink(2),   sync(2),  sysfs(2),  sysinfo(2),  syslog(2),
57       time(2),   times(2),   truncate(2),   truncate64,   ulimit,   umask(2),
58       umount(2),   uname(2),   unlink(2),   uselib(2),   ustat(2),  utime(2),
59       vfork(2), vhangup(2), vm86(2), vm86old, wait4(2), waitpid(2), write(2),
60       writev(2).
61
62       Of  the  above,  9  are obsolete, namely getrlimit, oldfstat, oldlstat,
63       oldolduname, oldstat, olduname, readdir, select and vm86old  (see  also
64       obsolete(2)),  and  15 are unimplemented in the standard kernel, namely
65       afs_syscall, break, ftime, getpmsg, gtty, idle, lock, mpx, phys,  prof,
66       profil, putpmsg, security, stty and ulimit (see also unimplemented(2)).
67       However, ftime(3), profil(3) and ulimit(3) exist as  library  routines.
68       The  slot  for phys is in use since 2.1.116 for umount; phys will never
69       be implemented. The getpmsg and putpmsg calls are for  kernels  patched
70       to  support streams, and may never be in the standard kernel. The secu‐
71       rity call is for future use.
72
73       Roughly speaking, the code belonging to the  system  call  with  number
74       __NR_xxx  defined in /usr/include/asm/unistd.h can be found in the ker‐
75       nel source in the routine sys_xxx().  (The dispatch table for i386  can
76       be  found  in /usr/src/linux/arch/i386/kernel/entry.S.)  There are many
77       exceptions, however, mostly because older system calls were  superseded
78       by  newer ones, and this has been treated somewhat unsystematically. On
79       platforms with proprietary OS emulation, such as parisc, sparc, sparc64
80       and alpha, there are many additional system calls; mips64 also contains
81       a full set of 32-bit system calls.  Below the details for Linux 2.4.17.
82
83       The defines __NR_oldstat and __NR_stat refer to the routines sys_stat()
84       and  sys_newstat(),  and similarly for fstat and lstat.  Similarly, the
85       defines __NR_oldolduname, __NR_olduname and  __NR_uname  refer  to  the
86       routines   sys_olduname(),   sys_uname()   and  sys_newuname().   Thus,
87       __NR_stat and __NR_uname have always referred to the latest version  of
88       the system call, and the older ones are for backward compatibility.
89
90       It  is  different with select and mmap.  These use five or more parame‐
91       ters, and caused problems the way parameter passing on the i386 used to
92       be  set  up.  Thus,  while  other  architectures  have sys_select() and
93       sys_mmap() corresponding to __NR_select  and  __NR_mmap,  on  i386  one
94       finds  old_select()  and  old_mmap()  (routines that use a pointer to a
95       parameter block) instead. These days passing five parameters is  not  a
96       problem  any more, and there is a __NR__newselect (used by libc 6) that
97       corresponds directly to sys_select() and similarly __NR_mmap2.
98
99       Two other system call numbers, __NR__llseek and  __NR__sysctl  have  an
100       additional underscore absent in sys_llseek() and sys_sysctl().
101
102       Then  there  is __NR_readdir corresponding to old_readdir(), which will
103       read at most one directory entry  at  a  time,  and  is  superseded  by
104       sys_getdents().
105
106       On  many  platforms,  including  i386, socket calls are all multiplexed
107       through socketcall() and System V IPC calls through ipc().
108
109       On newer platforms that only have 64-bit file access  and  32-bit  uids
110       (e.g.  alpha, ia64, s390x) there are no *64 or *32 calls. Where the *64
111       and *32 calls exist, the other versions are obsolete.
112
113       The chown and lchown system calls were swapped in 2.1.81. The  *64  and
114       *32  calls were added for kernel 2.4, as were the new versions of getr‐
115       limit and mmap, and the new calls pivot_root, mincore,  madvise,  secu‐
116       rity, gettid and readahead.
117
118
119
120Linux 2.4                         2002-01-07                       SYSCALLS(2)
Impressum