swapctl(2) SYSTEM CALLS swapctl(2)
NAME
swapctl - manage swap space
SYNOPSIS
#include <sys/stat.h>
#include <sys/swap.h>
int swapctl(int cmd, void *arg);
DESCRIPTION
swapctl adds, deletes, or returns information about swap
resources. cmd specifies one of the following options con-
tained in <sys/swap.h>:
SCADD /* add a resource for swapping */
SCLIST /* list the resources for swapping */
SCREMOVE /* remove a resource for swapping */
SCGETNSWP /* return number of swap resources */
When SCADD or SCREMOVE is specified, arg is a pointer to a
swapres structure containing the following members:
char *srname; /* pathname of resource */
offt srstart;/* offset to start of swap area */
offt srlength;/* length of swap area */
srstart and srlength are specified in 512-byte blocks.
When SCLIST is specified, arg is a pointer to a swaptable
structure containing the following members:
int swtn; /* number of swapents following */
struct swapent swtent[];/* array of swtn swapents */
A swapent structure contains the following members:
char *stepath;/* name of the swap file */
offt stestart;/* starting block for swapping */
offt stelength;/* length of swap area */
long stepages;/* number of pages for swapping */
long stefree; /* number of stepages free */
long steflags;/* STINDEL bit set if swap file */
/* is now being deleted */
SCLIST causes swapctl to return at most swtn entries. The
return value of swapctl is the number actually returned.
The STINDEL bit is turned on in steflags if the swap file
is in the process of being deleted. When SCGETNSWP is
specified, swapctl returns as its value the number of swap
resources in use. arg is ignored for this operation. The
SCADD and SCREMOVE functions will fail if calling process
does not have appropriate privileges.
RETURN VALUE
Upon successful completion, the function swapctl returns a
value of 0 for SCADD or SCREMOVE, the number of struct
swapent entries actually returned for SCLIST, or the number
of swap resources in use for SCGETNSWP. Upon failure, the
function swapctl returns a value of -1 and sets errno to
indicate an error.
1
swapctl(2) SYSTEM CALLS swapctl(2)
ERRORS
Under the following conditions, the function swapctl fails
and sets errno to:
EEXIST Part of the range specified by srstart and
srlength is already being used for swapping on
the specified resource (SCADD).
EFAULT arg, srname, or stepath points outside the
allocated address space.
EINVAL The specified function value is not valid, the
path specified is not a swap resource
(SCREMOVE), part of the range specified by
srstart and srlength lies outside the resource
specified (SCADD), or the specified swap area
is less than one page (SCADD).
EISDIR The path specified for SCADD is a directory.
ELOOP Too many symbolic links were encountered in
translating the pathname provided to SCADD or
SCREMOVE .
ENAMETOOLONGThe length of a component of the path specified
for SCADD or SCREMOVE exceeds {NAMEMAX} char-
acters or the length of the path exceeds
{PATHMAX} characters and {POSIXNOTRUNC} is
in effect.
ENOENT The pathname specified for SCADD or SCREMOVE
does not exist.
ENOMEM An insufficient number of struct swapent struc-
tures were provided to SCLIST, or there were
insufficient system storage resources available
during an SCADD or SCREMOVE, or the system
would not have enough swap space after an
SCREMOVE.
ENOSYS The pathname specified for SCADD or SCREMOVE
is not a file or block special device.
ENOTDIR Pathname provided to SCADD or SCREMOVE con-
tained a component in the path prefix that was
not a directory.
EPERM The process does not have appropriate
privileges.
EROFS The pathname specified for SCADD is a read-only
file system.
2