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 ILBONTR
    Required 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 ILBOSRV
    Required 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 ILBOSTT
    Required 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.