Operating System - OpenVMS
1748027 Members
4976 Online
108757 Solutions
New Discussion юеВ

Re: RMS Support of 64-bit

 
SOLVED
Go to solution

RMS Support of 64-bit

I have a default file name stored in a 64-bit address. How do I get the 64-bit address in fab$l_dna? I am using C++ and compiling with cxx/pointer_size=64
11 REPLIES 11
Dean McGorrill
Valued Contributor

Re: RMS Support of 64-bit

hi Stephen,
we sign extended addresses that needed to be 64 bits, with a macro that I
don't have at my fingertips. what code region, ie user system? curious as to
the application and an example address Dean

Re: RMS Support of 64-bit

It is in user space. The address is 10A000010. The size of fab$l_dna is 32 bits so the address 10A000010 (a 64-bit address) will not fit into fab$l_dna.
John Gillings
Honored Contributor
Solution

Re: RMS Support of 64-bit

Stephen,

At the moment (at least up to V8.3) I think RMS support of 64 bits is limited to the data being read and written. See $RAB64 and $RAB64_STORE.

I believe structures referenced from the FAB are limited to 32 bit space, so you'll need to copy your default file name into a buffer in P0 space (or, depending on volatility, maybe on the stack) so the FAB can see it.
A crucible of informative mistakes
John Gillings
Honored Contributor

Re: RMS Support of 64-bit

 
A crucible of informative mistakes
John Gillings
Honored Contributor

Re: RMS Support of 64-bit

Just occurred to me... an alternate would be to double map the VA containing your default file name in P2 space so there was a P0 space window. That would give your 64 bit address a 32 bit "alias" which you could use in the FAB. But since we're only talking about a default file name, that would be somewhat of a thermonuclear fly swatter.
A crucible of informative mistakes
John Gillings
Honored Contributor

Re: RMS Support of 64-bit

ITRC playing up this morning, hence blank response
A crucible of informative mistakes
Hein van den Heuvel
Honored Contributor

Re: RMS Support of 64-bit

Right, RMS only promoted user data buffers and sizes to 64 bit through the RAB64.
The pointers in FAB, NAM and XABs are 32 bit.

The place where this is possibly most clearly documented is Chapter 11 in the "OpenVMS Programming Concepts Manual"
Specifically:
http://h71000.www7.hp.com/doc/731FINAL/5841/5841pro_035.html#rms_chapter

Hein.

Re: RMS Support of 64-bit

John Gillings - I am giving you some extra points for the laugh I got from your "thermonuclear fly swatter" response.
Dean McGorrill
Valued Contributor

Re: RMS Support of 64-bit

Stephen
ya, I did glaze over that fab with
my response;; curious as to the application,
why the use.

John, itrc has been acting up for me last 2
days. Dean