devLib2  2.11
osdWireConfig.h
Go to the documentation of this file.
1 /*
2  * Default version of osdWireConfig.h that might
3  * work on UNIX like systems that define <sys/param.h>
4  *
5  * Author Jeffrey O. Hill
6  * johill@lanl.gov
7  */
8 
9 #ifndef osdWireConfig_h
10 #define osdWireConfig_h
11 
12 /* This file must be usable from both C and C++ */
13 
14 /* if compilation fails because this wasnt found then you may need to define an OS
15  specific osdWireConfig.h */
16 #include <sys/param.h>
17 
18 #ifdef __BYTE_ORDER
19 # if __BYTE_ORDER == __LITTLE_ENDIAN
20 # define EPICS_BYTE_ORDER EPICS_ENDIAN_LITTLE
21 # elif __BYTE_ORDER == __BIG_ENDIAN
22 # define EPICS_BYTE_ORDER EPICS_ENDIAN_BIG
23 # else
24 # error EPICS hasnt been ported to run on the <sys/param.h> specified __BYTE_ORDER
25 # endif
26 #else
27 # ifdef BYTE_ORDER
28 # if BYTE_ORDER == LITTLE_ENDIAN
29 # define EPICS_BYTE_ORDER EPICS_ENDIAN_LITTLE
30 # elif BYTE_ORDER == BIG_ENDIAN
31 # define EPICS_BYTE_ORDER EPICS_ENDIAN_BIG
32 # else
33 # error EPICS hasnt been ported to run on the <sys/param.h> specified BYTE_ORDER
34 # endif
35 # else
36 # error <sys/param.h> doesnt specify __BYTE_ORDER or BYTE_ORDER - is an OS specific osdWireConfig.h needed?
37 # endif
38 #endif
39 
40 #ifdef __FLOAT_WORD_ORDER
41 # if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN
42 # define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_LITTLE
43 # elif __FLOAT_WORD_ORDER == __BIG_ENDIAN
44 # define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_BIG
45 # else
46 # error EPICS hasnt been ported to <sys/param.h> specified __FLOAT_WORD_ORDER
47 # endif
48 #else
49 # ifdef FLOAT_WORD_ORDER
50 # if FLOAT_WORD_ORDER == LITTLE_ENDIAN
51 # define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_LITTLE
52 # elif FLOAT_WORD_ORDER == BIG_ENDIAN
53 # define EPICS_FLOAT_WORD_ORDER EPICS_ENDIAN_BIG
54 # else
55 # error EPICS hasnt been ported to <sys/param.h> specified FLOAT_WORD_ORDER
56 # endif
57 # else
58  /* assume that if neither __FLOAT_WORD_ORDER nor FLOAT_WORD_ORDER are
59  defined then weird fp ordered archs like arm nwfp aren't supported */
60 # define EPICS_FLOAT_WORD_ORDER EPICS_BYTE_ORDER
61 # endif
62 #endif
63 
64 #endif /* ifdef osdWireConfig_h */