Subject: [FreeVMS] Re: STR$
roart@nvg.ntnu.no
Date: Wed Nov 07 2001 - 13:15:58 CET
On Wed, Nov 07, 2001 at 12:00:00PM +0100, BERTRAND Joël wrote:
> roart@nvg.ntnu.no wrote:
>
> > On Wed, Nov 07, 2001 at 09:52:50AM +0100, BERTRAND Joël wrote:
> >
> >> I have downloaded the str.tar-gz file. It seems to be corrupt...
> >
> > It seemed ok anyway; it compiled.
>
> My gunzip returns an error.
I used tar xzf
> >>I have extracted descrip.h, and this file is written from the VAX-11
> >>procedure calling. All data lengths use unsigned shorts int. I tought
> >>that the lengths of any datas use integer*4 (on VAX and alpha). Can
> >>someone confirm ?
Further infomation is said to be in "Introduction to VMS System Routines"
manual, but it seems to be discontinued.
The information is in OpenVMS Programming Interfaces: Calling a System Routine
and OpenVMS Calling Standard. Somewhere.
These manuals describe argument passing mechanisms, including descriptors.
Maybe it is as simple as that.
> > (Will be talking 32-bit "default")
> > Remember descriptors are passed as pointers, that is 32-bit.
> > If contents of descriptors are passed, it will be with the 16-bit length
> > in a 32-bit register (no problem there).
>
> Yes, but if the descriptor uses a 32-bit lengths, why are these
> lengths declared with unsigned short (16-bits length) ?
I have checked a bit.
Many descriptors have the length of a quadword (8 bytes), and MOVQ ends up
moving
unsigned short dsc$w_length;
unsigned char dsc$b_dtype;
unsigned char dsc$b_class;
into the first register, and moving
char *dsc$a_pointer; intro the next register.
-Roar Thronæs
-- Liste de diffusion FreeVMS Pour se désinscrire : mailto:freevms-request@ml.free.fr?subject=unsubscribe
This archive was generated by hypermail 2b25 : Wed Nov 07 2001 - 13:16:23 CET