Sam,

Thanks for the confirmation, that's what I just figured out from re-reading the 
FM.

Peter

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Sam Siegel
Sent: Friday, March 17, 2017 11:47 AM
To: [email protected]
Subject: Re: Need help understanding use of CEEPIPI from non-LE assembler main 
programs

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

Reply via email to