NAME

     swapon, swapoff - start/stop swapping to file/device


SYNOPSIS

     #include <unistd.h>
     #include <asm/page.h> /* to find PAGE_SIZE
     #include <sys/swap.h>

     int swapon(const char *path, int swapflags));
     int swapoff(const char *path));


DESCRIPTION

     swapon sets the swap area to the file or block device speci-
     fied  by  path.  swapoff stops swapping to the file or block
     device specified by path.

     swapon takes a swapflags argument.   If  swapflags  has  the
     SWAP_FLAG_PREFER  bit turned on, the new swap area will have
     a higher priority than default.  The priority is encoded as:

         (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

     These functions may only be used by the super-user.


PRIORITY

     Each swap area has a priority,  either  high  or  low.   The
     default  priority  is  low.   Within the low-priority areas,
     newer areas are even lower priority than older areas.

     All priorities set with swapflags are high-priority,  higher
     than  default.   They may have any non-negative value chosen
     by the caller.  Higher numbers mean higher priority.

     Swap pages are  allocated  from  areas  in  priority  order,
     highest  priority  first.   For areas with different priori-
     ties, a higher-priority area is  exhausted  before  using  a
     lower-priority  area.   If  two  or more areas have the same
     priority, and it is the highest  priority  available,  pages
     are allocated on a round-robin basis between them.

     As of Linux 1.3.6, the kernel usually follows  these  rules,
     but there are exceptions.


RETURN VALUE

     On success, zero is returned.  On error, -1 is returned, and
     errno is set appropriately.


ERRORS

     Many other errors can occur if path is not valid.


     EPERM   The  user  is  not  the  super-user,  or  more  than
             MAX_SWAPFILES  (defined  to be 8 in Linux 1.3.6) are
             in use.

     EINVAL  is returned if path exists, but is neither a regular
             path nor a block device.

     ENOENT  is returned if path does not exist.

     ENOMEM  is returned if there is insufficient memory to start
             swapping.


CONFORMING TO

     These functions are Linux specific and should not be used in
     programs  intended  to  be portable.  The second `swapflags'
     argument was introduced in Linux 1.3.2.


NOTES

     The partition or path must be prepared with mkswap(8).


SEE ALSO

     mkswap(8), swapon(8), swapoff(8)