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
 COPYRIGHT -
              THIS MODULE IS "RESTRICTED MATERIALS OF IBM"
              5654-030 (C) COPYRIGHT IBM CORP. - 1995
              LICENSED MATERIALS - PROPERTY OF IBM
              SEE COPYRIGHT INSTRUCTIONS, G120-2083
 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 ICLVADDR       Virtual address of the entry
002C   44 Address      4 ICLRADDR       Real address 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' Caller is LONGREG
          ..1. ....      ICRELONG       X'20' Callee is LONGREG
          ...1 ....      ICRESTA        X'10' callee uses static savearea
          .... 1...      ICRRMP         X'08' caller MP capable
          .... .1..      ICRERES        X'04' callee Resident
          .... ..1.      ICREMP         X'02' callee MP capable
          .... ...1      ICRTRC         X'01' issue TRACE instruction
0031   49 Bitstring    1 ICLFLAG1       Flags
          .... ..1.      ICLDYNLD       X'02' This entry was dynamically
                                        loaded
0032   50 Bitstring    1 ICLFLAG2       Flags
          1... ....      ICLMSGS        X'80' 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' 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' 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' UNRESOLVED. Any call to
                                        this entry should take the
                                        CALLFAIL= path in HCPCALL.
          .... ..1.      ICLPAGRR       X'02' Paging error trying to
                                        page-in this LOCKED entry. Treat
                                        as if UNRESOLVED.
          .... ...1      ICLUNLOD       X'01' This entry is to be
                                        UNLOADed
0033   51 Bitstring    1 ICLFLAG3       Flags
          ICLFLAG3       ICLNOUSE       256*(ICLNRDY+ICLUNRES+ICLPAGRR+IC
                                        LUNLOD)+(0)
     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 |         ICLVADDR          |         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
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
ICLVADDR       0028
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 V4R3.0. Last updated on 1 May 2002 at 08:57:18 EDT.
Copyright IBM Corporation, 1990, 2002