added iOS source code
[wl-app.git] / iOS / Pods / SSZipArchive / SSZipArchive / minizip / aes / brg_endian.h
1 /*
2 ---------------------------------------------------------------------------
3 Copyright (c) 1998-2013, Brian Gladman, Worcester, UK. All rights reserved.
4
5 The redistribution and use of this software (with or without changes)
6 is allowed without the payment of fees or royalties provided that:
7
8   source code distributions include the above copyright notice, this
9   list of conditions and the following disclaimer;
10
11   binary distributions include the above copyright notice, this list
12   of conditions and the following disclaimer in their documentation.
13
14 This software is provided 'as is' with no explicit or implied warranties
15 in respect of its operation, including, but not limited to, correctness
16 and fitness for purpose.
17 ---------------------------------------------------------------------------
18 Issue Date: 20/12/2007
19 */
20
21 #ifndef _BRG_ENDIAN_H
22 #define _BRG_ENDIAN_H
23
24 #define IS_BIG_ENDIAN      4321 /* byte 0 is most significant (mc68k) */
25 #define IS_LITTLE_ENDIAN   1234 /* byte 0 is least significant (i386) */
26
27 /* Include files where endian defines and byteswap functions may reside */
28 #if defined( __sun )
29 #  include <sys/isa_defs.h>
30 #elif defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __NetBSD__ )
31 #  include <sys/endian.h>
32 #elif defined( BSD ) && ( BSD >= 199103 ) || defined( __APPLE__ ) || \
33       defined( __CYGWIN32__ ) || defined( __DJGPP__ ) || defined( __osf__ ) || \
34       defined(__pnacl__)
35 #  include <machine/endian.h>
36 #elif defined( __linux__ ) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ )
37 #  if !defined( __MINGW32__ ) && !defined( _AIX )
38 #    include <endian.h>
39 #    if !defined( __BEOS__ )
40 #      include <byteswap.h>
41 #    endif
42 #  endif
43 #endif
44
45 /* Now attempt to set the define for platform byte order using any  */
46 /* of the four forms SYMBOL, _SYMBOL, __SYMBOL & __SYMBOL__, which  */
47 /* seem to encompass most endian symbol definitions                 */
48
49 #if defined( BIG_ENDIAN ) && defined( LITTLE_ENDIAN )
50 #  if defined( BYTE_ORDER ) && BYTE_ORDER == BIG_ENDIAN
51 #    define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
52 #  elif defined( BYTE_ORDER ) && BYTE_ORDER == LITTLE_ENDIAN
53 #    define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
54 #  endif
55 #elif defined( BIG_ENDIAN )
56 #  define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
57 #elif defined( LITTLE_ENDIAN )
58 #  define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
59 #endif
60
61 #if defined( _BIG_ENDIAN ) && defined( _LITTLE_ENDIAN )
62 #  if defined( _BYTE_ORDER ) && _BYTE_ORDER == _BIG_ENDIAN
63 #    define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
64 #  elif defined( _BYTE_ORDER ) && _BYTE_ORDER == _LITTLE_ENDIAN
65 #    define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
66 #  endif
67 #elif defined( _BIG_ENDIAN )
68 #  define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
69 #elif defined( _LITTLE_ENDIAN )
70 #  define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
71 #endif
72
73 #if defined( __BIG_ENDIAN ) && defined( __LITTLE_ENDIAN )
74 #  if defined( __BYTE_ORDER ) && __BYTE_ORDER == __BIG_ENDIAN
75 #    define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
76 #  elif defined( __BYTE_ORDER ) && __BYTE_ORDER == __LITTLE_ENDIAN
77 #    define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
78 #  endif
79 #elif defined( __BIG_ENDIAN )
80 #  define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
81 #elif defined( __LITTLE_ENDIAN )
82 #  define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
83 #endif
84
85 #if defined( __BIG_ENDIAN__ ) && defined( __LITTLE_ENDIAN__ )
86 #  if defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __BIG_ENDIAN__
87 #    define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
88 #  elif defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __LITTLE_ENDIAN__
89 #    define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
90 #  endif
91 #elif defined( __BIG_ENDIAN__ )
92 #  define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
93 #elif defined( __LITTLE_ENDIAN__ )
94 #  define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
95 #endif
96
97 /*  if the platform byte order could not be determined, then try to */
98 /*  set this define using common machine defines                    */
99 #if !defined(PLATFORM_BYTE_ORDER)
100
101 #if   defined( __alpha__ ) || defined( __alpha ) || defined( i386 )       || \
102       defined( __i386__ )  || defined( _M_I86 )  || defined( _M_IX86 )    || \
103       defined( __OS2__ )   || defined( sun386 )  || defined( __TURBOC__ ) || \
104       defined( vax )       || defined( vms )     || defined( VMS )        || \
105       defined( __VMS )     || defined( _M_X64 )
106 #  define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
107
108 #elif defined( AMIGA )   || defined( applec )    || defined( __AS400__ )  || \
109       defined( _CRAY )   || defined( __hppa )    || defined( __hp9000 )   || \
110       defined( ibm370 )  || defined( mc68000 )   || defined( m68k )       || \
111       defined( __MRC__ ) || defined( __MVS__ )   || defined( __MWERKS__ ) || \
112       defined( sparc )   || defined( __sparc)    || defined( SYMANTEC_C ) || \
113       defined( __VOS__ ) || defined( __TIGCC__ ) || defined( __TANDEM )   || \
114       defined( THINK_C ) || defined( __VMCMS__ ) || defined( _AIX )
115 #  define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
116
117 #elif 0     /* **** EDIT HERE IF NECESSARY **** */
118 #  define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
119 #elif 0     /* **** EDIT HERE IF NECESSARY **** */
120 #  define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
121 #else
122 #  error Please edit lines 126 or 128 in brg_endian.h to set the platform byte order
123 #endif
124
125 #endif
126
127 #endif