VMS Help
RTL Routines, PPL$, PPL$CREATE_SHARED_MEMORY
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
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]
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.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.