Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sdget(2)

sdgetv(2)



sdenter(2)                SYSTEM CALLS                 sdenter(2)



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

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 fol-
     lowing list:  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.  Indi-
     cates 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 indi-
     cate that the current process is done modifying the contents
     of a shared data segment.  Only changes made between invoca-
     tions of sdenter and sdleave are guaranteed to be  reflected
     in other processes.  sdenter and sdleave are very fast; con-
     sequently, 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 forbid-
     den 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).











            Last change: XENIX Compatibility Package            1



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