none
SYSCALLS(S)         Linux Programmer's Manual         SYSCALLS(S)



NAME
       none - list of all system calls

SYNOPSIS
       Linux 2.0 system calls.

DESCRIPTION
       As  of  Linux 2.0.34, there are 164 system calls listed in
       /usr/include/asm/unistd.h.  This man page lists them.

       _llseek(k), _newselect(t), _sysctl(l), access(s), acct(t),
       adjtimex(x),  afs_syscall,  alarm(m),  bdflush(h),  break,
       brk(k), chdir(r), chmod(d), chown(n), chroot(t), clone(e),
       close(e),  creat(t),  create_module(e),  delete_module(e),
       dup(p), dup2(2), execve(e), exit(t), fchdir(r), fchmod(d),
       fchown(n),   fcntl(l),  fdatasync(c),  flock(k),  fork(k),
       fstat(t), fstatfs(s), fsync(c), ftime, ftruncate(e),  get-
       _kernel_syms(s), getdents(s), getegid(d), geteuid(d), get-
       gid(d),  getgroups(s),  getitimer(r),   getpgid(d),   get-
       pgrp(p),   getpid(d),   getppid(d),  getpriority(y),  get-
       rlimit(t), getrusage(e), getsid(d), gettimeofday(y),  get-
       uid(d),   gtty,  idle(e),  init_module(e),  ioctl(l),  io-
       perm(m),  iopl(l),   ipc(c),   kill(l),   link(k),   lock,
       lseek(k),  lstat(t),  mkdir(r), mknod(d), mlock(k), mlock-
       all(l),  mmap(p),  modify_ldt(t),  mount(t),  mprotect(t),
       mpx,  mremap(p), msync(c), munlock(k), munlockall(l), mun-
       map(p),   nanosleep(p),   nice(e),   oldfstat,   oldlstat,
       oldolduname, oldstat, olduname, open(n), pause(e), person-
       ality(y), phys, pipe(e),  prof,  profil,  ptrace(e),  quo-
       tactl(l),   read(d),  readdir(r),  readlink(k),  readv(v),
       reboot(t), rename(e), rmdir(r), sched_get_priority_max(x),
       sched_get_priority_min(n),  sched_getparam(m),  sched_get-
       scheduler(r), sched_rr_get_interval(l), sched_setparam(m),
       sched_setscheduler(r),   sched_yield(d),  select(t),  set-
       domainname(e), setfsgid(d), setfsuid(d),  setgid(d),  set-
       groups(s),  sethostname(e), setitimer(r), setpgid(d), set-
       priority(y), setregid(d), setreuid(d), setrlimit(t),  set-
       sid(d), settimeofday(y), setuid(d), setup(p), sgetmask(k),
       sigaction(n),  signal(l),  sigpending(g),  sigprocmask(k),
       sigreturn(n),  sigsuspend(d),  socketcall(l), ssetmask(k),
       stat(t), statfs(s), stime(e), stty, swapoff(f), swapon(n),
       symlink(k),   sync(c),  sysfs(s),  sysinfo(o),  syslog(g),
       time(e),   times(s),   truncate(e),   ulimit,    umask(k),
       umount(t),   uname(e),   unlink(k),  uselib(b),  ustat(t),
       utime(e),  vhangup(p),  vm86(6),   wait4(4),   waitpid(d),
       write(e), writev(v).

       Of  the  above, 5 are obsolete, namely oldfstat, oldlstat,
       oldolduname, oldstat and olduname (see also  obsolete(e)),
       and  11  are  unimplemented,  namely  afs_syscall,  break,
       ftime, gtty, lock,  mpx,  phys,  prof,  profil,  stty  and
       ulimit  (see  also  unimplemented(d)).  However, ftime(e),
       profil(l) and ulimit(t) exist as  library  routines.   The
       slot  for  phys  is in use since 2.1.116 for umount2; phys
       will never be implemented.

       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.   Below  the details for Linux
       2.0.34.

       The defines __NR_oldstat and __NR_stat refer to  the  rou-
       tines  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 lat-
       est 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() ans sys_mmap() correspond-
       ing  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  anymore,  and  there  is  a
       __NR__newselect (used by libc 6) that corresponds directly
       to sys_select().

       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().

       Finally, the system call 166, with entry point  sys_vm86()
       does  not  have  a  symbolic  number  at all. This version
       supersedes sys_vm86old() with number __NR_vm86.



Linux 2.0                   1996-04-12                SYSCALLS(S)