The following nine arguments are passed to each language-specific
interface validation exit. These arguments are similar to, but not
identical to, those passed by the binder to an interface validation
exit (see Language Environment interface validation exit). Standard linkage conventions
are followed, that is, register 1 contains the address of a list of
addresses of these arguments:
- Function Code. A 1-byte function code with value of 'V' indicating
the Validate function. This differs from what the binder provides
because the language-specific interface validation exit is entered
only for the Validate function and not for the Start and End functions.
- Anchor Word. A 4-byte pointer to a structure consisting
of the following two fields:
- A 4-byte pointer to a communication area of the length given by
the STATIC parameter of the CEEXVSEL macro instruction. The same area
is provided for each call to the same language-specific interface
validation exit. On the first call, the first eight bytes of the area
are cleared to 0 so that language-specific interface validation exit
can determine whether it has previously stored any of its data in
the area.
- A 4-byte pointer to the first applicable reference list entry
(see Structure of the Language Environment interface validation exit for information about
the reference list).
If there is neither a TARGET_IDR nor a TARGET_SECTION_PREFIX
parameter on the CEEXVSEL macro instruction, this is a pointer to
the first list entry for the section being validated and has the same
value as the "Reference List" parameter.
If there is one
or both of the TARGET_IDR and a TARGET_SECTION_PREFIX parameters,
this is a pointer to the first list entry that satisfies these selection
criteria. Note, however, that subsequent list entries may not satisfy
these selection criteria.
- This parameter has no meaning in this context.
- Section name. A varying string containing the name of the section
being validated.
- Section vaddr. A 4-byte pointer to the beginning of the first
text element in the section being validated. This may not be useful
in a multi-class module, since there is no designated "primary" class.
This field is reserved for future use.
- Section IDRL. A 4-byte pointer to the IDR entry for the section
in process. The IDR data entry consists of a halfword length field
containing the length of the data followed by the data.
- Reference List. A 4-byte pointer to a list of unchecked references.
For a discussion of the reference list, see Reference list.
- Return code. A fullword return code in which the overall status
of the exit is to be returned. It will be initialized to zero on invocation
of the exit. The following values may be set by the language-specific
interface validation exit:
- 0
- OK, no further processing required of this section. The action
code for all references is zero.
- 4
- Further processing required by the binder, as indicated in the
returned action codes.
- 12
- Severe error. Make no more calls to the exit and do not save the
module (unless the binder option LET=12).
- 16
- Terminate binder processing immediately.
- Returned message. A 4-byte pointer in which may be returned the
address of a halfword length field and a string allocated by the language-specific
interface validation exit, and containing a message to be printed
by the binder. The returned message must not be longer than 1000 bytes.
The binder will prefix the returned message with its own message number.
The returned message will be initialized to the null string so that
the exit routine need not take any action unless a message is to be
issued. For more information about message handling, see Message handling.