If you have a specific application that needs an integer with more than 32-bits but fewer than 54-bits you may be able to just use a epicsFloat64. I believe an epicsFloat64 can exactly represent integers up to 53 (or 54) bits.
Mark
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Andrew Johnson
Sent: Tuesday, March 20, 2012 6:15 PM
To: Hinko Kocevar
Cc: [email protected]
Subject: Re: menuFtype for 64 bit integers aka. long long and unsigned long long
Hi Hinko,
On 2012-03-15 Hinko Kocevar wrote:
Are there any plans on adding support for 64-bit types to menuFtype (for
3.14.x branch)?
This will definitely never happen on the 3.14.x branch, and probably not on
the 3.15.x branch either (there should be a 3.15.0 release out this summer).
Are there any workarounds for this issue?
This idea is really horrible but it should work as long as you're very
careful: If you are responsible for the device support and all the CA client
programs and you can do any IOC-based processing that is necessary inside a
subroutine or aSub record then you could pretend to the IOC code that your 64-
bit data types are epicsFloat64 (i.e. double) values and use casts to convert
them back and forth. However you won't be able to use any of the standard
tools to look at the values, and I really don't recommend doing this.
I guess this change would affect basic EPICS type handling code - not
record, driver or device support code.
Adding new data types to EPICS is not easy, even just within the IOC, because
there are function-tables and case statements all over the place. If you also
want to transmit that information over CA then there are even more
complications.
The simplest way to handle 64-bit values is probably to split them into 2x32-
bit values that you pass around in arrays.
HTH,
- Andrew