Procedure descriptor labeling directive
Format
.LOCAL_PROCEDURE_DESCRIPTOR pd-name, ca-name
1 – Parameters
pd-name
The name of the procedure descriptor. This name can be up to 31
characters long. It cannot be a temporary label.
ca-name
The name of the code address that corresponds to the procedure
descriptor. This name must be defined later in the program as
a label in a psect that has either the EXE or MIX attribute, or
both. This name can be up to 31 characters long. It cannot be a
temporary label.
2 – Description
.LOCAL_PROCEDURE_DESCRIPTOR defines a bivalued local identifier
that is used to represent a local routine. The first value
is the procedure value, which is the address of the procedure
descriptor. This value is defined as the current location counter
at the point where you use the .LOCAL_PROCEDURE_DESCRIPTOR
directive. The second value is the code address, which is
the code entry-point address of the procedure. This value is
defined by the second argument to the .LOCAL_PROCEDURE_DESCRIPTOR
directive. No storage is allocated.
3 – Notes
o See the OpenVMS Calling Standard for a full description of
procedure descriptors.
o You must specify .LOCAL_PROCEDURE_DESCRIPTOR before the code
of the routine it describes.
o See the description for the $PROCEDURE_DESCRIPTOR and $ROUTINE
library macros. These macros define the procedure identifier
and define the storage for the procedure descriptor.
o You can only use this directive within data or mixed psects
(psects that have either the NOEXE or MIX attributes).
o If automatic data alignment is enabled, this directive aligns
the current location counter to a quadword (64-bit) boundary
before defining the procedure identifier.
4 – Example
.LOCAL_PROCEDURE_DESCRIPTOR LP1,C1