Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > S


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


swapon() — add swap space for interleaved paging and swapping


#include <unistd.h> int swapon(const char *path, ... /* [int min, int limit, int reserve,] int priority */ );


The ANSI C ", ..." construct denotes a variable length argument list whose optional and required members are given in the associated comment (/* */).


The swapon() system call makes a block device or a directory named path available to the system for paging and swapping.

priority indicates the order in which the swap space from the device or file system is used. It has a range of 0 (highest) to 10 (lowest). Space is taken from the lower-numbered systems first.

swapon() can be used only by users who have appropriate privileges.

If path names a block device file

swapon() makes it available to the system at the specified priority for allocation for paging and swapping.

In this form, swapon() takes only two arguments: the path to the block device file, and the priority.

The device associated with path can be a device already known to the system, defined at system configuration time, or it can be a previously unspecified device.

If the device was already defined at system configuration time and also has a start and/or size defined for that swap device, these values are used.

Otherwise, if a filesystem exists on the device, swap is added following the filesystem, or if no filesystem exists, the complete device is used for swap.

See the appropriate system administrator's manual for information on how the size of the swap area is calculated.

If path names a directory

swapon() makes the blocks on the file system rooted at path available for paging and swapping.

The min, limit, and reserve arguments are passed and used only if the path argument names a directory.

min indicates the number of file system blocks to take from the file system when swapon() is called.

limit indicates the maximum number of file system blocks the swap system is allowed to take from the file system.

reserve indicates the number of file system blocks that are saved for file system use only.

For a pre-existing directory swap, a value of -1 for min, limit, reserve, or priority will keep the value unchanged. This can be used to change selective values without affecting others. For example, if priority of a pre-existing directory swap needs to be changed without affecting the values of min, limit, or reserve, one can specify the new priority value and pass -1 for other arguments.

The size for the file system blocks mentioned above is the preferred file system block size. The preferred file system block size can be obtained by the statvfs() call. The value of min, limit, or reserve is rounded up to the swchunk tunable size.


If swapon() fails, errno is set to one of the following values.


A component of the path prefix denies search permission.


One of priority, min, limit, or reserve arguments is invalid.


The device associated with path already has swap turned on.


The device associated with path is already in use.


The device associated with path was specified at system configuration time to add swap at a specified location, but that location is within an existing file system on the device.


The LIF header on the device associated with path contains inconsistent directory data.


Unable to read the device associated with path.


Too many symbolic links were encountered in translating the path name.


The length of the specified path name exceeds PATH_MAX bytes, or the length of a component of the path name exceeds NAME_MAX bytes while _POSIX_NO_TRUNC is in effect.


The device associated with path does not exist.


The system-imposed limit on the number of swap file entries has been reached.


There is is not enough available space on the specified file system or device.


The device associated with path was specified at system configuration time to add swap following the file system, but no file system was found.


The path argument is not a block special file or the root directory of a file system.


A component of the path is not a directory.


The device associated with path could not be opened.


The effective user ID is not a user with appropriate privileges.


The device associated with path is read-only.


On systems running VxVM 3.5, the swap volumes to be configured for system crash dumps should be created with the usage type as swap during the creation of the swap volume. Not doing so will cause a dump corruption. You could use the -U option of vxassist to do the same.

No means is available to stop swapping to a device.

The system allocates no less than the amount specified in min. However, to make the most efficient use of space, more than the amount requested might be taken from the file system. The actual amount taken will not exceed the number of file system blocks indicated in reserve.

Swapping to a file system is usually slower than swapping to a device.

Once file system blocks have been allocated for swap space, the file system can not be unmounted unless the system is rebooted.

swapctl() is the replacement for swapon(). swapon() is to be obsoleted at a future date.


swapon() was developed by the University of California, Berkeley.


swapon(1M), vxassist(1M), swapctl(2), privileges(5).

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.