The following figure illustrates the syntax for the DESERV EXIT
function:
>>-+-------+--DESERV FUNC=EXIT--+-------------------------+----->
'-label-' | .-TASK---. |
'-,EXIT_SCOPE=-+-GLOBAL-+-'
>--+-----------------------------+------------------------------>
| .-NOREPLACE-. |
'-,EXIT_OPTION=-+-REPLACE---+-'
+-DELETE----+
'-QUERY-----'
>--+----------------------------+------------------------------->
'-,EXIT_DST=-+-dst_address-+-'
'-(2-12)------'
>--,EXIT_PREV_DSTPTR=-+-dstPTR_address-+------------------------>
'-(2-12)---------'
>--+---------------------------------------------+-------------->
| .-S----------------------------------. |
'-,MF=-+-L----------------------------------+-'
| .-,COMPLETE-. |
'---(E,-+-(1-12)-+-+-,NOCHECK--+-)---'
'-label--'
>--+------------------+--+------------------+------------------><
'-,RETCODE=retcode-' '-,RSNCODE=rsncode-'
- FUNC=EXIT
- Requests the DESERV function which operates on a DESERV exit.
This keyword is always required except when MF=E is coded with "NOCHECK"
and no other keywords are coded or MF=L is coded with no other keywords.
For the MF=E case, the FUNC keyword and other keywords specified on
the MF=L DESERV macro invocation are assumed to have been coded completely.
- EXIT_SCOPE=GLOBAL or TASK
- Specifies whether the exit specified will be of a TASK level or
of a GLOBAL level.
- EXIT_OPTION=REPLACE or NOREPLACE or DELETE or QUERY
- If EXIT_OPTION=REPLACE or NOREPLACE is coded, this specifies whether
this invocation of the DESERV FUNC=EXIT should replace an existing
DESERV EXIT (TASK or GLOBAL as specified by the EXIT_SCOPE parameter).
EXIT_PREV_DST will return the existing exit or be set to zero if one
does not exist.
If EXIT_OPTION=DELETE is coded, this indicates
that the current exit is to be deleted (EXIT_OPTION=DELETE). In this
case the EXIT_DST parameter specifies the address of the DST which
is to be deleted. This address will be used as the compare value in
a compare and swap operation, and only the currently active exit can
be deleted. The DST address specified with the EXIT_PREV_DSTPTR parameter
will be used as the swap value.
If EXIT_OPTION=QUERY is coded,
this indicates that the current exit DST address is to be returned
via the EXIT_PREV_DSTPTR parameter.
- EXIT_DST=deserv_exit_screen_table RX-Type
Address or (2-12)
- Specifies the address of the
DESERV Screen Table (DST). The screen table is mapped by DST DSECT
of the IGWDES mapping macro. For an EXIT_OPTION of either NOREPLACE
or REPLACE, this parameter defines the DST and defines the exit routine
address which becomes the currently active exit if the operation is
successful. For an EXIT_OPTION of DELETE, this parameter defines the
DST whose address is used as a compare value in a compare and swap
operation when deleting the current DST (the address of the input
DST is used as the compare value). If the compare fails, DESERV returns
an error return and reason code. If EXIT_OPTION=QUERY is coded, this
parameter is not required.
- EXIT_PREV_DSTPTR=addr_of_deserv_exit_screen_table RX-Type
Address or (2-12)
- The EXIT_PREV_DSTPTR is an output parameter when an EXIT_OPTION
of NOREPLACE, REPLACE or QUERY is specified, and an input parameter
if an EXIT_OPTION of DELETE is specified.
For EXIT_OPTION=NOREPLACE
or QUERY this parameter specifies a four byte field into which DESERV
will return the address of the current DST (or zero if no DST exists).
For
EXIT_OPTION=REPLACE, this parameter specifies a four byte field into
which DESERV will return the address of the DST which was successfully
replaced (or zero if no previous DST existed).
For EXIT_OPTION=DELETE,
this parameter specifies a four byte field that points to the DST
that DESERV restore as the current DST. This address is the swap value
for the compare and swap operation.
- MF=S or L or {(E,{(1-12) or label}{,COMPLETE or NOCHECK})} RX-Type
Address or (1-12) - for MF=E second argument Default=S - if the MF
keyword is not specified Default=COMPLETE - if MF=E is specified without
the third argument (COMPLETE or NOCHECK).
- Specifies the format of the macro expansion.
The Standard
form, S, checks all required keywords and keywords that are not valid.
This form generates a complete inline expansion of the parameter list
and code to call the Directory Entry Services routine. The standard
form is for programs that are not reenterable, or for programs that
do not change values in the parameter list.
L specifies the
List form of the macro. This form generates a remote parameter list.
Only keywords of argument type KEY or SYM can be coded. Registers
are not valid because code generation does not occur, adcons are generated.
Invalid keyword checking is done.
Keywords with defaults that
are set by MF=L invocation are not reset to their default during MF=E
invocation.
E specifies the Execute form of the macro. This
form updates the remote parameter list (MF=L) and transfers control
to the DESERV routine.
The second parameter for MF=E format
is the address of the parameter list created by the MF=L DESERV invocation.
This parameter must be specified as either an RX type of address (possibly
the label from MF=L macro invocation) or a register enclosed in parentheses.
The
third parameter, COMPLETE or NOCHECK, is optional. Default is COMPLETE.
This argument specifies whether required keyword checking will be
done. If MF=E is coded with the NOCHECK argument then no, some, or
all allowed keywords can be specified, assuming that any missing keywords
were coded on the MF=L macro invocation. If MF=E is coded with the
COMPLETE argument or allowed to default, the parameter list will be
zeroed out (except for the parameter list header) This sets all defaults
because the defaults for the DESERV macro are 0. All required keywords
must be specified.
- RETCODE=retcode RX-Type Address or (2-12)
- Specifies the address where the return code returned by DESERV
will be stored. Can not be specified on MF=L macro format. The default
is not to store the return code in virtual storage. The return code
is always returned in register 15 without regard to whether RETCODE
is coded.
- RSNCODE=rsncode RX-Type Address or (2-12)
- Specifies the address where the reason code returned by DESERV
will be stored. Can not be specified on MF=L macro format. The default
is not to store the return code in virtual storage. The return code
is always returned in register 0 without regard to whether RETCODE
is coded.
DESERV code is available and used by the system starting with DFSMSdfp
Version 1.1. However, invoking the EXIT function requires that the
appropriate PTF be applied to the system to enable the support. Your
program can test to determine if the appropriate level of DFSMS™ or
PTF is installed.
If the DESERV FUNC=EXIT interface is called on DFSMS without the
support code being available, DESERV returns an error return and reason
code.