[Info-vax] VMS process communication
Ian Miller
gxys at uk2.net
Wed Mar 22 07:18:07 EDT 2023
On Tuesday, March 21, 2023 at 11:34:04 AM UTC, Arne Vajhøj wrote:
> On 3/20/2023 5:37 AM, Andreas Gruhl wrote:
> > Arne Vajhøj schrieb am Samstag, 18. März 2023 um 01:26:39 UTC+1:
> >> On 3/16/2023 5:05 AM, Andreas Gruhl wrote:
> >>> Arne Vajhøj schrieb am Donnerstag, 16. März 2023 um 01:47:31 UTC+1:
> >>>> On 3/10/2023 4:01 PM, Arne Vajhøj wrote:
> >>>>> Pre-release for comments:
> >>>>>
> >>>>> https://www.vajhoej.dk/arne/articles/vms64.html
> >>>>
> >>>> Updated to version 1.0 based on comments.
> >>> Small correction: PASCAL/USAGE=64BIT_TO_DESCR does NOT change the
> >>> compiler's treatment of pointers. Interpreting pointers as unsigned
> >>> values has to be provided by the programmer. The qualifier only
> >>> allows for P2 structures to be used as actual routine parameters via
> >>> descriptor, which otherwise would be flagged as a compile time
> >>> error.
> >> So it does not change the treatment of pointers.
> >>
> >> It disables a compiler check.
> >>
> >> Like allowing this to compile:
> >>
> >> procedure whatever(...; %STDESCR somearg; ...); external;
> >> ...
> >> (* z is in lower 2 GB of P2 space *)
> >> ...
> >> whatever(..., z, ...);
> >>
> >> ?
> > That's correct.
>
> I have updated.
>
> Arne
On VMS E9.2-1 x86-64 all code by default is put into P2 by the linker but you can put /SEGMENT=CODE=P0 to stop that. I suspect this is going to cause some issues when porting. For kernel mode code the recommendation is to change from locking specific parts of the code into the working set to locking the whole image as this works on I64 and x86 VMS by calling LIB$LOCK_IMAGE.
More information about the Info-vax
mailing list