There are two tables which contain the programs: 1) The PreInit table coded with CEEXPIT, CEEXPITY and CEEXPITS macros; 2) The table maintained by LE.
During the LE initialization process, a table is constructed in storage controlled by LE. The information in the PreInit table is copied over. The add_entry function updates the LE constructed table, not the user constructed table. Notice that the add_entry, delete_entry, identify_entry, identify_environment and identify_attribute use the environment token, not the table address as function arguments. Please read the add_entry doc again. You will see that it specifically says that the "LE maintained table" On Fri, Mar 17, 2017 at 8:16 AM, Farley, Peter x23353 <[email protected]> wrote: > Gord, > > That's what I have coded so far, but here is what happens: > > 1. The (init_sub) returns RC=8, but based on the ASMPIPI example I let > that go as not a fatal error since the pre-init table has only empty entries > 2. The first (add_entry) succeeds RC=0 in R15, but the pre-init table is > not updated at all (see debugging display below). The program being added > was compiled with Enterprise COBOL V4.2 so it is certainly a valid LE HLL > subroutine. > > So why does the (add_entry) not update the pre-init table? What am I doing > wrong here? > > Peter > > The pre-init table is defined with four empty entries like this: > > PPTBL CEEXPIT , > CEEXPITY , > CEEXPITY , > CEEXPITY , > CEEXPITY , > CEEXPITS , > > Debugging display (thank you Cole Software!) right after (add_entry) > succeeds, sanitized (names are not what I actually use here): > > XDC ===> d testpipi+4b8 2;d testpipi+4b8? 4;d testpipi+4308 2;d > testpipi+4308+c? > _ 00000000_0000EF48 8f (A.S.TSOUSERE) --- TESTPIPI.TESTPIPI+4B8, @R14+3A, > @R1+50, @R12+4B8, > _ TESTPIPI+4B8, PRIVATE+CF48 > _ +4B8 8f B70992D0 00000000 *..k}....* > <=== EP address of TESTSUBR and pre-init > table index returned by (add_entry) > _ 00000000_370992D0 8f (A.S.TSOUSERE) --- TESTSUBR+0, XPRIVATE+8992D0 > _ +0 8f 47F0F028 00C3C5C5 00000288 00000014 *.00..CEE...h....* > <=== TESTSUBR module in storage > _ +10 8f 47F0F001 98CEAC00 37099386 00000000 *.00.q.....lf....* > _ +20 8f 00000000 00000DFF 90ECD00C 4110F038 *..........}. .0.* > _ +30 8f 98EFF04C 07FF0000 370992D0 00000000 *q.0<......k}....* > _ 00000000_00012D98 8f (A.S.TSOUSERE) --- TESTPIPI.TESTPIPI +4308, > TESTPIPI+4308, PRIVATE+10D98 > _ +4308 8f 80042508 00000003 *........* > <=== Address of CEEPIPI, two other > constants, address of pre-init table > _ +4310 8f 00000009 00012EE4 00000000 3711BDB8 *.......U......].* > _ 00000000_00012EE4 8f (A.S.TDPEFARE) --- TESTPIPI.TESTPIPI +4454, > TESTPIPI+4454, PRIVATE+10EE4 > _ +4454 8f C3C5C5E7 D7E3C2D3 00000004 *CEEXPTBL....* > <=== Pre-init table after (add_entry) succeeds (RC = > 0) > _ +4460 8f 00000010 00000002 00000000 40404040 *............ * > _ +4470 8f 40404040 00000000 00000000 40404040 * ........ * > _ +4480 8f 40404040 00000000 00000000 40404040 * ........ * > _ +4490 8f 40404040 00000000 00000000 40404040 * ........ * > _ +44A0 8f 40404040 00000000 00000000 00278000 * ............* > > > -----Original Message----- > From: IBM Mainframe Discussion List [mailto:[email protected]] On > Behalf Of Gord Tomlin > Sent: Thursday, March 16, 2017 5:41 PM > To: [email protected] > Subject: Re: Need help understanding use of CEEPIPI from non-LE assembler > main programs > > On 2017-03-16 16:11, Farley, Peter x23353 wrote: >> Doesn't use of (add_entry) presume that you add to the table BEFORE you call >> (init_subr) or (init_subr_dp)? What if initialization is set up to be done >> first, before any entries at all appear in the table? > > We do INIT_SUB, followed by ADD_ENTRY calls for all the routines to be > called via CEEPIPI. Then we do CALL_SUB for any routine using the index > returned by ADD_ENTRY. > > -- > > > This message and any attachments are intended only for the use of the > addressee and may contain information that is privileged and confidential. If > the reader of the message is not the intended recipient or an authorized > representative of the intended recipient, you are hereby notified that any > dissemination of this communication is strictly prohibited. If you have > received this communication in error, please notify us immediately by e-mail > and delete the message and any attachments from your system. > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
