Provided by: manpages-dev_2.17-1_all bug


       none - list of all system calls


       Linux 2.4 system calls.


       The system call is the fundamental interface between an application and
       the Linux kernel. As of Linux  2.4.17,  there  are  1100  system  calls
       listed  in  /usr/src/linux/include/asm-*/unistd.h.  This man page lists
       those that are common to most platforms.

       _llseek(2), _newselect(2), _sysctl(2), accept(2),  access(2),  acct(2),
       adjtimex(2), afs_syscall, alarm(2), bdflush(2), bind(2), break, brk(2),
       cacheflush(2),  capget(2),  capset(2),  chdir(2),  chmod(2),  chown(2),
       chown32,   chroot(2),   clone(2),   close(2),   connect(2),   creat(2),
       create_module(2),   delete_module(2),   dup(2),   dup2(2),   execve(2),
       exit(2),  fchdir(2), fchmod(2), fchown(2), fchown32, fcntl(2), fcntl64,
       fdatasync(2),  flock(2),  fork(2),   fstat(2),   fstat64,   fstatfs(2),
       fsync(2),  ftime,  ftruncate(2),  ftruncate64, get_kernel_syms(2), get‐
       cwd(2), getdents(2),  getdents64,  getegid(2),  getegid32,  geteuid(2),
       geteuid32,   getgid(2),   getgid32,   getgroups(2),  getgroups32,  get‐
       itimer(2), getpagesize(2), getpeername(2),  getpmsg,  getpgid(2),  get‐
       pgrp(2),  getpid(2),  getppid(2),  getpriority(2),  getresgid(2),  get‐
       resgid32, getresuid(2), getresuid32, getrlimit(2),  getrusage(2),  get‐
       sid(2),  getsockname(2),  getsockopt(2),  gettid, gettimeofday(2), get‐
       uid(2), getuid32,  gtty,  idle,  init_module(2),  ioctl(2),  ioperm(2),
       iopl(2),  ipc(2),  kill(2),  lchown(2),  lchown32,  link(2), listen(2),
       lock, lseek(2), lstat(2), lstat64,  madvise(2),  mincore(2),  mkdir(2),
       mknod(2),  mlock(2),  mlockall(2),  mmap(2),  modify_ldt(2),  mount(2),
       mprotect(2),  mpx,  mremap(2),  msync(2),  munlock(2),   munlockall(2),
       munmap(2),  nanosleep(2),  nfsservctl(2),  nice(2), oldfstat, oldlstat,
       oldolduname,   oldstat,   oldumount,   olduname,   open(2),   pause(2),
       personality(2),   phys,   pipe(2),  pivot_root(2),  poll(2),  prctl(2),
       pread(2), prof, profil, ptrace(2), putpmsg, pwrite(2), query_module(2),
       quotactl(2),  read(2),  readahead,  readdir(2),  readlink(2), readv(2),
       reboot(2),  recv(2),  recvfrom(2),  recvmsg(2),  rename(2),   rmdir(2),
       rt_sigaction,     rt_sigpending,    rt_sigprocmask,    rt_sigqueueinfo,
       rt_sigreturn,     rt_sigsuspend,      rt_sigtimedwait,      sched_get_‐
       priority_max(2),  sched_get_priority_min(2), sched_getparam(2), sched_‐
       getscheduler(2), sched_rr_get_interval(2),  sched_setparam(2),  sched_‐
       setscheduler(2),   sched_yield(2),  security,  select(2),  sendfile(2),
       send(2), sendmsg(2),  sendto(2),  setdomainname(2),  setfsgid(2),  set‐
       fsgid32,  setfsuid(2),  setfsuid32,  setgid(2), setgid32, setgroups(2),
       setgroups32, sethostname(2), setitimer(2), setpgid(2),  setpriority(2),
       setregid(2),  setregid32, setresgid(2), setresgid32, setresuid(2), set‐
       resuid32,  setreuid(2),  setreuid32,  setrlimit(2),   setsid(2),   set‐
       sockopt(2),    settimeofday(2),    setuid(2),    setuid32,    setup(2),
       sgetmask(2),  shutdown(2),  sigaction(2),  sigaltstack(2),   signal(2),
       sigpending(2),  sigprocmask(2), sigreturn(2), sigsuspend(2), socket(2),
       socketcall(2), socketpair(2), ssetmask(2), stat(2), stat64,  statfs(2),
       stime(2),  stty,  swapoff(2), swapon(2), symlink(2), sync(2), sysfs(2),
       sysinfo(2),  syslog(2),  time(2),  times(2),  truncate(2),  truncate64,
       ulimit,  umask(2), umount(2), uname(2), unlink(2), uselib(2), ustat(2),
       utime(2), vfork(2), vhangup(2), vm86(2), vm86old, wait4(2), waitpid(2),
       write(2), writev(2).

       Of  the  above,  9  are obsolete, namely getrlimit, oldfstat, oldlstat,
       oldolduname, oldstat, olduname, readdir, select and vm86old  (see  also
       obsolete(2)),  and  15 are unimplemented in the standard kernel, namely
       afs_syscall, break, ftime, getpmsg, gtty, idle, lock, mpx, phys,  prof,
       profil, putpmsg, security, stty and ulimit (see also unimplemented(2)).
       However, ftime(3), profil(3) and ulimit(3) exist as  library  routines.
       The  slot  for phys is in use since 2.1.116 for umount; phys will never
       be implemented. The getpmsg and putpmsg calls are for  kernels  patched
       to  support  streams,  and  may  never  be  in the standard kernel. The
       security call is for future use.

       Roughly speaking, the code belonging to the  system  call  with  number
       __NR_xxx  defined  in  /usr/include/asm/unistd.h  can  be  found in the
       kernel source in the routine sys_xxx().  (The dispatch table  for  i386
       can  be  found  in /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 OS 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.   Below
       the details for Linux 2.4.17.

       The defines __NR_oldstat and __NR_stat refer to the routines sys_stat()
       and sys_newstat(), and similarly for fstat and lstat.   Similarly,  the
       defines  __NR_oldolduname,  __NR_olduname  and  __NR_uname refer to the
       routines  sys_olduname(),  sys_uname()   and   sys_newuname().    Thus,
       __NR_stat  and __NR_uname have always referred to the latest version of
       the system call, and the older ones are for backward compatibility.

       It is  different  with  select  and  mmap.   These  use  five  or  more
       parameters,  and  caused problems the way parameter passing on the i386
       used to be set up. Thus, while other  architectures  have  sys_select()
       and  sys_mmap() corresponding to __NR_select and __NR_mmap, on i386 one
       finds old_select() and old_mmap() (routines that use  a  pointer  to  a
       parameter  block)  instead. These days passing five parameters is not a
       problem any more, and there is a __NR__newselect (used by libc 6)  that
       corresponds directly to sys_select() and similarly __NR_mmap2.

       Two  other  system  call numbers, __NR__llseek and __NR__sysctl have an
       additional underscore absent in sys_llseek() and sys_sysctl().

       Then there is __NR_readdir corresponding to old_readdir(),  which  will
       read  at  most  one  directory  entry  at  a time, and is superseded by

       On many platforms, including i386, socket  calls  are  all  multiplexed
       through socketcall() and System V IPC calls through ipc().

       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.

       The  chown  and lchown system calls were swapped in 2.1.81. The *64 and
       *32 calls were added for kernel  2.4,  as  were  the  new  versions  of
       getrlimit  and  mmap,  and  the new calls pivot_root, mincore, madvise,
       security, gettid and readahead.