The Question is:
I am new to open vms, and I am now involved in
migrating applications from vax/vms to open
vms on alpha 7.1. I have all the source code
and I have been successfull in recomiling and
linking all the applications which r written
in fortran, pascal and c. These applications
uses the same addresses (i.e the start address
and the end address) in the inadr arguments of
the $crmpsc and the SEC$M_EXPREG is not set.
while running the application gives a runtime
error invalid arguments. after setting the
sec$M_EXPREG flag the error goes off , but
mapping is not taking place. the other process
is not able to fetch the record placed by this
process in the global section. The manual says
the end address of the inadr argument should
be 1 less than the end os the cpu specific
page boundary.this application is written in
pascal. I am not able to figure out or
understand how to set the inadr aligned on
a cpu specific page boundary and the inadr
with the end of the cpu-specific page.the
$getsyi for my system returned 8192. I seem to
be badly struct with this and I would
apprecite a lot if this can be illustrated
with a pascal example.
The Answer is :
The OpenVMS Wizard would first recommend reviewing for the errors
discussed in topic (1661), and -- if this is memory shared among
multiple processes -- topic (2681).
The easiest approach is to use position independence and particularly
the SEC$M_EXPREG/SEC$V_EXPREG option setting, and entirely avoid
specifying the range of virtual memory to map the section into.
A C example of shared memory is available at the main page of the
Ask The Wizard area.
Also please see existing discussions of $crmpsc including topics
(4487), (4051), (3791), (3635), (3365), (2486), (2637), (2181),
(860), and others.
Also seriously consider using RMS and global buffers, as this can
resolve a variety of synchronization problems, and can also operate
(correctly) across nodes operating in an OpenVMS Cluster configuration.
Also please review the application migration documentation materials
in (the archived section of) the OpenVMS documentation website,
as that documentation also covers correctly handling the differences
in the memory page sizes.