Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ swapctl(2) — Atari System V 1.1-06

Media Vault

Software Library

Restoration Projects

Artifacts Sought





   swapctl(2)                                                       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 contained 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.

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


   8/91                                                                 Page 1









   swapctl(2)                                                       swapctl(2)


        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 .

        ENAMETOOLONG
                     The length of a component of the path specified for
                     SCADD or SCREMOVE exceeds {NAMEMAX} characters 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 structures 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 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 SCADD is a read-only file
                     system.










   Page 2                                                                 8/91





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