compatibility file for EPICS < 3.14.12

This commit is contained in:
zimoch
2014-02-19 10:02:34 +00:00
parent 40633885c3
commit fbf248832c
2 changed files with 83 additions and 0 deletions
+3
View File
@@ -29,3 +29,6 @@ SOURCES_3.14 += mlock.c
DBDS_3.14 += mlock.dbd
SOURCES_vxWorks += bootNotify.c
HEADERS_3.13 += epicsEndian.h
HEADERS_3.14.8 += epicsEndian.h
+80
View File
@@ -0,0 +1,80 @@
#ifndef INC_epicsEndian_H
#define INC_epicsEndian_H
#if defined (vxWorks)
#include <types/vxArch.h>
#if _BYTE_ORDER == _LITTLE_ENDIAN
# define EPICS_BYTE_ORDER EPICS_ENDIAN_LITTLE
#elif _BYTE_ORDER == _BIG_ENDIAN
# define EPICS_BYTE_ORDER EPICS_ENDIAN_BIG
#else
# error EPICS hasnt been ported to _BYTE_ORDER specified by vxWorks <types/vxArch.h>
#endif
/* for now, assume that vxWorks doesnt run on weird arch like ARM NWFP */
#define EPICS_FLOAT_WORD_ORDER EPICS_BYTE_ORDER
#elif defined (_WIN32)
/* for now, assume that win32 runs only on generic little endian */
#define EPICS_BYTE_ORDER EPICS_ENDIAN_LITTLE
#define EPICS_FLOAT_WORD_ORDER EPICS_BYTE_ORDER
#else
/* if compilation fails because this wasnt found then you may need to define an OS
specific osdWireConfig.h */
#include <sys/param.h>
#ifdef __BYTE_ORDER
# if __BYTE_ORDER == __LITTLE_ENDIAN
# define EPICS_BYTE_ORDER EPICS_ENDIAN_LITTLE
# elif __BYTE_ORDER == __BIG_ENDIAN
# define EPICS_BYTE_ORDER EPICS_ENDIAN_BIG
# else
# error EPICS hasnt been ported to run on the <sys/param.h> specified __BYTE_ORDER
# endif
#else
# ifdef BYTE_ORDER
# if BYTE_ORDER == LITTLE_ENDIAN
# define EPICS_BYTE_ORDER EPICS_ENDIAN_LITTLE
# elif BYTE_ORDER == BIG_ENDIAN
# define EPICS_BYTE_ORDER EPICS_ENDIAN_BIG
# else
# error EPICS hasnt been ported to run on the <sys/param.h> specified BYTE_ORDER
# endif
# else
# error <sys/param.h> doesnt specify __BYTE_ORDER or BYTE_ORDER - is an OS specific osdWireConfig.h needed?
# endif
#endif
#ifdef __FLOAT_WORD_ORDER
# if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN
# define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_LITTLE
# elif __FLOAT_WORD_ORDER == __BIG_ENDIAN
# define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_BIG
# else
# error EPICS hasnt been ported to <sys/param.h> specified __FLOAT_WORD_ORDER
# endif
#else
# ifdef FLOAT_WORD_ORDER
# if FLOAT_WORD_ORDER == LITTLE_ENDIAN
# define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_LITTLE
# elif FLOAT_WORD_ORDER == BIG_ENDIAN
# define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_BIG
# else
# error EPICS hasnt been ported to <sys/param.h> specified FLOAT_WORD_ORDER
# endif
# else
/* assume that if neither __FLOAT_WORD_ORDER nor FLOAT_WORD_ORDER are
defined then weird fp ordered archs like arm nwfp aren't supported */
# define EPICS_FLOAT_WORD_ORDER EPICS_BYTE_ORDER
# endif
#endif
#endif
#endif /* INC_epicsEndian_H */