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

Reply via email to