ILBOLLDX — OS/VS COBOL library load/delete exit
Purpose
When you link-edit an OS/VS COBOL NORES program with SCEELKED and include certain CSECTs, you can make the OS/VS COBOL NORES program act like a RES program. For more information about link-editing OS/VS COBOL applications with SCEELKED and having them act like RES programs, see the Enterprise COBOL for z/OS library.
Syntax
void ILBOLLDX
- R1 (input)
- R1 contains a function code in byte 2 and a library routine identifier
in byte 3 as shown below.
byte 0 1 2 3 R1= |xx|xx|ff|ll| Where: Library Routine Reserved (xx) Function (ff) Identifier (ll) ---------------- ---------------- ------------------ Always hex 00 01 - Load 01 - ILBOCOM0 02 - Delete 02 - ILBOSR
- R0 (output)
- R0 must be set to the address of the OS/VS COBOL library load module when a load function is done.
Usage notes
- The OS/VS COBOL library load/delete exit will get control when normally a load or delete of ILBOCOM0 or ILBOSR would occur. The OS/VS COBOL library load/delete exit can then provide a unique copy of the ILBOCOM and ILBOSRV modules per task (TCB).
- To enable the OS/VS COBOL library
load/delete exit, a customer written CSECT called ILBOLLDX must be
link edited with the following ILBO load modules:
- ILBONTR (which is in the SCEERUN data set)
- ILBOSRV (which is in the SCEERUN data set and the SCEELKED data set)
- ILBOSTT (which is in the SCEERUN data set and the SCEELKED data set)
Language Environment does not provide any usermod jobs to perform the link editing of the OS/VS COBOL library load/delete exit into Language Environment. It is the responsibility of the customer who is using the OS/VS COBOL library load/delete exit to do this. Additionally, all OS/VS NORES programs must be relink-edited using the modified SCEELKED data set.
When ILBOLLDX is link edited with the ILBO routines, the link-edit attributes must not be altered and all of the ALIASes associated with each load module must be preserved. For link-edit information to link-edit ILBOLLDX with the ILBO routines, see Figure 1, Figure 2, and Figure 3.
Figure 1. Link edit information to enable ILBOLLDX in ILBONTRRequired link edit parameters: NCAL,RENT,REFR Link edit control cards: INCLUDE SCEERUN(ILBONTR) INCLUDE YOURLIB(ILBOLLDX) ORDER ILBONTR ENTRY ILBONTR ALIAS ILBONTR0 NAME ILBONTR(R)
Figure 2. Link edit information to enable ILBOLLDX in ILBOSRVRequired link edit parameters: LET,NCAL,REUS Link edit control cards: INCLUDE SCEERUN(ILBOSRV) INCLUDE YOURLIB(ILBOLLDX) ORDER ILBOSRV ORDER IGZEOB2 ALIAS ILBOSR,ILBOSRV0,ILBOSRV1,ILBOSR3,ILBOSR5,ILBOST ALIAS ILBOSTP0,ILBOSTP1 ENTRY ILBOSRV NAME ILBOSRV(R)
Figure 3. Link edit information to enable ILBOLLDX in ILBOSTTRequired link edit parameters: LET,NCAL,RENT,REFR Link edit control cards: INCLUDE AIGZMOD1(ILBOSTT) INCLUDE YOURLIB(ILBOLLDX) ORDER ILBOSTT ORDER IGZEOB2 ALIAS ILBOSTT0 ALIAS ILBOSTT2 ENTRY ILBOSTT NAME ILBOSTT(R)
- On entry, R14 contains the return address and R15 the entry point address.
- No save area will be passed to ILBOLLDX to save the caller's registers.
- Registers 2-13 must be preserved.
- ILBOLLDX must be REENTRANT (because it will be link-edited with reentrant ILBO routines).
- ILBOLLDX must be AMODE 24, RMODE 24.
- ILBOLLDX will be entered in AMODE 24 and must return in AMODE 24.
- If ILBOLLDX detects an error condition, it must ABEND, as the caller does not expect return except when the operation is successful.
- ILBOLLDX must support the concept of "use counts". An instance of a routine (the copy associated with a given task, for example) should not be deleted unless the count of delete requests for that instance equals the count of load requests. For example, if the following sequence of events is received for an instance of given library routine, the instance must not be deleted until the last delete in the sequence: load, load, delete, load, delete, delete.
- OS/VS COBOL RES programs cannot be run with the ILBOLLDX support. Unpredictable results will occur if done.
- ILBOLLDX is not called when the OS/VS COBOL NORES program is running as NORES.
- Once ILBOLLDX is link-edited with the ILBO routines, ILBOLLDX must support all environments in which it is used.