CEERELES macro — Dynamically delete a routine
CEERELES is used to dynamically delete a routine. The macro invocation
destroys the following registers:
- R0
- R1
- R14
- R15
When the macro code is expanded and run, the following assumptions
are made:
- R12 points to the CAA.
- R13 has a standard Language Environment DSA available.
Syntax >>-label--CEERELES--+---------------+--,------------------------> '-TOKEN=--token-' .-MF=I-----------------. >--+-------------------+--,--+----------------------+---------->< '-FEEDBACK=--fbcode-' +-+------+-------------+ | '-MF=L-' | '-MF=(E,--ctrl_addr--)-'
- label
- The assembler label you give to this invocation of the macro. A label is required if MF=L is specified; otherwise, it is optional.
- TOKEN=token
- The name of a variable that contains the token returned by the CEEFETCH macro. If MF=I or MF=L, you must specify TOKEN.
- FEEDBACK=fbcode
- The name of a variable to contain the resulting 12-byte feedback
token. If you omit this parameter, any nonzero feedback token that
results is signaled. The following symbolic conditions might be returned
from this service:
Symbolic feedback code Severity Message number Message text CEE000 0 — The service completed successfully. CEE38N 3 3351 An event handler was unable to process a request successfully. CEE39K 1 3380 The target load module was not recognized by Language Environment. CEE3DG 3 3504 Delete service request for module-name was unsuccessful. CEE3E0 3 3520 The token passed to the CEERELES macro was invalid. - MF=I
- Indicates the immediate form of the macro. The immediate form generates an inline parameter list, and generates nonreentrant code.
- MF=L
- Indicates the list form of the macro. A remote control program parameter list for the macro is defined, but the service is not invoked. The list form of the macro is usually used with the execute form of the macro.
- MF=(E,ctrl_addr)
- Indicates the execute form of the macro. The service is invoked
using the remote control program parameter list addressed by ctrl_addr (usually
defined by the list form of the macro).
Only one of the MF=I, MF=L, or MF=(E, ctrl_addr) parameters can be coded for the same macro invocation. If none is coded, the immediate form of the macro is used.
Usage notes:
- Language Environment issues the appropriate operating system delete command and performs the necessary dynamic updates to accommodate the deleted load module.
- Language Environment performs any language-related cleanup required.
- This macro should not be used for DLLs.
- In a multithread environment, using a CEEFETCH / BALR (or BASSM) / CEERELES sequence on more than one thread is not supported if the target routine is the same COBOL routine, even when the COBOL routine is enabled for multithreading. COBOL does not allow a CANCEL of a routine that is active on another thread.
- In a multithread environment, using a CEEFETCH / BALR (or BASSM) / CEERELES sequence on more than one thread is not supported if the target routine is the same PL/I routine.