On Mon, 4 Nov 2024 21:26:20 +0000 Richard Zierdt <richard.zie...@freschesolutions.com> wrote:
:>PC routine definition problem. :>The ETCON macro has a parameter ELXLIST defined as an "area that contains extended linkage index (LX) values" but "extended linkage index" is not defined. :>It is not found in the Extended Addressability Guide or in Authorized Assembler Services Guide (or the unauthorized version). The extended linkage index has a related sequence number so that when the LX is reused it will not match the previous use. Sort of like using an STOKEN instead of an ASID, where the ASID can be reused but the STOKEN will not. :>Address space A produces and defines a PC routine that is successfully called by address space A using the PC instruction. However, any other address space fails with a S0C4 when the PC is similarly called. :>The goal is to define a PC routine in address space A capable of being invoked by any other address space. :>Address space A creates a Name/Token pair to pass the LXINDEX of the PC to address space B. :>That communication works fine; the LX value is accurate but the index seems to only work with address space A. It's as if something is missing, and it probably is. :>Summary of code in A that creates the LX (not all parameters shown): :> LXRES SYSTEM=YES, :> ETDEF TYPE=SET,HEADER=ETDEFS, :> ETDEF TYPE=SET,ETEADR=ETDEF1,ROUTINE=(2),STATE=SUPERVISOR,SSWITCH=NO, :> ETCRE ENTRIES=ETDEFS :> ETCON TKLIST=ETE,LXLIST=LXL, :>All macros return R15=0. SSWITCH=NO ? :>What's interesting is this PSW in address space B when it fails: :> PSW AT TIME OF ERROR 078C0000 A0105000 ILC 2 INTC 11 A :>The PSW address A0105000 is the same address as the PC routine in address space A, but the failure is in address space B. Address A0105000 in B points to x'00002010 53600900' etc. A S0C1 should have occurred given that the storage starts with hex zeros. Exactly. SSWITCH=NO means that the routine is addressable by all callers in their address space. No need to switch to the controllers address space. :>Address 20105000 in addeess space A points to x' A7F40018' (Jump instruction). :>Does "extended linkage index" have anything to do with this situation? No. The ELX means you need to load the sequence number into the top half of R15. -- Binyamin Dissen <bdis...@dissensoftware.com> http://www.dissensoftware.com Director, Dissen Software, Bar & Grill - Israel ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN