ICLBK | Back to Index page |
Prolog Control Block Contents ICLBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
|
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 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 |
Copyright IBM Corporation, 1990, 2022