EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Problem with creating an array of Long with aSub record
From: Andrew Johnson <[email protected]>
To: Mark Rivers <[email protected]>, "[email protected]" <[email protected]>
Date: Fri, 15 Aug 2014 12:19:27 -0500
On 08/15/2014 10:34 AM, Mark Rivers wrote:
> But I think there is a limitation with EPICS 3.14 because there is no
> architecture-independent definition of 64-bit integer data types.
> The 64-bit types epicsInt64 and epicsUIn64 are only defined if
> __STDC_VERSION__ >= 199901L.  There are a number of architectures
> that support 64-bit integers (e.g. Windows) but don't define the
> EPICS types because they fail the STDC_VERSION test.

The 3.15.1 release of Base, due in December, will provide the 64-bit
integer types for all architectures. We didn't want to add them to 3.14
because that is still supposed to build on VxWorks 5.4.2 which does not
provide complete support for long long integers.

[Technical aside: The __STDC_VERSION__ >= 199901L test is wrong anyway;
it can only succeed in C code since the C++ pre-compiler never defines
that macro. Thus C++ code will never see the epics[U]Int64 type
definitions in 3.14, and I suspect there are other issues with those C99
definitions which I will probably remove in 3.15.]

The Base 3.15.1 release will require VxWorks 5.5.2 or later, which do
support 64-bit integer operations. However even the latest VxWorks
6.9.4.1 release omits the strtoll() and strtoull() routines, so we may
provide them ourselves through epicsStdlib.h.

I have been working on adding DBF_INT64 and DBF_UINT64 field types to
the IOC, but this work could break existing device support code and will
not appear until Base 3.16 at the earliest.

- Andrew
-- 
Advertising may be described as the science of arresting the human
intelligence long enough to get money from it. -- Stephen Leacock

References:
Problem with creating an array of Long with aSub record David Michel
Fwd: Problem with creating an array of Long with aSub record David Michel
RE: Problem with creating an array of Long with aSub record michael.abbott
RE: Problem with creating an array of Long with aSub record Mark Rivers
Re: Problem with creating an array of Long with aSub record Andrew Johnson
RE: Problem with creating an array of Long with aSub record Mark Rivers

Navigate by Date:
Prev: RE: Windows installer error - bcastEnvChange.exe Anderson, Janet B.
Next: Areadetector IOC for Pilatus Specht, Eliot D.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Problem with creating an array of Long with aSub record Mark Rivers
Next: Re: Problem with creating an array of Long with aSub record Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·