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 V6R1.0. Last updated on 18 Feb 2010 at 08:43:37 EDT.
Copyright IBM Corporation, 1990, 2008