I relocate all non-PC code into 31 bit storage. To the code being called, it appears as if it's RMODE31. I do call PC routines above the bar, but it would be trivial to relocate them as well if it became necessary. I trust the Z/Architecture to handle the PC linkage.
-----Original Message----- From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf Of Walt Farrell Sent: Thursday, July 11, 2013 9:06 AM To: [email protected] Subject: Re: Dynamic LPA Services On Thu, 11 Jul 2013 09:03:33 -0400, John Gilmore <[email protected]> wrote: >As I read Kenneth Wilkerson's post he is arranging things so that an >RMODE(64) routine that needs system services unavailable to it as such >arranges to have a different, associated RMODE(31) routine request them >and make their results available to it. As I read it, that's not what Kenneth said, John. He said that he has an RMODE(31) stub that he uses as the address -of- the PC routine, and the stub then invokes the actual PC code that is RMODE(64). He specifically talked about using the system services from his RMODE(64) code, and if that's true then it's unsupported, as Peter mentioned. > >This scheme [or the alternative one in which an RMODE(31) routine hands >off functions to, or accesses data in, an RMODE(64) one] is entirely >viable and much used in IBM code. Are you perhaps confusing AMODE and RMODE, John? As far as I know, IBM does not make much use of RMODE(64) code. I believe the capability of RMODE(64) code was provided for DB2's use, and I suspect only DB2 is using it for much (though I have no real way of knowing, any more.) It is true that RMODE(31) routines are used often to handle AMODE(64) callers, of course. >In my own programming I >now often use AMODE(64) code in RMODE(31) routines to facilitate just >such exchanges. Right: AMODE(64) in RMODE(31) is just fine. But RMODE(64) code is rare, I believe, and has the restrictions that Peter mentioned. RMODE(64) support for code is documented to be for code that does not call system services. While system services may be documented to allow AMODE(64) callers, that does not mean that they will properly handle RMODE(64) callers. I presume IBM knows (or suspects) that some issues exist if RMODE(64) code were to call system services or they would not have made that restriction. But I suppose it is also possible that they are simply being cautious and avoiding a heavy testing and warranty expense by stating that restriction. -- 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
