VMS Help
System Services, $CRELNM
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
Creates a logical name and specifies its equivalence names.
On Alpha systems, this service accepts 64-bit addresses.
Format
SYS$CRELNM [attr] ,tabnam ,lognam ,[acmode] ,[itmlst]
C Prototype
int sys$crelnm (unsigned int *attr, void *tabnam, void
*lognam, unsigned char *acmode, void *itmlst);
attr
OpenVMS usage:mask_longword
type: longword (unsigned)
access: read only
mechanism: by 32- or 64-bit reference (Alpha)
mechanism: by 32-bit reference (VAX)
Attributes to be associated with the logical name. The attr
argument is the 32-bit address (on VAX systems) or the 32- or 64-
bit address (on Alpha systems) of a longword bit mask specifying
these attributes.
Each bit in the longword corresponds to an attribute and has a
symbolic name. These symbolic names are defined by the $LNMDEF
macro. To specify an attribute, specify its symbolic name or set
its corresponding bit. The longword bit mask is the logical OR of
all desired attributes. All undefined bits in the longword must
be 0.
If you do not specify this argument or specify it as 0 (no bits
set), no attributes are associated with the logical name.
The attributes are as follows:
Attribute Description
LNM$M_ If set, the logical name is not copied from the
CONFINE process to its spawned subprocesses. You create
a subprocess with the DCL command SPAWN or the
LIB$SPAWN Run-Time Library routine. If the logical
name is placed into a process-private table that
has the CONFINE attribute, the CONFINE attribute
is automatically associated with the logical
name. This applies only to process-private logical
names.
LNM$M_NO_ If set, the logical name cannot be duplicated in
ALIAS this table at an outer access mode. If another
logical name with the same name already exists in
the table at an outer access mode, it is deleted.
tabnam
OpenVMS usage:logical_name
type: character-coded text string
access: read only
mechanism: by 32- or 64-bit descriptor-fixed-length string
descriptor (Alpha)
mechanism: by 32-bit descriptor-fixed-length string descriptor
(VAX)
Name of the table in which to create the logical name. The tabnam
argument is the 32-bit address (on VAX systems) or the 32- or
64-bit address (on Alpha systems) of a descriptor that points
to the name of this table. This argument is required and must be
specified in uppercase.
The name must be entered in uppercase letters. (This requirement
differs from the $CRELNT system service, which automatically
changes tabnam to uppercase.)
If tabnam is not the name of a logical name table, it is assumed
to be a logical name and is translated iteratively until either
the name of a logical name table is found or the number of
translations allowed by the system has been performed. If tabnam
translates to a list of logical name tables, the logical name is
entered into the first table in the list.
lognam
OpenVMS usage:logical_name
type: character-coded text string
access: read only
mechanism: by 32- or 64-bit descriptor-fixed-length string
descriptor (Alpha)
mechanism: by 32-bit descriptor-fixed-length string descriptor
(VAX)
Name of the logical name to be created. The lognam argument
is the 32-bit address (on VAX systems) or the 32- or 64-bit
address (on Alpha systems) of a descriptor that points to the
logical name string. Logical name strings of logical names
created within either the system or process directory table
must consist of uppercase alphanumeric characters, dollar signs
($), and underscores (_); the maximum length is 31 characters.
The maximum length of logical name strings created within other
tables is 255 characters with no restrictions on the types of
characters that can be used. This argument is required.
acmode
OpenVMS usage:access_mode
type: byte (unsigned)
access: read only
mechanism: by 32- or 64-bit reference (Alpha)
mechanism: by 32-bit reference (VAX)
Access mode to be associated with the logical name. The acmode
argument is the 32-bit address (on VAX systems) or the 32- or
64-bit address (on Alpha systems) of a byte that specifies the
access mode.
The access mode associated with the logical name is determined
by maximizing the access mode of the caller with the access
mode specified by the acmode argument, which means that the less
privileged of the two is used. Symbols for the four access modes
are defined by the $PSLDEF macro.
You cannot specify an access mode more privileged than that
of the containing table. However, if the caller has SYSNAM
privilege, then the specified access mode is associated with
the logical name regardless of the access mode of the caller.
If you omit this argument or specify it as 0, the access mode of
the caller is associated with the logical name.
itmlst
OpenVMS usage:32-bit item_list_3 or 64-bit item_list 64b
type: longword (unsigned) for 32-bit; quadword (unsigned)
for 64-bit
access: read only
mechanism: by 32- or 64-bit reference (Alpha)
mechanism: by 32-bit reference (VAX)
Item list describing the equivalence names to be defined for
the logical name and information to be returned to the caller.
The itmlst argument is the 32-bit address (on VAX systems)
or the 32- or 64-bit address (on Alpha systems) of a list of
item descriptors, each of which specifies information about an
equivalence name. An item list in 32-bit format is terminated by
a longword of 0; an item list in 64-bit format is terminated by
a quadword of 0. All items in an item list must be of the same
format-either 32-bit or 64-bit.
Note that it is possible to create a logical that has no
equivalence names. This is done by either omitting the itmlst
argument to $CRELNM, or by not including the LNM$_STRING item
code to the itmlst data structure that is passed into $CRELNM. It
is not possible to create this kind of logical using DCL.
Refer to the OpenVMS System Services Reference Manual to view the
item code diagrams and descriptor fields tables.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.