2002 2003 2004 2005 <2006> 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 2002 2003 2004 2005 <2006> 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== 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