Each CEEXVSEL macro instruction in the routine CEEPINTV provides
selection criteria that control whether a certain language-specific
interface validation exit is to be invoked. The selection criteria
include:
- IDR information of the control section whose external references
are being examined,
- IDR information of the target control sections; that is, the control
sections that contain the entry points that are about to be bound
with the external references,
- Prefix of the names of the target control sections, and
- Any unresolved external references.
When the Language Environment interface
validation exit finds that a set of selection criteria is satisfied,
it passes control to a designated language-specific interface validation
exit. This exit then determines if any of the external references
must be renamed.
Syntax
>>-CEEXVSEL--LANG_IV_EXIT=--lang_exit--------------------------->
>--+---------------------+--+-----------------------+----------->
'-,STACK=--stack_size-' '-,STATIC=--static_size-'
>--+------------------------------+----------------------------->
'-,CALLING_IDR=--'calling_idr'-'
>--+----------------------------+------------------------------->
'-,TARGET_IDR=--'target_idr'-'
>--+-----------------------------------------------------------+-->
| .-,------------------. |
| V | |
'-,TARGET_SECTION_PREFIX=--(----'target_sect_pref'-+--+---+-'
'-)-'
>--+----------------+------------------------------------------><
'-,RESOLVED=--NO-'
- lang_exit
- the name of the language-specific interface validation exit routine
that is to be invoked if the criteria specified by the CALLING_IDR,
TARGET_IDR, and TARGET_SECTION_PREFIX are satisfied. The conventions
for coding this exit, along with the arguments passed to it, are described
in Language-specific interface validation exit.
- stack_size
- the maximum total amount of stack storage needed for the DSA or
DSAs of lang_exit and any routines that
it calls. If the STACK parameter is omitted, the maximum length provided
is 400 bytes. No stack extensions are possible.
- static_size
- the length of the storage area required for communication among
successive invocations of lang_exit. A storage
area of this length is provided on the first invocation and the same
area passed on each successful invocation, as an argument on each
call to lang_exit. On the first call, the
first eight bytes of the area are cleared to 0 so that lang_exit can
determine if it has previously stored any of its data in the area.
If the STATIC parameter is omitted or is coded with a value of
0, then no such storage area is made available to lang_exit.
- calling_idr
- Is a string of characters that is compared with the IDR information
associated with the control section whose external references are
to be examined by the interface validation exit. The selection criterion
associated with the CALLING_IDR parameter is satisfied if calling_idr matches
the control section's IDR information.
The value of calling_idr is
compared only with the leading characters of the IDR information associated
with the control section. This allows, for example, a selection based
on the first few characters of the IDR information which contain the
program number of a compiler without regard to any additional characters
that indicate the version and release of the compiler.
If
the calling_idr is omitted, the IDR information
for the control section containing the external references is not
used to eliminate the control section for further analysis of its
external references. In this case, at least one of the other selection
parameters is required.
- target_idr
- Is a string of characters that is compared with the IDR information
associated with the control sections that contain the entry points
in the reference list. (These are the control sections that contain
the entry points that the binder is about to bind with the external
references that are to be validated.) The selection criterion associated
with the TARGET_IDR parameter is satisfied if there is at least one
entry point whose control section has IDR information that matches target_idr.
The
value of target_idr is compared only with
the leading characters of the IDR information associated with the
control section. This allows, for example, a selection based on the
first few characters of the IDR information which contain the program
number of a compiler without regard to any additional characters that
indicate the version and release of the compiler. The target_sect_pref values
are compared only with the leading characters of the section names
in the reference list.
If the target_idr is
omitted, the IDR information for control sections containing entry
points in the reference list is not used to suppress further analysis
of external references. In this case, at least one of the other selection
parameters is required.
If the target_idr parameter
is used, then the RESOLVED=NO parameter must not be used in the same
macro invocation.
- target_sect_pref
- Is a string of characters that is compared with the names of the
control sections that contain the entry points in the reference list.
(These are the control sections that contain the entry points that
the binder is about to bind with the external references that are
to be validated.) The selection criterion associated with the TARGET_SECTION_PREFIX
parameter is satisfied if the reference list has at least one entry
point in a control section whose name begins with one of the target_sect_pref values.
If
the TARGET_SECTION_PREFIX parameter is omitted, then the names of
control sections containing the entry points in the reference list
are not used to suppress further analysis of external references.
In this case, at least one of the other selection parameters is required.
If
the TARGET_SECTION_PREFIX parameter is used, then the RESOLVED=NO
parameter must not be used in the same macro invocation.
- RESOLVED=NO
- This selection criterion is satisfied if there is at least one
unresolved reference. If you use the RESOLVED=NO parameter, you cannot
specify the TARGET_IDR or the TARGET_SECTION_PREFIX parameters in
the same macro invocation.