[mod_accesslog] %{ratio}n logs compression ratio (fixes #2133)
[lighttpd.git] / src / sys-endian.h
blob7fa28eeadd3af8d2f044b4c6a0f502e3874f716b
1 #ifndef LI_SYS_ENDIAN_H
2 #define LI_SYS_ENDIAN_H
3 #include "first.h"
6 #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
9 /* copied from of plasma_endian.h
10 * https://github.com/gstrauss/plasma/blob/master/plasma_endian.h
11 * (used with permission from the author (gstrauss)) */
12 #if defined(__BYTE_ORDER__) \
13 && ( defined(__ORDER_LITTLE_ENDIAN__) \
14 || defined(__ORDER_BIG_ENDIAN__) \
15 || defined(__ORDER_PDP_ENDIAN__) )
16 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
17 #define __LITTLE_ENDIAN__ 1
18 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
19 #define __BIG_ENDIAN__ 1
20 #endif
21 #elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)
22 #define __LITTLE_ENDIAN__ 1
23 #elif !defined(_LITTLE_ENDIAN) && defined(_BIG_ENDIAN)
24 #define __BIG_ENDIAN__ 1
25 #elif defined(_WIN32) /* little endian on all current MS-supported platforms */
26 #define __LITTLE_ENDIAN__ 1
27 #elif defined(__GLIBC__) || defined(__linux__)
28 #include <endian.h>
29 #if __BYTE_ORDER == __LITTLE_ENDIAN
30 #define __LITTLE_ENDIAN__ 1
31 #elif __BYTE_ORDER == __BIG_ENDIAN
32 #define __BIG_ENDIAN__ 1
33 #endif
34 #elif defined(__sun__) && defined(__SVR4)
35 #include <sys/isa_defs.h>
36 #if defined(_LITTLE_ENDIAN)
37 #define __LITTLE_ENDIAN__ 1
38 #elif defined(_BIG_ENDIAN)
39 #define __BIG_ENDIAN__ 1
40 #endif
41 #elif defined(_AIX)
42 #include <sys/machine.h>
43 #if BYTE_ORDER == LITTLE_ENDIAN
44 #define __LITTLE_ENDIAN__ 1
45 #elif BYTE_ORDER == BIG_ENDIAN
46 #define __BIG_ENDIAN__ 1
47 #endif
48 #elif defined(__APPLE__) && defined(__MACH__)
49 #include <machine/endian.h>
50 #if BYTE_ORDER == LITTLE_ENDIAN
51 #define __LITTLE_ENDIAN__ 1
52 #elif BYTE_ORDER == BIG_ENDIAN
53 #define __BIG_ENDIAN__ 1
54 #endif
55 #elif defined(__FreeBSD__) || defined(__NetBSD__) \
56 || defined(__OpenBSD__) || defined(__DragonFly__)
57 #include <machine/endian.h>
58 #if _BYTE_ORDER == _LITTLE_ENDIAN
59 #define __LITTLE_ENDIAN__ 1
60 #elif _BYTE_ORDER == _BIG_ENDIAN
61 #define __BIG_ENDIAN__ 1
62 #endif
63 #else /*(else assume little endian)*/
64 #define __LITTLE_ENDIAN__ 1
65 #endif
68 #endif /* !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) */
71 #endif