pTAL Reference Manual (G06.24+, H06.09+, J06.03+)
procptr
is a procedure pointer identifier.
param-type
is any data type described in the data-type parameter of this syntax description.
Indirection
., .EXT, .EXT32, .EXT64, .SG, and .SGX are indirection symbols (see Table 14
(page 41)).
NOTE: The “Indirection Symbols” (page 41), .EXT32 and .EXT64 are 64-bit addressing
functionality added to the EpTAL compiler starting with SPR T0561H01^AAP. For more
information, see Appendix E, “64-bit Addressing Functionality” (page 531).
identifier
is an identifier (as described in Identifiers (page 42)).
referral
is the name of a previously declared structure or structure pointer. You must include
referral if the formal parameter identifier is the name of a structure.
Topics:
• Declaring Procedure Pointer Variables (page 266)
• Declaring Procedure Pointers in Structures (page 267)
• Declaring PROCPTRs as Formal Parameters (page 268)
• Assignments to Procedure Pointers (page 269)
• Dynamically Selected Procedure Calls (page 271)
Declaring Procedure Pointer Variables
procptr
is a procedure pointer identifier.
prev-identifier
is the identifier of a previously declared variable. On TNS architecture, prev-identifier
must be 16 bits. On TNS/R and TNS/E architecture, prev-identifier must be 32 bits or
more.
procaddr
is a constant or dynamic expression of type PROCADDR, PROC32ADDR, or PROC64ADDR.
procaddr must be the name of a procedure, procedure pointer, or PROCADDR,
PROC32ADDR, or PROC64ADDR variable. If procaddr is a procedure or procedure pointer,
the parameters of procptr and procaddr must match and the following procedure attributes
must match: EXTENSIBLE, VARIABLE, RETURNSCC, MAIN, and INTERRUPT; the following
procedure attributes do not have to match: OVERFLOW_TRAPS, CALLABLE, PRIV, and RESIDENT.
You can declare a procedure pointer anywhere a data declaration is valid. For purposes of
declarations, procedure pointers are treated as data, not as procedures.
The address type of a PROCPTR, PROC32PTR, and PROC64PTR is PROCADDR, PROC32ADDR,
and PROC64ADDR, respectively.
The address type of a procedure pointer variable is WADDR.
266 Procedures, Subprocedures, and Procedure Pointers