Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ swapctl(2) — Motorola System V 88k Release 4 Version 4.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

swapctl(2)  —  SYSTEM CALLS

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 contained in sys/swap.h:

SC_ADD/∗ add a resource for swapping ∗/
SC_LIST/∗ list the resources for swapping ∗/
SC_REMOVE/∗ remove a resource for swapping ∗/
SC_GETNSWP/∗ return number of swap resources ∗/

When SC_ADD or SC_REMOVE is specified, arg is a pointer to a swapres structure containing the following members:

char∗sr_name;/∗ pathname of resource ∗/
off_tsr_start;/∗ offset to start of swap area ∗/
off_tsr_length;/∗ length of swap area ∗/

sr_start and sr_length are specified in 512-byte blocks.  For SC_ADD, a value of 0 for both sr_start and sr_length will add the entire resource for swapping. 

When SC_LIST is specified, arg is a pointer to a swaptable structure containing the following members:

intswt_n;/∗ number of swapents following ∗/
structswapent swt_ent[]; /∗ array of swt_n swapents ∗/

A swapent structure contains the following members:

char∗ste_path;/∗ name of the swap file ∗/
off_tste_start;/∗ starting block for swapping ∗/
off_tste_length;/∗ length of swap area ∗/
longste_pages;/∗ number of pages for swapping ∗/
longste_free;/∗ number of ste_pages free ∗/
longste_flags;/∗ ST_INDEL bit set if swap file ∗/
/∗ is now being deleted ∗/
dev_tste_dev;/∗ dev_t of the swap device; ∗/
/∗ NODEV if swap is a regular file ∗/

SC_LIST causes swapctl to return at most swt_n entries.  The return value of swapctl is the number actually returned.  The ST_INDEL bit is turned on in ste_flags if the swap file is in the process of being deleted. 

When SC_GETNSWP is specified, swapctl returns as its value the number of swap resources in use.  arg is ignored for this operation. 

The SC_ADD and SC_REMOVE 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 SC_ADD or SC_REMOVE, the number of struct swapent entries actually returned for SC_LIST, or the number of swap resources in use for SC_GETNSWP.  Upon failure, the function swapctl returns a value of −1 and sets errno to indicate an error. 

ERRORS

Under the following conditions, the function swapctl fails and sets errno to:

EEXIST Part of the range specified by sr_start and sr_length is already being used for swapping on the specified resource (SC_ADD). 

EFAULT arg, sr_name, or ste_path points outside the allocated address space. 

EINVAL The specified function value is not valid, the path specified is not a swap resource, part of the range specified by sr_start and sr_length lies outside the resource specified (SC_ADD), or the specified swap area is less than one page (SC_ADD). 

EISDIR The path specified for SC_ADD is a directory. 

ELOOP Too many symbolic links were encountered in translating the pathname provided to SC_ADD or SC_REMOVE . 

ENAMETOOLONG
The length of a component of the path specified for SC_ADD or SC_REMOVE exceeds {NAME_MAX} characters or the length of the path exceeds {PATH_MAX} characters and {_POSIX_NO_TRUNC} is in effect. 

ENOENT The pathname specified for SC_ADD or SC_REMOVE does not exist. 

ENOMEM An insufficient number of struct swapent structures were provided to SC_LIST, or there were insufficient system storage resources available during an SC_ADD or SC_REMOVE, or the system would not have enough swap space after an SC_REMOVE. 

ENOSYS The pathname specified for SC_ADD or SC_REMOVE is not a file or block special device. 

ENOTDIR Pathname provided to SC_ADD or SC_REMOVE contained a component in the path prefix that was not a directory. 

EPERM The process does not have appropriate privileges. 

EROFS The pathname specified for SC_ADD is a read-only file system. 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026