Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
Interface validation exit z/OS MVS Program Management: Advanced Facilities SA23-1392-00 |
|
The Interface Validation Exit (INTFVAL) allows your exit routine to examine descriptive data for both caller and called at each external reference. The exit can perform audits, such as examining parameter passing conventions, the number of parameters, data types, and environments. It can accept the interface, rename the reference, or leave the interface unresolved. When specifying this exit on STARTD, you provide the following
information by means of the EXITS keyword:
The binder passes control to your exit routine at the completion
of input processing, including autocall. This is before binding the
module. If specified, the exit routine is invoked at three different
points in binder processing, indicated by the function code passed
to the exit:
At the completion of autocall, the exit will be taken once for the Start function and once for each section in the module containing one or more unchecked external references. An external reference is unchecked if the signature in its ER record is either null (binary zeros) or does not match the signature in the LD. An anchor word will be passed to the exit to provide for persistent storage between invocations. If the binder is invoked as a batch program, the anchor will be allocated and set to zero by the binder on invocation of the Start function; otherwise, the value passed to the binder on the STARTD exit specification will be passed through to the exit. If the exit routine provides its own dynamic storage, that address can be stored in the anchor word for addressability by subsequent invocations. No facilities will be available for trapping errors: If the exit fails, the binder fails. A message can be returned by the exit routine, however, to be printed by the binder. The binder passes a parameter list to the exit routine. Register
one contains the address of a list of addresses to the following data:
The IDR selection list is built by the exit routine on the "Start" call
and its address returned to the binder. The purpose of the list is
to improve performance by limiting the number of exit invocations.
If a section to be validated was compiled by a language product not
on the list, or if no IDR information is available for that section,
the exit will not be taken. Each entry in the list consists of:
The reference list is a linked list containing one entry for each
unchecked ER in the section. References marked NOCALL or NEVERCALL
will not be included in the list. The last entry in the list contains
zero in the link field. A reference entry is 64 bytes in length and
consists of the following fields:
Action codes set for each reference include the following:
Post Processing: On return from the exit, the binder will take the action described by the action code for each external reference. If the action code is 1 or 2, the signature returned by the exit will be stored, if nonzero, in both ER and LD, so that the interface will not be reexamined on a subsequent invocation. If the exit elects to rename a reference, the symbol will be changed FOR THAT REFERENCE ONLY. If the renamed reference cannot be resolved from labels already present in the module, another autocall pass will be required. The exit routine should always return some kind of signature to the binder, if the interface is valid, so that the same reference does not get revalidated on subsequent passes. If the input signature is not null (binary zeros) return it to the binder; otherwise, return any 8-byte string (for example, date/time), which will then be saved in the LD and ER records. The signature can consist of any characters. The binder map, if requested, will indicate those sections that were included as a result of one or more renamed references. The flag position in the map, which normally contains an asterisk for autocalled sections, will be reset to "R". There will be no indication as to the number and location of such renamed references nor their original names. Default Exit Routine: In the absence of an interface exit specification, the binder will
default the exit processing. During default validation, the binder
will examine each resolved ER - LD pair, checking the following:
If either result is not valid, a warning message will be issued by the binder and the return code set to 4. The reference remains resolved, however. |
Copyright IBM Corporation 1990, 2014
|