Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
ICLBK
Control Block Contents
ICLBK DSECT
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. RELOCATION CONSIDERATIONS : None 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
Copyright IBM Corporation, 1990, 2011