Kirk Wolf wrote:
I believe that the real issue is that the binder api is packaged as a DLL,
and AFAIK you need to run under LE and use LE/"C" linkage conventions to
call it.
Consider writing an RFC for "*z/OS MVS Program Management: Advanced
Facilities" *to clarify whether Metal C is supported with the C/C++ DLL
Binder APIs.
Not to particularly quote Kirk, but just to add to the thread.
We didn't have too much trouble just looking at the documented
interfaces and producing the structures, etc... for Dignus Systems/C
programs
to use the binder interface.
Then, we just wrote a var-args function to invoke the IEWBIND
interface (even works in 64-bit mode.) You don't really need to use
the DLLs, you can just LOAD the IEWBIND module and invoke
the entry point returned from the LOAD with the proper code
number for the function and the proper arguments.
It is _slightly_ klunky, because we didn't need much, so the first
parm to the var-args function is the number of arguments, followed
by the IEWBIND function code, followed by the IEWBIND arguments
for that function... You _could_ get a lot fancier with C wrappers
for all of the functions, etc... which I suppose is what IBM did
in the LE DLL.
The actual IEWBIND interface is just a normal system interface,
no LE required.
For example, the code to start the session with the binder is:
...
val = 0x00004040;
code = (IEWBIND_STARTD << 16 | IEWBIND_VERSION);
call_iewbind(8, &code, &retcode, &rsncode,
&binder_token, fl, el, ol &val);
if(rsncode != 0) {
...
Depending on what interfaces you need to use, there's not a lot
to it once you get everything set-up.
I'm sure something similar in metal-C would work...
- Dave Rivers -
--
[email protected] Work: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN