syscalls(2)



SYSCALLS(2)                Linux Programmer's Manual               SYSCALLS(2)

NAME
       none - list of all system calls

SYNOPSIS
       Linux 2.4 system calls.

DESCRIPTION
       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), cre-
       ate_module(2), delete_module(2), dup(2), dup2(2),  execve(2),  exit(2),
       fchdir(2),  fchmod(2),  fchown(2),  fchown32, fcntl(2), fcntl64, fdata-
       sync(2), flock(2), fork(2), fstat(2),  fstat64,  fstatfs(2),  fsync(2),
       ftime,  ftruncate(2),  ftruncate64, get_kernel_syms(2), getcwd(2), get-
       dents(2), getdents64,  getegid(2),  getegid32,  geteuid(2),  geteuid32,
       getgid(2),  getgid32,  getgroups(2),  getgroups32,  getitimer(2),  get-
       pagesize(2),  getpeername(2),  getpmsg,  getpgid(2),  getpgrp(2),  get-
       pid(2),  getppid(2),  getpriority(2),  getresgid(2),  getresgid32, get-
       resuid(2), getresuid32,  getrlimit(2),  getrusage(2),  getsid(2),  get-
       sockname(2),  getsockopt(2),  gettid,  gettimeofday(2), getuid(2), get-
       uid32,  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),  mun-
       map(2),   nanosleep(2),  nfsservctl(2),  nice(2),  oldfstat,  oldlstat,
       oldolduname, oldstat, oldumount, olduname, open(2), pause(2), personal-
       ity(2),  phys,  pipe(2),  pivot_root(2),  poll(2),  prctl(2), pread(2),
       prof, profil,  ptrace(2),  putpmsg,  pwrite(2),  query_module(2),  quo-
       tactl(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_sigre-
       turn,   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), setfsgid32, setfsuid(2), set-
       fsuid32,   setgid(2),   setgid32,   setgroups(2),   setgroups32,   set-
       hostname(2),  setitimer(2),  setpgid(2),  setpriority(2),  setregid(2),
       setregid32,  setresgid(2), setresgid32, setresuid(2), setresuid32, set-
       reuid(2),  setreuid32,  setrlimit(2),  setsid(2),  setsockopt(2),  set-
       timeofday(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 secu-
       rity 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 ker-
       nel 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  parame-
       ters, 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
       sys_getdents().

       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  getr-
       limit  and  mmap, and the new calls pivot_root, mincore, madvise, secu-
       rity, gettid and readahead.

Linux 2.4                         2002-01-07                       SYSCALLS(2)

Man(1) output converted with man2html
list of all man pages