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