Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

ICLBK

Prolog  

Control Block Contents  
   ICLBK DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


ICLBK Prolog

 NAME       : HCPICLBK
 DESCRIPTION: Indirect Call Locator Block
 DSECT      : ICLBK
 FUNCTION   : Indirect Call Locator Block keeps information about the
              state and the location of external symbols called by
              HCPCALL TYPE=INDIRECT, or external symbols that reside
              in dynamically loaded modules.
 LOCATED BY : DLUBK.DLUICL
              ICLBK.ICLFWD
              ICRBK.ICRADDRL
 CREATED BY : HCPICL
 DELETED BY : None.
 REFERENCES : HCPICRBK - Indirect Call Request Block
 SERIALIZED : Additions to the ICLBK chain are done under the
              DLUBK.DLUICLLK lock.
              If both the DLUBK.DLUICLLK lock and the ICLBK.ICLLOCK
              lock are required, acquire the DLUBK.DLUICLLK lock
              first.
              Certain updates to the ICLBK require that the ICLLOCK
              be acquired exclusive.  There are at least 4 words
              whose changes must be coordinated.  They are
              ICLFLAGS
              ICLCALLS
              ICLMSGS#
              ICLTRSO#
              Also, any routine that changes the ICLMSGS or ICLTRSO
              bits must hold the DLUCPXLK lock.  CPXUNLOAD checks
              these bits to see if the code can be unloaded and
              therefore they must not change state while a CPXUNLOAD
              is occurring.
              Since there is no Compare-QuadWord-and-Swap, we need
              the serialzation protection afforded by HCPLCLAX.
              For other fields, for example ICLMSECS and ICLCOUNT,
              updates by means of CDS and CS instructions are
              satisfactory.
 COMMENTS   : The ICLBK chain is never pruned.

 

ICLBK Control Block Content


ICLBK DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      ICLBK          Indirect Call Locator Block
0000    0 Address      4 ICLFWD         Fwd pointer to another ICLBK.
                                        ICLBKs are ordered by increasing
                                        value of ICLNAME.
0004    4 Address      4 ICLCPEBK       CPEBK chain to stack when
                                        ICLCOUNT goes to zero
0008    8 Dbl-Word     8 ICLLOCK (3)    Lockword
0020   32 Character    8 ICLNAME        Name of the entry
0028   40 Address      4 ICLLADDR       HLA of entry point
002C   44 Address      4 ICLRADDR       Host logical addr of the entry,
                                        if it has LOCKED attribute.
0030   48 Bitstring    4 ICLFLAGS       Flags
0034   52 Signed       4 ICLCALLS       Count of unfinished calls
0038   56 Signed       4 ICLMSGS#       In use for this many message
                                        repositories.
003C   60 Signed       4 ICLTRSO#       In use for this many TRSOURCE
                                        DATA
0040   64 Signed       4 *              Reserved
0044   68 Signed       4 ICLCOUNT       Calls issued this many times
0048   72 Dbl-Word     8 ICLMSECS       Cumulative elapsed micro-sec
0050   80 Address      4 ICLUNLDR       Address of the routine to call,
                                        or zero if not to call anybody,
                                        when the entry point name for
                                        this ICLBK is to be unloaded.
0054   84 Signed       4 ICLUNLDP       Arbitrary data reserved for use
                                        by the ICLUNLDR routine.
0058   88 Dbl-Word     8 ICL$END (0)    The end
0030   48 Bitstring    1 ICLATTR        Attributes for call
          .1.. ....      ICRRLONG       X'40' ICRRLONG Caller is LONGREG
          ..1. ....      ICRELONG       X'20' ICRELONG Callee is LONGREG
          ...1 ....      ICRESTA        X'10' ICRESTA callee uses static
                                        savearea
          .... 1...      ICRRMP         X'08' ICRRMP caller MP capable
          .... .1..      ICRERES        X'04' ICRERES callee Resident
          .... ..1.      ICREMP         X'02' ICREMP callee MP capable
          .... ...1      ICRTRC         X'01' ICRTRC issue TRACE
                                        instruction
0031   49 Bitstring    1 ICLFLAG1       Flags
          .... ..1.      ICLDYNLD       X'02' ICLDYNLD This entry was
                                        dynamically loaded
0032   50 Bitstring    1 ICLFLAG2       Flags
          1... ....      ICLMSGS        X'80' ICLMSGS In use as a message
                                        repository. This ICLBK points to
                                        storage that was made a message
                                        repository by ASSOCIATE MSGS.
                                        This external symbol may not be
                                        CPXUNLOADed until this flag is
                                        reset by DISASSOCIATE MSGS.
          .1.. ....      ICLTRSO        X'40' ICLTRSO In use by TRSOURCE.
                                        This ICLBK points to storage that
                                        was changed by TRSOURCE
                                        processing. This external symbol
                                        may not be CPXUNLOADed until this
                                        flag is reset by TRSOURCE DROP.
          .... 1...      ICLNRDY        X'08' ICLNRDY Not Ready. This
                                        ICLBK is being built or is being
                                        unloaded and should not be used.
                                        Any call to this entry should
                                        take the CALLFAIL= path in
                                        HCPCALL.
          .... .1..      ICLUNRES       X'04' ICLUNRES UNRESOLVED. Any
                                        call to this entry should take
                                        the CALLFAIL= path in HCPCALL.
          .... ..1.      ICLPAGRR       X'02' ICLPAGRR Paging error
                                        trying to page-in this LOCKED
                                        entry. Treat as if UNRESOLVED.
          .... ...1      ICLUNLOD       X'01' ICLUNLOD This entry is to
                                        be UNLOADed
0033   51 Bitstring    1 ICLFLAG3       Flags
          ICLFLAG3       ICLNOUSE       256*(ICLNRDY+ICLUNRES+ICLPAGRR+IC
                                        LUNLOD)+(0) ICLNOUSE
       Bits that indicate that this ICLBK entry is not in
       shape to be used.  If ICLFLAGS .AND. ICLNOUSE generates
       any nonzero bits, then the ICLBK must not be used to
       locate an external symbol.

 

ICLBK Storage Layout

          
*** ICLBK - Indirect Call Locator Block
*
*     +---------------------------+---------------------------+
*   0 |          ICLFWD           |         ICLCPEBK          |
*     +---------------------------+---------------------------+
*   8 |                                                       |
*     =                       ICLLOCK                         =
*     |                                                       |
*     +-------------------------------------------------------+
*  20 |                       ICLNAME                         |
*     +---------------------------+---------------------------+
*  28 |         ICLLADDR          |         ICLRADDR          |
*     +---------------------------+---------------------------+
*  30 |         ICLFLAGS          |         ICLCALLS          |
*     +---------------------------+---------------------------+
*  38 |         ICLMSGS#          |         ICLTRSO#          |
*     +---------------------------+---------------------------+
*  40 |///////////////////////////|         ICLCOUNT          |
*     +---------------------------+---------------------------+
*  48 |                       ICLMSECS                        |
*     +---------------------------+---------------------------+
*  50 |         ICLUNLDR          |         ICLUNLDP          |
*     +---------------------------+---------------------------+
*
*** ICLBK - Indirect Call Locator Block
          
*** Overlay for ICLFLAGS in ICLBK
*
*     +------+------+------+------+
*  30 |:ATTR |:FLAG1|:FLAG2|:FLAG3| 34
*     +------+------+------+------+
*
*** Overlay for ICLFLAGS in ICLBK

 

ICLBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
ICL$END        0058
ICLATTR        0030
ICLCALLS       0034
ICLCOUNT       0044
ICLCPEBK       0004
ICLDYNLD       0031 02
ICLFLAGS       0030
ICLFLAG1       0031
ICLFLAG2       0032
ICLFLAG3       0033
ICLFWD         0000
ICLLADDR       0028
ICLLOCK        0008
ICLMSECS       0048
ICLMSGS        0032 80
ICLMSGS#       0038
ICLNAME        0020
ICLNOUSE       0033 ICLFLAG3
ICLNRDY        0032 08
ICLPAGRR       0032 02
ICLRADDR       002C
ICLTRSO        0032 40
ICLTRSO#       003C
ICLUNLDP       0054
ICLUNLDR       0050
ICLUNLOD       0032 01
ICLUNRES       0032 04
ICRELONG       0030 20
ICREMP         0030 02
ICRERES        0030 04
ICRESTA        0030 10
ICRRLONG       0030 40
ICRRMP         0030 08
ICRTRC         0030 01

This information is based on z/VM V5R3.0. Last updated on 25 Jun 2007 at 16:40:08 EDT.
Copyright IBM Corporation, 1990, 2007