Operating System - OpenVMS
1827876 Members
1624 Online
109969 Solutions
New Discussion

ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

 
XMAN_1
Advisor

ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

exe_std$probew_dsc:

This function is taking only one parameter in our ALPHA$LIBRARY:SYS$LIB_C.TLB but in the source code it is accepting three parameters i.e,
status = exe_std$probew_dsc ((void *) p2, &bufsiz, &bufadr).

The source code comes from a different vendor and now nobody is there to support, so I have only you guys to ask :)

I am working on OpenVMS V6.2-1H3 and C Compiler is DECC V6.0-001.

One more thing regarding SYS$LIB_C.TBL, is this library comes with the DECC or comes with the OpenVMS operating system?

The error I am getting is as follows: status = exe_std$probew_dsc ((void *) p2, &bufsiz, &bufadr);
.........................^
%CC-E-TOOMANYARGS, In this statement, "EXE_STD$PROBEW_DSC" expects 1 arguments, but 3 are supplied.

%MMS-F-ABORT, CLI returned abort status: %X10B91262.

Urgent help will be greatly appriciated!

Good day!
6 REPLIES 6
Ian Miller.
Honored Contributor

Re: ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

I looked at the V7.3-2 listings CD (I don't have access to V6.2)

exe_std$probew_dsc only needs one parameter.
The declaration is wrong. I note a comment in the source code from 25-jul-1997 about fixing the declaration.

sys$lib_c.tlb is a standard file.

I note that this routine is not documented in the device support manual.
____________________
Purely Personal Opinion
Ian Miller.
Honored Contributor

Re: ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

I found some V6.3 listings. It appears that in V6.2 then this routine does take three parameters and in V7.3-2 it does not.

As this routine is not documented they can change its calling interface.

So for V6.2 the declaration should contain three parameters.
____________________
Purely Personal Opinion
XMAN_1
Advisor

Re: ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

Hi! Ian,

I just found another one. Its exe_std$prober_dsc64:

int exe_std$prober_dsc64 (VOID_PQ dsc_p, UINT64_PQ ret_length, CHAR_PPQ ret_bufadr);

on OpenVMS Alpha V7.2-1 on DEC C V6.0-001

May be it will work, let me try it out and will let you know about it.

Thanks!
Volker Halle
Honored Contributor

Re: ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

XMAN,

only the 64-bit variant exe_std$probew_dsc64 seems to accept 3 parameters.

Are you sure that your SYS$LIB_C.TLB matches your version of OpenVMS ? Is your source code supposed to be compatible with V6.2 ?

You could check the Alpha code in the running system to determine, whether V6.2-1H3 actually seems to handle 3 arguments:

$ ANAL/SYS
SDA> READ/EXEC
SDA> EXA/INS EXE_STD$PROBEW_DSC_C;40

You'll probably have to follow the path taken by the BSR as well...

Volker.
Ian Miller.
Honored Contributor

Re: ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

It appears that exe_std$prober_dsc64 takes one parameter only.

The exe$prober_dsc routine that it calls does return the length and address in registers but they don't appear to be passed back in the exe_std$ form.
____________________
Purely Personal Opinion
XMAN_1
Advisor

Re: ALPHA$LIBRARY:SYS$LIB_C.TLB and exe_std$probew_dsc function

Hello! Everybody,

Many many thanks for your support!

Instead of using 3 parameter call I am just using 1 parameter call:

status = exe_std$probew_dsc ((void *) p2);

Regards,

XMAN