mirror of
https://github.com/fluencelabs/redis
synced 2025-05-02 22:12:15 +00:00
30 lines
732 B
C
30 lines
732 B
C
#ifndef __ENDIAN_H
|
|
#define __ENDIAN_H
|
|
|
|
void memrev16(void *p);
|
|
void memrev32(void *p);
|
|
void memrev64(void *p);
|
|
uint16_t intrev16(uint16_t v);
|
|
uint32_t intrev32(uint32_t v);
|
|
uint64_t intrev64(uint64_t v);
|
|
|
|
/* variants of the function doing the actual convertion only if the target
|
|
* host is big endian */
|
|
#if (BYTE_ORDER == LITTLE_ENDIAN)
|
|
#define memrev16ifbe(p)
|
|
#define memrev32ifbe(p)
|
|
#define memrev64ifbe(p)
|
|
#define intrev16ifbe(v) (v)
|
|
#define intrev32ifbe(v) (v)
|
|
#define intrev64ifbe(v) (v)
|
|
#else
|
|
#define memrev16ifbe(p) memrev16(p)
|
|
#define memrev32ifbe(p) memrev32(p)
|
|
#define memrev64ifbe(p) memrev64(p)
|
|
#define intrev16ifbe(v) intrev16(v)
|
|
#define intrev32ifbe(v) intrev32(v)
|
|
#define intrev64ifbe(v) intrev64(v)
|
|
#endif
|
|
|
|
#endif
|