VMS Help  —  RTL Routines, PPL$  PPL$CREATE_SHARED_MEMORY
    The Create Shared Memory routine creates (if necessary) and maps
    a section of memory that can be shared by multiple processes.

    Format

      PPL$CREATE_SHARED_MEMORY  section-name ,memory-area [,flags]

                                [,file-name] [,protection]

1  –  Arguments

 section-name

    OpenVMS usage char_string
    type          character string
    access        read only
    mechanism     by descriptor
    Name of the shared memory section you want to create. The
    section-name argument is the address of a descriptor pointing
    to the shared memory section name.

 memory-area

    OpenVMS usage vector_longword_unsigned
    type          longword (unsigned)
    access        modify
    mechanism     by reference, array reference
    The area of memory into which the shared memory is mapped. The
    memory-area argument is the address of a two-longword array
    containing, in order, the length (in bytes) and the starting
    virtual address for the area of memory.

    If you specify the starting address as zero, the PPL$ facility
    selects the virtual address space so that each current process
    in the application can map the section to the same set of virtual
    addresses.

    PPL$CREATE_SHARED_MEMORY returns to this argument the actual
    length and starting virtual address of the shared memory created
    or mapped.

 flags

    OpenVMS usage mask_longword
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Specifies options for creating and mapping shared memory. The
    flags argument is the address of a longword bit mask containing
    the flag. Valid values are as follows:

    PPL$M_NOZERO  Does not initialize the shared memory to zero. By
                  default, PPL$CREATE_SHARED_MEMORY initializes the
                  shared memory to zero.
    PPL$M_NOWRT   Maps the shared memory with no write access (in
                  other words, read only). By default, the shared
                  memory is available with read/write access.
    PPL$M_NOUNI   Names the shared memory a nonunique name. By
                  default, PPL$CREATE_SHARED_MEMORY gives the
                  specified shared memory a name unique to the
                  application by using PPL$UNIQUE_NAME.
    PPL$M_PERM    Creates permanent shared memory in which data
                  is maintained even though there are no active
                  processes. The default is determined by your
                  call to PPL$CREATE_APPLICATION: if you specify
                  the PPL$M_PERM flag in your call to PPL$CREATE_
                  APPLICATION, this behavior is the default and
                  you do not need to specify PPL$M_PERM in your
                  call to PPL$CREATE_SHARED_MEMORY. If you do not
                  specify the PPL$M_PERM flag in your calls to
                  PPL$CREATE_APPLICATION and PPL$CREATE_SHARED_
                  MEMORY, application data is lost when the last
                  process in the application exits. Use of this flag
                  requires PRMGBL privilege.
    PPL$M_SYSTEM  Creates systemwide shared memory. The default is
                  determined by your call to PPL$CREATE_APPLICATION:
                  if you specify the PPL$M_SYSTEM flag in your call
                  to PPL$CREATE_APPLICATION, this behavior is the
                  default and you do not need to specify PPL$M_
                  SYSTEM in your call to PPL$CREATE_SHARED_MEMORY.
                  If you do not specify the PPL$M_SYSTEM flag in your
                  calls to PPL$CREATE_APPLICATION and PPL$CREATE_
                  SHARED_MEMORY, the application is available only to
                  processes running under the same group UIC. Use of
                  this flag requires the SYSGBL privilege.

 file-name

    OpenVMS usage char_string
    type          character string
    access        read only
    mechanism     by descriptor
    Name of the file used for backup storage of the shared memory.
    The file-name argument is the address of a descriptor pointing
    to the file name. The size of the resulting address space is the
    smaller of the following:

    o  The specified section size

    o  The size of the file being mapped

    If you do not specify a file name, PPL$CREATE_SHARED_MEMORY
    creates for backup storage a page file section instead of a disk
    file section.

    If you specify a file that does not exist, PPL$CREATE_SHARED_
    MEMORY creates it.

 protection

    OpenVMS usage file_protection
    type          longword (unsigned)
    access        read only
    mechanism     by reference
    Numeric value representing the protection mask to be applied
    to the shared memory. The optional protection argument is the
    address of an unsigned longword containing this numeric value.
    If you do not specify a value, the default is the value for
    protection specified in the call to PPL$CREATE_APPLICATION.
    For more information, see the description of the $CRMPSC system
    service in the OpenVMS System Services Reference Manual.
Close Help