Hello everyone,


Because I know less than most here have forgotten by now, I haven't posted yet. 
Usually I know where I have to start looking, and what manuals I have to scour, 
but this has got me quite stumped.


I have stolen an assembler routine to peek in to other address spaces, and 
modified it to fit my needs. Some of you might know it, it's on the CBT Tape as 
XMSLOOK.

For those of you who want to know why I would need such a routine, I have no 
problems divulging if people really want to know.


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.


Then I migrated it to our production LPAR to put it to its originally intended 
use, but for some reason it doesn't manage to switch address spaces and spits 
out the memory of the home/primary address space instead. Obviously there is 
something I'm completely overlooking, most likely a security setting. I want to 
say it compiles the same on both LPARS, around the AS-switching part anyways. 
I've searched around, digging up the documentation for the MODESET and AXSET 
macros. I've gone through the execution, and the only thing that I (don't) see 
happening, is that GPR 0 is not being set on the production LPAR as it is on 
the test LPAR after the MODESET macro. I currently don't have access to our 
system, I will again in ~12 hours, when the US is asleep. Feel free to ask 
questions, any and all that I can readily answer, I will answer. For any 
listings / dumps / settings the timeframe has been mentioned...


The edited assembler routine's code can be found here; 
http://pastebin.com/JduqS6T6


You'll have to excuse me for the most likely less than optimal code, I am new 
to assembler. With that being said, I am probably biting off (way) more than I 
can chew. But this is not something that will be used to sustain a production 
environment, it won't get called millions of times every day. It's just to 
create a tool to make my life easier, while at the same time not being so 
important that I depend on it completely. And I get to learn some assembler in 
the process.


I would've looked at access registers, if this didn't work so well on our test 
LPAR, maybe I should switch anyways...




Greetings,

Jan

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to