> 
> I'm looking for advice on the use of IVSK / ISKE instructions,

IVSK is a fine righteous thing to play with. ISKE is not. 

> I have this program that loads (SVC 08) a couple of programs.
> The program that load is running key9 , however SVC08 load them
> in key8 with fetch protection...

Contents supervision is only ever going to load the module in fetch
protected storage in the job step key unless the module is reentrant
and comes from an APF authorized library. Them's the rules. So in 
this case, there is no way for you to get what you want playing by 
the rules. That's usually a clue that what you think you want is not
really what you want at all.

> I'm trying to turn off the fetch protect bit with sske

OOOOOOOHHHHHH... Tres bad idea. SSKE is one of those instructions
that are reserved for use by the control program and in any case
it only changes the real storage key. You would just break things
if you ever got that to work.

A key zero and sup state program can use the CHANGKEY macro to 
change the virtual storage key and fetch protection, but the area
has to begin on a page boundary and contain an integral number of
pages. 

Beware that contents uses subpool 251/252 for program loads and
it just getmains as much as it needs for the module, so you have
no control over alignment and number of pages unless you put the
right directives in the bind for the module. You would have to 
get the origin and length of the module by calling CSVQUERY first.

IMO even that is kind of dangerous, but if you have no other 
choice fire away. Its not my dog.

> when I run IVSK and ISKE I get different key. The program 
> thats read the storage is a CICS program. I pass to ISKE the
> real address which I obtain from LRA.

Ignoring for a moment how you manage to issue an LRA from a normal
unauthorized, problem state key 8/9 CICS program, there is no way
to guarantee that the virtual to real mapping is the same between 
the LRA (which should be a LRAG anyway) and the ISKE. You would 
have to page fix the storage first which is a bit on the brutal side.

In addition, ISKE is sensitive to the virtual addressing mode. If
you are in 31 bit mode its only going to look at the 31 bit portion
of the real address, even if there's non-zero data in the high half
of the gpr. This is a place you really should not be treading.

> It makes me wonder if CICS is turning on / off the
> fetch protect bit because I trace with CEDF & I can browse the loaded
> program but can't run the user program.

AFAIK CICS doesn't do anything of the sort. The storage protection 
override control feature of the architecture allows any key 8 program
to access key 8 or key 9 data, but not the reverse. CEDF is in key
8 so no harm no foul. Your application is (apparently) in key 9. Bzzzt.

I'm not sure what you're trying to accomplish. Since you're talking
about supervisor state instructions, you probably have the wherewithall
to get more or less anythign you want. Figuring out what you want is
going to be the hard part.

CC

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to