Walt Farrell wrote:
>I don't think you've proven that SRQEACEE is still what you expect. You've
>shown us SRQERSVA, where you saved a copy of SRQEACEE, and a copy of the ACEE
>address. And SRQERSVA is apparently still good. But you haven't actually shown
>us SRQEACEE (unless it is defined as being at SRQERSVA, which seems unlikely),
>and when you loaded SRQEACEE you got 0 (as shown by what's in R4).
>So it seems like something _has_ stepped on SRQEACEE.
I meant that R4 was *pointing* at zeroes. The contents of R4 == SRQEACEE.
>(It is also not clear where you got the ACEE address from in the first place;
>that is also important, and often done incorrectly in cross-memory code, and
>it would be good to see that code.)
Good question. I'm convinced because I've verified that the ACEE eyecatcher is
visible back in the PC handler when I can "see" the HASN, and here's the code
that gets the ACEE, also from that module:
L R4,PSAAOLD callers ascb
USING ASCB,R4 short term addressability
L R5,ASCBASXB ascb extension
USING ASXB,R5
MVC SRQEACEE,ASXBSENV addr of ACEE in secondary space
ICM R1,15,TCBSENV ACEE this task
BZ *+8 usually there
ST R1,SRQEACEE retain ESM preference
>(And, as another list member pointed out, an ASN is not the same as an ALET,
>so your usage of SRQESASN seems suspect.)
Yeah, that part is clearly wrong; see below, where I reply to Rob.
Rob Scott wrote:
>Your code has :
>LH R1,SRQESASN Get caller's SASN
>SAR R4,R1 Set that in AR4
>Access registers should contain ALET values - not a hex ASID value.
>"ESAR" returns the ASID value (copied from CR3) - it does NOT contain the ALET
>value for the SASN.
That's clearly part of my confusion. Makes sense; seemed too simple. So I'm
sort of going in circles here: I need an ALET, ok...so I can find the STOKEN
from the ASSB and use ALESERV to get the ALET? That's where I started.
Is ASID ==> STOKEN (via LOCASID/ASSBSTKN) ==> ALESERV expected to always work,
modulo permissions (not an issue here, we have EAX authority to all address
spaces)? That's what I thought I was doing.
>You also state that "another module" tries to reference data in the SASN - how
>and where is that module called and what is the cross-memory environment when
>it executes?
It's a lower-level module in the same STC. There's the code that handles the PC
(on the "STC side" of the PC), which creates and queues the request. Later on,
the request block gets pulled off the stack and the RACROUTE is done then. So
by then, we're long past having the same HASN (I finally understand!).
I do feel like I'm making (very slow!) progress, thanks to all the helpful
folks here. I think tomorrow I will try to back up and sort of start over from
the "OK, it works fine for batch" point. Now that I understand a bit more about
what I'm doing, hopefully I'll get past my mistakes.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN