Arguments passed to language-specific interface validation exits

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:

  1. 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.
  2. Anchor Word. A 4-byte pointer to a structure consisting of the following two fields:
    1. 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.
    2. 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.

  3. This parameter has no meaning in this context.
  4. Section name. A varying string containing the name of the section being validated.
  5. 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.
  6. 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.
  7. Reference List. A 4-byte pointer to a list of unchecked references. For a discussion of the reference list, see Reference list.
  8. 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.
  9. 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.