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

Reply via email to