Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only.

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
 STATUS     : VM/ESA Version 2, Release 1.0
 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 .... 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          |
*     +---------------------------+---------------------------+
*  58 |                                                       |
*     =                       ICL$END                         =
*     |                                                       |
*     +-------------------------------------------------------+
*
*** ICLBK - Indirect Call Locator Block
*** Overlay for ICLFLAGS in ICLBK
*
*     +------+------+------+------+
*  30 |:ATTR |:FLAG1|:FLAG2|:FLAG3| 34
*     +------+------+------+------+
*
*** Overlay for ICLFLAGS in ICLBK

 

ICLBK Cross Reference

(contains links to field and bit definitions)
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

ICREMP 0030 02

ICRERES 0030 04

ICRESTA 0030 10

ICRRMP 0030 08

ICRTRC 0030 01


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 12:04:56 EDT.
Copyright IBM Corporation, 1990, 1999