SWAPCTL(2) | System Calls Manual | SWAPCTL(2) |
swapctl
—
#include <unistd.h>
#include <sys/swap.h>
int
swapctl
(int
cmd, void *arg,
int misc);
swapctl
function is used to add and delete swap
devices, and modify their configuration.
The cmd parameter specifies the operation to be performed. The arg and misc parameters have different meanings, depending on the cmd parameter.
SWAP_NSWAP
, the
current number of swap devices in the system is returned. The
arg and misc parameters are
ignored.SWAP_STATS
, the
current statistics for swap devices are returned in the
arg parameter. No more than
misc swap devices are returned. The
arg parameter should point to an array of at least
misc struct swapent structures:
struct swapent { dev_t se_dev; /* device id */ int se_flags; /* entry flags */ int se_nblks; /* total blocks */ int se_inuse; /* blocks in use */ int se_priority; /* priority */ char se_path[PATH_MAX+1]; /* path to entry */ };
The flags are defined as
SWF_INUSE in use: we have swapped here SWF_ENABLE enabled: we can swap here SWF_BUSY busy: I/O happening here SWF_FAKE fake: still being built
SWAP_ON
, the
arg parameter is used as a pathname of a file to
enable swapping to. The misc parameter is used to
set the priority of this swap device.SWAP_OFF
, the
arg parameter is used as the pathname of a file to
disable swapping from. The misc parameter is
ignored.SWAP_CTL
, the
arg and misc parameters have
the same function as for the SWAP_ON
case, except
that they change the priority of a currently enabled swap device.SWAP_DUMPDEV
, the
arg parameter is used as the pathname of a device to
use as the dump device, should the system panic.SWAP_GETDUMPDEV
,
the arg parameter points to a dev_t, which is filled
in by the current dump device.When swapping is enabled on a block device, the first portion of
the disk is left unused to prevent any disklabel present from being
overwritten. This space is allocated from the swap device when the
SWAP_ON
command is used.
The priority of a swap device can be used to fill faster swap devices before slower ones. A priority of 0 is the highest, with larger numbers having lower priority. For a fuller discussion on swap priority, see the SWAP PRIORITY section in swapctl(8).
SWAP_NSWAP
or SWAP_STATS
, swapctl
()
returns the number of swap devices, if successful. The
SWAP_NSWAP
command is always successful. Otherwise it
returns 0 on success and -1 on failure, setting the global variable
errno to indicate the error.
swapctl
() succeeds unless:
EACCES
]EBUSY
]EFAULT
]EINVAL
]EIO
]ELOOP
]ENAMETOOLONG
]NAME_MAX
}
characters, or an entire path name exceeded
{PATH_MAX
} characters.ENOENT
]SWAP_CTL
command, the named device is not currently enabled for swapping.ENOTDIR
]ENXIO
]EPERM
]swapctl
() function call appeared in
NetBSD 1.3. The se_path member
was added to struct swapent in NetBSD
1.4, when the header file was also moved from
<vm/vm_swap.h>
to its current
location in <sys/swap.h>
.
May 17, 2010 | NetBSD 9.0 |