ICLBK Back to Index page
 
Prolog 
Control Block Contents 
   ICLBK DSECT
Storage Layout 
Cross Reference (Contains links to field and bit definitions)
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.


  ICLBK Prolog Top of page
 
 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.
 RELOCATION CONSIDERATIONS : None
 COMMENTS   : The ICLBK chain is never pruned.
 
 
  ICLBK Control Block Content Top of page
 

 ICLBK DSECT Top of page
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 ICLCALLS 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 Top of page
 
          
*** 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 Top of page
 
 
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 7.3.0 Last updated on 22 Jun 2022 at 15:51:20 EDT.
Copyright IBM Corporation, 1990, 2022