EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: new osiWireFormat.h and osdWireFormat.h
From: "Jeff Hill" <[email protected]>
To: "'EPICS Core Talk'" <[email protected]>
Cc: "Stephanie Allison" <[email protected]>, "'Janet Anderson'" <[email protected]>, "'Denison, PN \(Peter\)'" <[email protected]>
Date: Thu, 30 Nov 2006 17:58:49 -0700
All,

I committed a reorganized osiWireFormat.h and two new osdWireFormat.h files
today. This revision makes the architecture specific file much smaller and
easier to maintain. I also committed a VMS version of osdWireFormat.h but
don't have any easy way to test it here as the DEC C++ compiler isn't
installed.

To properly see the impact of these changes you will probably need to
execute a "make uninstall" before building the revised version (the location
of osiWireFormat.h moved from base/include/<os> to base/include).

src/libCom/osi/osiWireFormat.h (generic interfaces)
src/libCom/osi/os/default/osiWireFormat.h (works with most architectures)
src/libCom/osi/os/VMS/osiWireFormat.h (makes VAX floating point work)

There is also still the following code block in the
os/default/osdWireFormat.h file. Perhaps one of EPICS_BIG_ENDIAN,
EPICS_LITTLE_ENDIAN, or in rare situations both EPICS_LITTLE_ENDIAN and
EPICS_32107654_FP_ENDIAN (for net winder arm) should be defined by the
configuration files so that source code changes are not required to support
a new processor? The only negative I see with that idea is some minimal
amount of additional clutter in the compile command lines. Janet: what do
you think?

//
// Here are the definitions for architecture dependent byte ordering 
// and floating point format.
//
// Perhaps the definition of EPICS_BIG_ENDIAN, EPICS_LITTLE_ENDIAN,
// and EPICS_32107654_FP_ENDIAN should be left to the build system
// so that this file need not be modified when adding support for a
// new architecture?
//
#if defined (_M_IX86) || defined (_X86_) || defined (__i386__) || defined
(_X86_64_) || defined (_M_AMD64) 
#	define EPICS_LITTLE_ENDIAN
#elif ( defined (__ALPHA) || defined (__alpha) ) 
#	define EPICS_LITTLE_ENDIAN
#elif defined (__arm__)
#   define EPICS_LITTLE_ENDIAN 
#else
#	define EPICS_BIG_ENDIAN
#endif

// 
// The ARM supports two different floating point architectures, the
// original and a more recent "vector" format. The original FPU is
// emulated by the Netwinder library and, in little endian mode, has
// the two words in the opposite order to that which would otherwise
// be expected! The vector format is identical to IEEE. 
//
#if defined (_ARM_NWFP_)
#   define EPICS_32107654_FP_ENDIAN
#endif

Jeff
__________________________________________________________
Jeffrey O. Hill               Mail         [email protected]
LANL MS H820                  Voice        505 665 1831
Los Alamos NM 87545 USA       Fax          505 665 5107


Attachment: osdWireFormat.h
Description: Binary data

Attachment: osdWireFormat.h
Description: Binary data


Navigate by Date:
Prev: Re: Next R3.14.9 version: -pre2 or -RC1? Andrew Johnson
Next: Re: help of epics on freebsd Artem Kazakov
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Next R3.14.9 version: -pre2 or -RC1? Ernest L. Williams Jr.
Next: Re: help of epics on freebsd Artem Kazakov
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·