Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ swapctl(2) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mmap(2)

unlink(2)






       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>:
                  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_t          sr_start;/* offset to start of swap area */
                  off_t          sr_length;/* length of swap area */

             sr_start and sr_length are specified in 512-byte blocks.

             When SC_LIST is specified, arg is a pointer to a swaptable
             structure containing the following members:
                  int  swt_n;    /* number of swapents following */
                  struct         swapent swt_ent[];/* array of swt_n swapents */

             A swapent structure contains the following members:
                  char *ste_path;/* name of the swap file */
                  off_t          ste_start;/* starting block for swapping */
                  off_t          ste_length;/* length of swap area */
                  long ste_pages;/* number of pages for swapping */
                  long ste_free; /* number of ste_pages free */
                  long ste_flags;/* ST_INDEL bit set if swap file */
                                 /* is now being deleted */

             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.





                           Copyright 1994 Novell, Inc.               Page 1













      swapctl(2)                                                swapctl(2)


            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_LIST, SC_ADD, and SC_REMOVE functions will fail if the
            calling process does not have appropriate privilege
            (P_SYSOPS).

         Return Values
            On success, swapctl returns 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.  On failure, swapctl returns -1 and sets errno to
            identify the error.

            Note that unlink(2) does not always lead to file removal.
            mmap(2) can be used to create references to the file, and
            unlink only removes the file when link count goes to zero and
            all references to the file are gone.

         Errors
            In the following conditions, 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 (SC_REMOVE), 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}


                          Copyright 1994 Novell, Inc.               Page 2













       swapctl(2)                                                swapctl(2)


                         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 privilege
                         (P_SYSOPS).

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

       REFERENCES
             mmap(2), unlink(2)




















                           Copyright 1994 Novell, Inc.               Page 3








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