Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sdenter(S) — Xenix 2.3.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sdget(S)

sdgetv(S)



     SDENTER(S)               XENIX System V                SDENTER(S)



     Name
          sdenter, sdleave - Synchronizes access to a shared data
          segment.

     Syntax
          #include <sys/sd.h>

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

          int sdleave(addr)
          char *addr;

     Description
          sdenter is used to indicate that the current process is
          about to access the contents of a shared data segment.  addr
          is the valid return code from a previous sdget (S) call.
          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 invocatations 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.







     Page 1                                           (printed 8/7/87)





     SDENTER(S)               XENIX System V                SDENTER(S)



     Return Value
          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 call and the shared data segment is not free.

     See Also
          sdget(S), sdgetv(S)

     Notes
          This feature is a XENIX specific enhancement  and may not be
          present on all UNIX implementations.  This routine must be
          linked with the linker option -lx.








































     Page 2                                           (printed 8/7/87)



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