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
