Hello Walt,
It does in fact work. I have resolved the issue I initially had, there was no
discrepancy between the two environments I was running it in. I had not noticed
that my test program was started on another LPAR in the sysplex, and as a
result it's quite impossible for the program, which ran on one of the other
LPARs, to find and read the address space I was looking for. It just so
happened that the ASID that the test program holding the piece of memory to
read had the same ASID on its LPAR as my TSO user had on the other LPAR. Hence
it was working, but spitting out the exact same output...
I have ran it in TSO, just EXECing the REXX routine, as well as batch IKJEFT01
(was easier to separate and manage the dumps then).
The assembled routine's program module is in an APF authorized library. I added
said routine to the AUTHTSF and AUTHPGM lists of our active IKJTSOxx parmlib
member to get rid of the 047 abends.
It is called from REXX as follows;
"CALL 'SOME.APF.AUTHORIZ.LIBRARY(XMSLOOK)'"
I must say it did sort of surprise me as well that it ran in TSO, considering
that you lose APF authorized priviliges as soon as a non APF authorized library
is in the concatenation...
Alas it will never do what I want it to, as we both most likely know, this type
of cross memory access is restricted to memory that is paged in. I knew this
beforehand, and I was fairly certain that the address space I eventually wanted
to read was nonswappable. This turns out to be (partially) wrong. Parts are
kept in real storage permanently, but the parts that I need not so much.
I might give it another go with access registers or a PC routine in the future.
Regards,
-Jan
-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf
Of Walt Farrell
Sent: dinsdag 17 maart 2015 4:12
To: [email protected]
Subject: Re: Cross Memory Services with AXSET and SSAR.
On Mon, 16 Mar 2015 18:30:19 +0000, Cannaerts, Jan <[email protected]>
wrote:
>As for my problem;
>
>I have made a small test program that holds a piece of storage paged in
>memory, it spits out the virtual address to that piece of memory on sysprint
>so that I can easily retrieve it. Calling the assembler routine to peek inside
>that address space from REXX on our test LPAR, works flawlessly. I plug in the
>ASID, the virtual address and the length (main part of my customization
>efforts), and it spits the contents back out to REXX. I'm very happy with this.
>
I'm very surprised that would work at all, as code within REXX execs does not
run authorized, and you need to be authorized to do the MODESET and the other
instructions you've mentioned. How are you invoking that routine from your REXX
exec? Where does the REXX exec run (TSO session, batch job under IKJEFT01, or ?)
--
Walt
----------------------------------------------------------------------
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