]> rtime.felk.cvut.cz Git - orte.git/blob - orte/include/rtps_endian.h
JORTE: ignore 'int-to-pointer' and 'pointer-to-int' compiler warnings
[orte.git] / orte / include / rtps_endian.h
1 #ifndef RTPS_ENDIAN_H
2 #define RTPS_ENDIAN_H 1
3
4 #define FLAG_BIG_ENDIAN 0
5 #define FLAG_LITTLE_ENDIAN 1
6
7 #if WORDS_BIGENDIAN
8
9 # define FLAG_ENDIANNESS FLAG_BIG_ENDIAN
10 # define conversion_needed(to_endianness) ((to_endianness)!=FLAG_BIG_ENDIAN)
11
12 #else
13
14 # define FLAG_ENDIANNESS FLAG_LITTLE_ENDIAN
15 # define conversion_needed(to_endianness) ((to_endianness)!=FLAG_LITTLE_ENDIAN)
16
17 #endif
18
19 static inline 
20 void rtps_byteswap(uint8_t *outdata,
21                           const uint8_t *data,
22                           uint32_t datalen)
23 {
24   const uint8_t *source_ptr = data;
25   uint8_t *dest_ptr = outdata + datalen - 1;
26   while(dest_ptr >= outdata)
27     *dest_ptr-- = *source_ptr++;
28 }
29
30
31 #endif /* FLAG_ENDIANNESS */