On some work we are doing we don't want to have to link IGGCSI00 (Catalog 
Services Interface) into our C program. We have an assembler routine that will 
load the routine and pass back  the address to the caller and I have verified 
that the function pointer now points to the requested module. But when I call 
it, I get a S0c4 which I'm pretty sure because the parameter list is not in OS 
format, its C based. 

Now my dilemma is to specify that the calling convention for this function 
pointer is OS and not C. 

I can not figure out how to code the #pragma linkage(?????, OS). 

This is the definition for the function pointer.

int   (*pIggCsi00)(PARM1, PARM2, PARM3);                  

Here is the call to do the load. 

int fnLoadModule("IGGCSI00", (void(**)()) &pIggCsi00));

On return from the load routine pIggCsi00 definitely points to IGGCSI00. 

The call to the function is: 

iReturnCode = pIggCsi00(PARM1, PARM2, PARM3);   

I'm stumped.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to