All this agita over invoking a straightforward system service routine like IGGCSI00 argues strongly for an IBM-supplied and IBM supported "thunk" or "glue" subroutine to enable such services to be used from AMODE64 programs.
Or even for an alternate AMODE64 environment from XPLINK, which frankly stinks for applications written in any language except C/C++, and maybe even for C/C++ too. The restrictions and caveats of XPLINK are far too numerous to make it even close to acceptable as a development-friendly environment. There is no excuse for any standard AMODE31 service routine to be unavailable from the AMODE64 environment. Something needs to exist and be supported by IBM to dynamically call AMODE31 service routines easily and transparently (and with minimal performance impact) from AMODE64 programs. I for one don't expect IBM to create a unique version of IGGCSI00 callable from AMODE64 programs, or for them to do that for any other existing AMODE31 service routine. That effort, it seems to me, would be a waste of IBM's resources. Peter -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Tom Marchant Sent: Thursday, December 20, 2018 11:13 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: 64-bit C code fetching IGGCSI00 On Thu, 20 Dec 2018 10:17:12 -0500, Pierre Fichaud wrote: >You can get around stack processing in 31-bit mode by using #pragma >linkage(fred,OS) where fred is a non-LE module. I've done this often. I haven't used #pragma linkage(fred,OS), but I have used extern "OS_NOSTACK" {int fred(void);} in a 31-bit C program as well as in a 64-bit C program. I assume you can use the #pragma as well. But the fact remains that C must provide a save area to fred when it is called. As far as I know, that save area comes from the stack, and for XPLINK-64, that stack is above the bar. Perhaps the reason fetch will not allow you to load an AMODE(31) program is to prevent you from calling it, since an AMODE(31) program will fail as soon as it used the low 31 bits of the save area address to save its caller's registers. -- This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN