Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sdget(2)

sdgetv(2)





   sdenter(2)             (XENIX Compatibility Package)             sdenter(2)


   NAME
         sdenter, sdleave - synchronizes access to a shared data segment.

   SYNOPSIS
         cc [flag ...] file ... -lx
         #include <sys/sd.h>

         int sdenter(char *addr, int flags); int sdleave(char *addr);

   DESCRIPTION
         sdenter is used to indicate that the current process is about to
         access the contents of a shared data segment.   The actions performed
         depend on the value of flags.  flags values are formed by OR-ing
         together entries from the following list:

         SD_NOWAIT If another process has called sdenter but not sdleave for
                   the indicated segment, and the segment was not created with
                   the SD_UNLOCK flag set, return an ENAVAIL error instead of
                   waiting for the segment to become free.

         SD_WRITE  Indicates that the process wants to write data to the
                   shared data segment.  A process that has attached to a
                   shared data segment with the SD_RDONLY flag set will not be
                   allowed to enter with the SD_WRITE flag set.  sdleave is
                   used to indicate that the current process is done modifying
                   the contents of a shared data segment.

         Only changes made between invocations of sdenter and sdleave are
         guaranteed to be reflected in other processes.  sdenter and sdleave
         are very fast; consequently, it is recommended that they be called
         frequently rather than leave sdenter in effect for any period of
         time.  In particular, system calls should be avoided between sdenter
         and sdleave calls.

         The fork system call is forbidden between calls to sdenter and
         sdleave if the segment was created without the SD_UNLOCK flag.

   DIAGNOSTICS
         Successful calls return 0.  Unsuccessful calls return -1 and errno is
         set to indicate the error.  errno is set to EINVAL if a process does
         an sdenter with the SD_WRITE flag set and the segment is already
         attached with the SD_RDONLY flag set. errno is set to ENAVAIL if the
         SD_NOWAIT flag is set for sdenter and the shared data segment is not
         free.

   SEE ALSO
         sdget(2), sdgetv(2).






   7/91                                                                 Page 1





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