Procedure descriptor labeling directive Format .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
.PROCEDURE_DESCRIPTOR defines a bivalued global identifier that is used to represent a global 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 .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 .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 .PROCEDURE_DESCRIPTOR before the code of the routine it describes. o See the descriptions 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.