summaryrefslogtreecommitdiff
path: root/static/netbsd/man2/swapctl.2
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:15 -0400
commit253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch)
treeadf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man2/swapctl.2
parenta9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff)
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man2/swapctl.2')
-rw-r--r--static/netbsd/man2/swapctl.2284
1 files changed, 284 insertions, 0 deletions
diff --git a/static/netbsd/man2/swapctl.2 b/static/netbsd/man2/swapctl.2
new file mode 100644
index 00000000..eba4c920
--- /dev/null
+++ b/static/netbsd/man2/swapctl.2
@@ -0,0 +1,284 @@
+.\" $NetBSD: swapctl.2,v 1.40 2024/02/04 05:43:05 mrg Exp $
+.\"
+.\" Copyright (c) 1997 Matthew R. Green
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" Copyright (c) 1980, 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd May 17, 2010
+.Dt SWAPCTL 2
+.Os
+.Sh NAME
+.Nm swapctl
+.Nd modify swap configuration
+.Sh LIBRARY
+.Lb libc
+.Sh SYNOPSIS
+.In unistd.h
+.In sys/swap.h
+.Ft int
+.Fn swapctl "int cmd" "void *arg" "int misc"
+.Sh DESCRIPTION
+The
+.Nm
+function is used to add and delete swap devices, and modify their
+configuration.
+.Pp
+The
+.Fa cmd
+parameter specifies the operation to be performed.
+The
+.Fa arg
+and
+.Fa misc
+parameters have different meanings, depending on the
+.Fa cmd
+parameter.
+.Bl -enum -offset indent
+.It
+If
+.Fa cmd
+is
+.Dv SWAP_NSWAP ,
+the current number of swap devices in the system is returned.
+The
+.Fa arg
+and
+.Fa misc
+parameters are ignored.
+.It
+If
+.Fa cmd
+is
+.Dv SWAP_STATS ,
+the current statistics for swap devices are returned in the
+.Fa arg
+parameter.
+No more than
+.Fa misc
+swap devices are returned.
+The
+.Fa arg
+parameter should point to an array of at least
+.Fa misc
+struct swapent structures:
+.Bd -literal
+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 */
+};
+.Ed
+.Pp
+The flags are defined as
+.Bd -literal
+ 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
+.Ed
+.It
+If
+.Fa cmd
+is
+.Dv SWAP_ON ,
+the
+.Fa arg
+parameter is used as a pathname of a file to enable swapping to.
+The
+.Fa misc
+parameter is used to set the priority of this swap device.
+.It
+If
+.Fa cmd
+is
+.Dv SWAP_OFF ,
+the
+.Fa arg
+parameter is used as the pathname of a file to disable swapping from.
+The
+.Fa misc
+parameter is ignored.
+.It
+If
+.Fa cmd
+is
+.Dv SWAP_CTL ,
+the
+.Fa arg
+and
+.Fa misc
+parameters have the same function as for the
+.Dv SWAP_ON
+case, except that they change the priority of a currently enabled swap device.
+.It
+If
+.Fa cmd
+is
+.Dv SWAP_DUMPDEV ,
+the
+.Fa arg
+parameter is used as the pathname of a device to use as the dump device,
+should the system panic.
+.It
+If
+.Fa cmd
+is
+.Dv SWAP_GETDUMPDEV ,
+the
+.Fa arg
+parameter points to a dev_t, which is filled in by the current dump device.
+.El
+.Pp
+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
+.Dv SWAP_ON
+command is used.
+.Pp
+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
+.Sx SWAP PRIORITY
+section in
+.Xr swapctl 8 .
+.Sh RETURN VALUES
+If the
+.Fa cmd
+parameter is
+.Dv SWAP_NSWAP
+or
+.Dv SWAP_STATS ,
+.Fn swapctl
+returns the number of swap devices, if successful.
+The
+.Dv SWAP_NSWAP
+command is always successful.
+Otherwise it returns 0 on success and \-1
+on failure, setting the global variable
+.Va errno
+to indicate the error.
+.Sh ERRORS
+.Fn swapctl
+succeeds unless:
+.Bl -tag -width Er
+.It Bq Er EACCES
+Search permission is denied for a component of the path prefix.
+.It Bq Er EBUSY
+The device specified by
+.Fa arg
+has already been made available for swapping.
+.It Bq Er EFAULT
+.Fa arg
+points outside the process' allocated address space.
+.It Bq Er EINVAL
+The device configured by
+.Fa arg
+has no associated size, or the
+.Fa cmd
+was unknown.
+.It Bq Er EIO
+An I/O error occurred while opening the swap device.
+.It Bq Er ELOOP
+Too many symbolic links were encountered in translating the pathname.
+.It Bq Er ENAMETOOLONG
+A component of a pathname exceeded
+.Brq Dv NAME_MAX
+characters, or an entire path name exceeded
+.Brq Dv PATH_MAX
+characters.
+.It Bq Er ENOENT
+The named device does not exist.
+For the
+.Dv SWAP_CTL
+command, the named device is not currently enabled for swapping.
+.It Bq Er ENOTDIR
+A component of the path prefix is not a directory.
+.It Bq Er ENXIO
+The major device number of
+.Fa arg
+is out of range (this indicates no device driver exists
+for the associated hardware); or
+the block device specified by
+.Fa arg
+is not marked as a swap partition in the disklabel.
+.It Bq Er EPERM
+The caller is not the super-user.
+.El
+.Sh SEE ALSO
+.Xr swapctl 8
+.Sh HISTORY
+The
+.Fn swapctl
+function call appeared in
+.Nx 1.3 .
+The
+.Fa se_path
+member was added to
+.Va struct swapent
+in
+.Nx 1.4 ,
+when the header file was also moved from
+.In vm/vm_swap.h
+to its current location in
+.In sys/swap.h .
+.Sh AUTHORS
+.An -nosplit
+The current swap system was designed and implemented by
+.An Matthew Green Aq Mt mrg@eterna23.net ,
+with help from
+.An Paul Kranenburg Aq Mt pk@NetBSD.org
+and
+.An Leo Weppelman Aq Mt leo@NetBSD.org ,
+and insights from
+.An Jason R. Thorpe Aq Mt thorpej@NetBSD.org .