Artifact 068d6a0fe411e521c9d385ddfb99c78651e2b2fd:
- File keccak-low/KeccakP-1600/plain-64bits/brg_endian.h — part of check-in [efd2e29053] at 2023-10-10 00:32:08 on branch trunk — New Keccak source codes (user: bernd size: 6055)
- File keccak/brg_endian.h — part of check-in [2f8d386169] at 2016-03-30 19:05:26 on branch trunk — Another macro set to check the endianess (user: bernd size: 6055)
- File keccakp/brg_endian.h — part of check-in [90b0958714] at 2020-01-12 21:09:56 on branch trunk — Improve haves (user: bernd size: 6055)
0000: 2f 2a 0a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /*. ------------ 0010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------- 0020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------- 0030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------- 0040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------. 0050: 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 Copyright (c) 1 0060: 39 39 38 2d 32 30 30 38 2c 20 42 72 69 61 6e 20 998-2008, Brian 0070: 47 6c 61 64 6d 61 6e 2c 20 57 6f 72 63 65 73 74 Gladman, Worcest 0080: 65 72 2c 20 55 4b 2e 20 41 6c 6c 20 72 69 67 68 er, UK. All righ 0090: 74 73 20 72 65 73 65 72 76 65 64 2e 0a 0a 20 4c ts reserved... L 00a0: 49 43 45 4e 53 45 20 54 45 52 4d 53 0a 0a 20 54 ICENSE TERMS.. T 00b0: 68 65 20 72 65 64 69 73 74 72 69 62 75 74 69 6f he redistributio 00c0: 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 69 n and use of thi 00d0: 73 20 73 6f 66 74 77 61 72 65 20 28 77 69 74 68 s software (with 00e0: 20 6f 72 20 77 69 74 68 6f 75 74 20 63 68 61 6e or without chan 00f0: 67 65 73 29 0a 20 69 73 20 61 6c 6c 6f 77 65 64 ges). is allowed 0100: 20 77 69 74 68 6f 75 74 20 74 68 65 20 70 61 79 without the pay 0110: 6d 65 6e 74 20 6f 66 20 66 65 65 73 20 6f 72 20 ment of fees or 0120: 72 6f 79 61 6c 74 69 65 73 20 70 72 6f 76 69 64 royalties provid 0130: 65 64 20 74 68 61 74 3a 0a 0a 20 20 31 2e 20 73 ed that:.. 1. s 0140: 6f 75 72 63 65 20 63 6f 64 65 20 64 69 73 74 72 ource code distr 0150: 69 62 75 74 69 6f 6e 73 20 69 6e 63 6c 75 64 65 ibutions include 0160: 20 74 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 the above copyr 0170: 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 74 68 69 ight notice, thi 0180: 73 0a 20 20 20 20 20 6c 69 73 74 20 6f 66 20 63 s. list of c 0190: 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 onditions and th 01a0: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 e following disc 01b0: 6c 61 69 6d 65 72 3b 0a 0a 20 20 32 2e 20 62 69 laimer;.. 2. bi 01c0: 6e 61 72 79 20 64 69 73 74 72 69 62 75 74 69 6f nary distributio 01d0: 6e 73 20 69 6e 63 6c 75 64 65 20 74 68 65 20 61 ns include the a 01e0: 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e bove copyright n 01f0: 6f 74 69 63 65 2c 20 74 68 69 73 20 6c 69 73 74 otice, this list 0200: 0a 20 20 20 20 20 6f 66 20 63 6f 6e 64 69 74 69 . of conditi 0210: 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c ons and the foll 0220: 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 owing disclaimer 0230: 20 69 6e 20 74 68 65 69 72 20 64 6f 63 75 6d 65 in their docume 0240: 6e 74 61 74 69 6f 6e 3b 0a 0a 20 20 33 2e 20 74 ntation;.. 3. t 0250: 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 he name of the c 0260: 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 opyright holder 0270: 69 73 20 6e 6f 74 20 75 73 65 64 20 74 6f 20 65 is not used to e 0280: 6e 64 6f 72 73 65 20 70 72 6f 64 75 63 74 73 0a ndorse products. 0290: 20 20 20 20 20 62 75 69 6c 74 20 75 73 69 6e 67 built using 02a0: 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 77 this software w 02b0: 69 74 68 6f 75 74 20 73 70 65 63 69 66 69 63 20 ithout specific 02c0: 77 72 69 74 74 65 6e 20 70 65 72 6d 69 73 73 69 written permissi 02d0: 6f 6e 2e 0a 0a 20 44 49 53 43 4c 41 49 4d 45 52 on... DISCLAIMER 02e0: 0a 0a 20 54 68 69 73 20 73 6f 66 74 77 61 72 65 .. This software 02f0: 20 69 73 20 70 72 6f 76 69 64 65 64 20 27 61 73 is provided 'as 0300: 20 69 73 27 20 77 69 74 68 20 6e 6f 20 65 78 70 is' with no exp 0310: 6c 69 63 69 74 20 6f 72 20 69 6d 70 6c 69 65 64 licit or implied 0320: 20 77 61 72 72 61 6e 74 69 65 73 0a 20 69 6e 20 warranties. in 0330: 72 65 73 70 65 63 74 20 6f 66 20 69 74 73 20 70 respect of its p 0340: 72 6f 70 65 72 74 69 65 73 2c 20 69 6e 63 6c 75 roperties, inclu 0350: 64 69 6e 67 2c 20 62 75 74 20 6e 6f 74 20 6c 69 ding, but not li 0360: 6d 69 74 65 64 20 74 6f 2c 20 63 6f 72 72 65 63 mited to, correc 0370: 74 6e 65 73 73 0a 20 61 6e 64 2f 6f 72 20 66 69 tness. and/or fi 0380: 74 6e 65 73 73 20 66 6f 72 20 70 75 72 70 6f 73 tness for purpos 0390: 65 2e 0a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d e.. ------------ 03a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------- 03b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------- 03c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------- 03d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------. 03e0: 20 49 73 73 75 65 20 44 61 74 65 3a 20 32 30 2f Issue Date: 20/ 03f0: 31 32 2f 32 30 30 37 0a 20 43 68 61 6e 67 65 73 12/2007. Changes 0400: 20 66 6f 72 20 41 52 4d 20 39 2f 39 2f 32 30 31 for ARM 9/9/201 0410: 30 0a 2a 2f 0a 0a 23 69 66 6e 64 65 66 20 5f 42 0.*/..#ifndef _B 0420: 52 47 5f 45 4e 44 49 41 4e 5f 48 0a 23 64 65 66 RG_ENDIAN_H.#def 0430: 69 6e 65 20 5f 42 52 47 5f 45 4e 44 49 41 4e 5f ine _BRG_ENDIAN_ 0440: 48 0a 0a 23 64 65 66 69 6e 65 20 49 53 5f 42 49 H..#define IS_BI 0450: 47 5f 45 4e 44 49 41 4e 20 20 20 20 20 20 34 33 G_ENDIAN 43 0460: 32 31 20 2f 2a 20 62 79 74 65 20 30 20 69 73 20 21 /* byte 0 is 0470: 6d 6f 73 74 20 73 69 67 6e 69 66 69 63 61 6e 74 most significant 0480: 20 28 6d 63 36 38 6b 29 20 2a 2f 0a 23 64 65 66 (mc68k) */.#def 0490: 69 6e 65 20 49 53 5f 4c 49 54 54 4c 45 5f 45 4e ine IS_LITTLE_EN 04a0: 44 49 41 4e 20 20 20 31 32 33 34 20 2f 2a 20 62 DIAN 1234 /* b 04b0: 79 74 65 20 30 20 69 73 20 6c 65 61 73 74 20 73 yte 0 is least s 04c0: 69 67 6e 69 66 69 63 61 6e 74 20 28 69 33 38 36 ignificant (i386 04d0: 29 20 2a 2f 0a 0a 23 69 66 20 30 0a 2f 2a 20 49 ) */..#if 0./* I 04e0: 6e 63 6c 75 64 65 20 66 69 6c 65 73 20 77 68 65 nclude files whe 04f0: 72 65 20 65 6e 64 69 61 6e 20 64 65 66 69 6e 65 re endian define 0500: 73 20 61 6e 64 20 62 79 74 65 73 77 61 70 20 66 s and byteswap f 0510: 75 6e 63 74 69 6f 6e 73 20 6d 61 79 20 72 65 73 unctions may res 0520: 69 64 65 20 2a 2f 0a 23 69 66 20 64 65 66 69 6e ide */.#if defin 0530: 65 64 28 20 5f 5f 73 75 6e 20 29 0a 23 20 20 69 ed( __sun ).# i 0540: 6e 63 6c 75 64 65 20 3c 73 79 73 2f 69 73 61 5f nclude <sys/isa_ 0550: 64 65 66 73 2e 68 3e 0a 23 65 6c 69 66 20 64 65 defs.h>.#elif de 0560: 66 69 6e 65 64 28 20 5f 5f 46 72 65 65 42 53 44 fined( __FreeBSD 0570: 5f 5f 20 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 __ ) || defined( 0580: 20 5f 5f 4f 70 65 6e 42 53 44 5f 5f 20 29 20 7c __OpenBSD__ ) | 0590: 7c 20 64 65 66 69 6e 65 64 28 20 5f 5f 4e 65 74 | defined( __Net 05a0: 42 53 44 5f 5f 20 29 0a 23 20 20 69 6e 63 6c 75 BSD__ ).# inclu 05b0: 64 65 20 3c 73 79 73 2f 65 6e 64 69 61 6e 2e 68 de <sys/endian.h 05c0: 3e 0a 23 65 6c 69 66 20 64 65 66 69 6e 65 64 28 >.#elif defined( 05d0: 20 42 53 44 20 29 20 26 26 20 28 20 42 53 44 20 BSD ) && ( BSD 05e0: 3e 3d 20 31 39 39 31 30 33 20 29 20 7c 7c 20 64 >= 199103 ) || d 05f0: 65 66 69 6e 65 64 28 20 5f 5f 41 50 50 4c 45 5f efined( __APPLE_ 0600: 5f 20 29 20 7c 7c 20 5c 0a 20 20 20 20 20 20 64 _ ) || \. d 0610: 65 66 69 6e 65 64 28 20 5f 5f 43 59 47 57 49 4e efined( __CYGWIN 0620: 33 32 5f 5f 20 29 20 7c 7c 20 64 65 66 69 6e 65 32__ ) || define 0630: 64 28 20 5f 5f 44 4a 47 50 50 5f 5f 20 29 20 7c d( __DJGPP__ ) | 0640: 7c 20 64 65 66 69 6e 65 64 28 20 5f 5f 6f 73 66 | defined( __osf 0650: 5f 5f 20 29 0a 23 20 20 69 6e 63 6c 75 64 65 20 __ ).# include 0660: 3c 6d 61 63 68 69 6e 65 2f 65 6e 64 69 61 6e 2e <machine/endian. 0670: 68 3e 0a 23 65 6c 69 66 20 64 65 66 69 6e 65 64 h>.#elif defined 0680: 28 20 5f 5f 6c 69 6e 75 78 5f 5f 20 29 20 7c 7c ( __linux__ ) || 0690: 20 64 65 66 69 6e 65 64 28 20 5f 5f 47 4e 55 43 defined( __GNUC 06a0: 5f 5f 20 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 __ ) || defined( 06b0: 20 5f 5f 47 4e 55 5f 4c 49 42 52 41 52 59 5f 5f __GNU_LIBRARY__ 06c0: 20 29 0a 23 20 20 69 66 20 21 64 65 66 69 6e 65 ).# if !define 06d0: 64 28 20 5f 5f 4d 49 4e 47 57 33 32 5f 5f 20 29 d( __MINGW32__ ) 06e0: 20 26 26 20 21 64 65 66 69 6e 65 64 28 20 5f 41 && !defined( _A 06f0: 49 58 20 29 0a 23 20 20 20 20 69 6e 63 6c 75 64 IX ).# includ 0700: 65 20 3c 65 6e 64 69 61 6e 2e 68 3e 0a 23 20 20 e <endian.h>.# 0710: 20 20 69 66 20 21 64 65 66 69 6e 65 64 28 20 5f if !defined( _ 0720: 5f 42 45 4f 53 5f 5f 20 29 0a 23 20 20 20 20 20 _BEOS__ ).# 0730: 20 69 6e 63 6c 75 64 65 20 3c 62 79 74 65 73 77 include <bytesw 0740: 61 70 2e 68 3e 0a 23 20 20 20 20 65 6e 64 69 66 ap.h>.# endif 0750: 0a 23 20 20 65 6e 64 69 66 0a 23 65 6e 64 69 66 .# endif.#endif 0760: 0a 23 65 6e 64 69 66 0a 0a 2f 2a 20 4e 6f 77 20 .#endif../* Now 0770: 61 74 74 65 6d 70 74 20 74 6f 20 73 65 74 20 74 attempt to set t 0780: 68 65 20 64 65 66 69 6e 65 20 66 6f 72 20 70 6c he define for pl 0790: 61 74 66 6f 72 6d 20 62 79 74 65 20 6f 72 64 65 atform byte orde 07a0: 72 20 75 73 69 6e 67 20 61 6e 79 20 20 2a 2f 0a r using any */. 07b0: 2f 2a 20 6f 66 20 74 68 65 20 66 6f 75 72 20 66 /* of the four f 07c0: 6f 72 6d 73 20 53 59 4d 42 4f 4c 2c 20 5f 53 59 orms SYMBOL, _SY 07d0: 4d 42 4f 4c 2c 20 5f 5f 53 59 4d 42 4f 4c 20 26 MBOL, __SYMBOL & 07e0: 20 5f 5f 53 59 4d 42 4f 4c 5f 5f 2c 20 77 68 69 __SYMBOL__, whi 07f0: 63 68 20 20 2a 2f 0a 2f 2a 20 73 65 65 6d 20 74 ch */./* seem t 0800: 6f 20 65 6e 63 6f 6d 70 61 73 73 20 6d 6f 73 74 o encompass most 0810: 20 65 6e 64 69 61 6e 20 73 79 6d 62 6f 6c 20 64 endian symbol d 0820: 65 66 69 6e 69 74 69 6f 6e 73 20 20 20 20 20 20 efinitions 0830: 20 20 20 20 20 20 20 20 20 20 20 2a 2f 0a 0a 23 */..# 0840: 69 66 20 64 65 66 69 6e 65 64 28 20 42 49 47 5f if defined( BIG_ 0850: 45 4e 44 49 41 4e 20 29 20 26 26 20 64 65 66 69 ENDIAN ) && defi 0860: 6e 65 64 28 20 4c 49 54 54 4c 45 5f 45 4e 44 49 ned( LITTLE_ENDI 0870: 41 4e 20 29 0a 23 20 20 69 66 20 64 65 66 69 6e AN ).# if defin 0880: 65 64 28 20 42 59 54 45 5f 4f 52 44 45 52 20 29 ed( BYTE_ORDER ) 0890: 20 26 26 20 42 59 54 45 5f 4f 52 44 45 52 20 3d && BYTE_ORDER = 08a0: 3d 20 42 49 47 5f 45 4e 44 49 41 4e 0a 23 20 20 = BIG_ENDIAN.# 08b0: 20 20 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 define PLATFOR 08c0: 4d 5f 42 59 54 45 5f 4f 52 44 45 52 20 49 53 5f M_BYTE_ORDER IS_ 08d0: 42 49 47 5f 45 4e 44 49 41 4e 0a 23 20 20 65 6c BIG_ENDIAN.# el 08e0: 69 66 20 64 65 66 69 6e 65 64 28 20 42 59 54 45 if defined( BYTE 08f0: 5f 4f 52 44 45 52 20 29 20 26 26 20 42 59 54 45 _ORDER ) && BYTE 0900: 5f 4f 52 44 45 52 20 3d 3d 20 4c 49 54 54 4c 45 _ORDER == LITTLE 0910: 5f 45 4e 44 49 41 4e 0a 23 20 20 20 20 64 65 66 _ENDIAN.# def 0920: 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 ine PLATFORM_BYT 0930: 45 5f 4f 52 44 45 52 20 49 53 5f 4c 49 54 54 4c E_ORDER IS_LITTL 0940: 45 5f 45 4e 44 49 41 4e 0a 23 20 20 65 6e 64 69 E_ENDIAN.# endi 0950: 66 0a 23 65 6c 69 66 20 64 65 66 69 6e 65 64 28 f.#elif defined( 0960: 20 42 49 47 5f 45 4e 44 49 41 4e 20 29 0a 23 20 BIG_ENDIAN ).# 0970: 20 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d define PLATFORM 0980: 5f 42 59 54 45 5f 4f 52 44 45 52 20 49 53 5f 42 _BYTE_ORDER IS_B 0990: 49 47 5f 45 4e 44 49 41 4e 0a 23 65 6c 69 66 20 IG_ENDIAN.#elif 09a0: 64 65 66 69 6e 65 64 28 20 4c 49 54 54 4c 45 5f defined( LITTLE_ 09b0: 45 4e 44 49 41 4e 20 29 0a 23 20 20 64 65 66 69 ENDIAN ).# defi 09c0: 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 45 ne PLATFORM_BYTE 09d0: 5f 4f 52 44 45 52 20 49 53 5f 4c 49 54 54 4c 45 _ORDER IS_LITTLE 09e0: 5f 45 4e 44 49 41 4e 0a 23 65 6e 64 69 66 0a 0a _ENDIAN.#endif.. 09f0: 23 69 66 20 64 65 66 69 6e 65 64 28 20 5f 42 49 #if defined( _BI 0a00: 47 5f 45 4e 44 49 41 4e 20 29 20 26 26 20 64 65 G_ENDIAN ) && de 0a10: 66 69 6e 65 64 28 20 5f 4c 49 54 54 4c 45 5f 45 fined( _LITTLE_E 0a20: 4e 44 49 41 4e 20 29 0a 23 20 20 69 66 20 64 65 NDIAN ).# if de 0a30: 66 69 6e 65 64 28 20 5f 42 59 54 45 5f 4f 52 44 fined( _BYTE_ORD 0a40: 45 52 20 29 20 26 26 20 5f 42 59 54 45 5f 4f 52 ER ) && _BYTE_OR 0a50: 44 45 52 20 3d 3d 20 5f 42 49 47 5f 45 4e 44 49 DER == _BIG_ENDI 0a60: 41 4e 0a 23 20 20 20 20 64 65 66 69 6e 65 20 50 AN.# define P 0a70: 4c 41 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 LATFORM_BYTE_ORD 0a80: 45 52 20 49 53 5f 42 49 47 5f 45 4e 44 49 41 4e ER IS_BIG_ENDIAN 0a90: 0a 23 20 20 65 6c 69 66 20 64 65 66 69 6e 65 64 .# elif defined 0aa0: 28 20 5f 42 59 54 45 5f 4f 52 44 45 52 20 29 20 ( _BYTE_ORDER ) 0ab0: 26 26 20 5f 42 59 54 45 5f 4f 52 44 45 52 20 3d && _BYTE_ORDER = 0ac0: 3d 20 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 41 4e = _LITTLE_ENDIAN 0ad0: 0a 23 20 20 20 20 64 65 66 69 6e 65 20 50 4c 41 .# define PLA 0ae0: 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 45 52 TFORM_BYTE_ORDER 0af0: 20 49 53 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 41 IS_LITTLE_ENDIA 0b00: 4e 0a 23 20 20 65 6e 64 69 66 0a 23 65 6c 69 66 N.# endif.#elif 0b10: 20 64 65 66 69 6e 65 64 28 20 5f 42 49 47 5f 45 defined( _BIG_E 0b20: 4e 44 49 41 4e 20 29 0a 23 20 20 64 65 66 69 6e NDIAN ).# defin 0b30: 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 45 5f e PLATFORM_BYTE_ 0b40: 4f 52 44 45 52 20 49 53 5f 42 49 47 5f 45 4e 44 ORDER IS_BIG_END 0b50: 49 41 4e 0a 23 65 6c 69 66 20 64 65 66 69 6e 65 IAN.#elif define 0b60: 64 28 20 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 41 d( _LITTLE_ENDIA 0b70: 4e 20 29 0a 23 20 20 64 65 66 69 6e 65 20 50 4c N ).# define PL 0b80: 41 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 45 ATFORM_BYTE_ORDE 0b90: 52 20 49 53 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 R IS_LITTLE_ENDI 0ba0: 41 4e 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20 64 AN.#endif..#if d 0bb0: 65 66 69 6e 65 64 28 20 5f 5f 42 49 47 5f 45 4e efined( __BIG_EN 0bc0: 44 49 41 4e 20 29 20 26 26 20 64 65 66 69 6e 65 DIAN ) && define 0bd0: 64 28 20 5f 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 d( __LITTLE_ENDI 0be0: 41 4e 20 29 0a 23 20 20 69 66 20 64 65 66 69 6e AN ).# if defin 0bf0: 65 64 28 20 5f 5f 42 59 54 45 5f 4f 52 44 45 52 ed( __BYTE_ORDER 0c00: 20 29 20 26 26 20 5f 5f 42 59 54 45 5f 4f 52 44 ) && __BYTE_ORD 0c10: 45 52 20 3d 3d 20 5f 5f 42 49 47 5f 45 4e 44 49 ER == __BIG_ENDI 0c20: 41 4e 0a 23 20 20 20 20 64 65 66 69 6e 65 20 50 AN.# define P 0c30: 4c 41 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 LATFORM_BYTE_ORD 0c40: 45 52 20 49 53 5f 42 49 47 5f 45 4e 44 49 41 4e ER IS_BIG_ENDIAN 0c50: 0a 23 20 20 65 6c 69 66 20 64 65 66 69 6e 65 64 .# elif defined 0c60: 28 20 5f 5f 42 59 54 45 5f 4f 52 44 45 52 20 29 ( __BYTE_ORDER ) 0c70: 20 26 26 20 5f 5f 42 59 54 45 5f 4f 52 44 45 52 && __BYTE_ORDER 0c80: 20 3d 3d 20 5f 5f 4c 49 54 54 4c 45 5f 45 4e 44 == __LITTLE_END 0c90: 49 41 4e 0a 23 20 20 20 20 64 65 66 69 6e 65 20 IAN.# define 0ca0: 50 4c 41 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 PLATFORM_BYTE_OR 0cb0: 44 45 52 20 49 53 5f 4c 49 54 54 4c 45 5f 45 4e DER IS_LITTLE_EN 0cc0: 44 49 41 4e 0a 23 20 20 65 6e 64 69 66 0a 23 65 DIAN.# endif.#e 0cd0: 6c 69 66 20 64 65 66 69 6e 65 64 28 20 5f 5f 42 lif defined( __B 0ce0: 49 47 5f 45 4e 44 49 41 4e 20 29 0a 23 20 20 64 IG_ENDIAN ).# d 0cf0: 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 efine PLATFORM_B 0d00: 59 54 45 5f 4f 52 44 45 52 20 49 53 5f 42 49 47 YTE_ORDER IS_BIG 0d10: 5f 45 4e 44 49 41 4e 0a 23 65 6c 69 66 20 64 65 _ENDIAN.#elif de 0d20: 66 69 6e 65 64 28 20 5f 5f 4c 49 54 54 4c 45 5f fined( __LITTLE_ 0d30: 45 4e 44 49 41 4e 20 29 0a 23 20 20 64 65 66 69 ENDIAN ).# defi 0d40: 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 45 ne PLATFORM_BYTE 0d50: 5f 4f 52 44 45 52 20 49 53 5f 4c 49 54 54 4c 45 _ORDER IS_LITTLE 0d60: 5f 45 4e 44 49 41 4e 0a 23 65 6e 64 69 66 0a 0a _ENDIAN.#endif.. 0d70: 23 69 66 20 64 65 66 69 6e 65 64 28 20 5f 5f 42 #if defined( __B 0d80: 49 47 5f 45 4e 44 49 41 4e 5f 5f 20 29 20 26 26 IG_ENDIAN__ ) && 0d90: 20 64 65 66 69 6e 65 64 28 20 5f 5f 4c 49 54 54 defined( __LITT 0da0: 4c 45 5f 45 4e 44 49 41 4e 5f 5f 20 29 0a 23 20 LE_ENDIAN__ ).# 0db0: 20 69 66 20 64 65 66 69 6e 65 64 28 20 5f 5f 42 if defined( __B 0dc0: 59 54 45 5f 4f 52 44 45 52 5f 5f 20 29 20 26 26 YTE_ORDER__ ) && 0dd0: 20 5f 5f 42 59 54 45 5f 4f 52 44 45 52 5f 5f 20 __BYTE_ORDER__ 0de0: 3d 3d 20 5f 5f 42 49 47 5f 45 4e 44 49 41 4e 5f == __BIG_ENDIAN_ 0df0: 5f 0a 23 20 20 20 20 64 65 66 69 6e 65 20 50 4c _.# define PL 0e00: 41 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 45 ATFORM_BYTE_ORDE 0e10: 52 20 49 53 5f 42 49 47 5f 45 4e 44 49 41 4e 0a R IS_BIG_ENDIAN. 0e20: 23 20 20 65 6c 69 66 20 64 65 66 69 6e 65 64 28 # elif defined( 0e30: 20 5f 5f 42 59 54 45 5f 4f 52 44 45 52 5f 5f 20 __BYTE_ORDER__ 0e40: 29 20 26 26 20 5f 5f 42 59 54 45 5f 4f 52 44 45 ) && __BYTE_ORDE 0e50: 52 5f 5f 20 3d 3d 20 5f 5f 4c 49 54 54 4c 45 5f R__ == __LITTLE_ 0e60: 45 4e 44 49 41 4e 5f 5f 0a 23 20 20 20 20 64 65 ENDIAN__.# de 0e70: 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 fine PLATFORM_BY 0e80: 54 45 5f 4f 52 44 45 52 20 49 53 5f 4c 49 54 54 TE_ORDER IS_LITT 0e90: 4c 45 5f 45 4e 44 49 41 4e 0a 23 20 20 65 6e 64 LE_ENDIAN.# end 0ea0: 69 66 0a 23 65 6c 69 66 20 64 65 66 69 6e 65 64 if.#elif defined 0eb0: 28 20 5f 5f 42 49 47 5f 45 4e 44 49 41 4e 5f 5f ( __BIG_ENDIAN__ 0ec0: 20 29 0a 23 20 20 64 65 66 69 6e 65 20 50 4c 41 ).# define PLA 0ed0: 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 45 52 TFORM_BYTE_ORDER 0ee0: 20 49 53 5f 42 49 47 5f 45 4e 44 49 41 4e 0a 23 IS_BIG_ENDIAN.# 0ef0: 65 6c 69 66 20 64 65 66 69 6e 65 64 28 20 5f 5f elif defined( __ 0f00: 4c 49 54 54 4c 45 5f 45 4e 44 49 41 4e 5f 5f 20 LITTLE_ENDIAN__ 0f10: 29 0a 23 20 20 64 65 66 69 6e 65 20 50 4c 41 54 ).# define PLAT 0f20: 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 45 52 20 FORM_BYTE_ORDER 0f30: 49 53 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 41 4e IS_LITTLE_ENDIAN 0f40: 0a 23 65 6e 64 69 66 0a 0a 23 69 66 20 64 65 66 .#endif..#if def 0f50: 69 6e 65 64 28 20 5f 5f 4f 52 44 45 52 5f 42 49 ined( __ORDER_BI 0f60: 47 5f 45 4e 44 49 41 4e 5f 5f 20 29 20 26 26 20 G_ENDIAN__ ) && 0f70: 64 65 66 69 6e 65 64 28 20 5f 5f 4f 52 44 45 52 defined( __ORDER 0f80: 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 41 4e 5f 5f _LITTLE_ENDIAN__ 0f90: 20 29 0a 23 20 20 69 66 20 64 65 66 69 6e 65 64 ).# if defined 0fa0: 28 20 5f 5f 42 59 54 45 5f 4f 52 44 45 52 5f 5f ( __BYTE_ORDER__ 0fb0: 20 29 20 26 26 20 5f 5f 42 59 54 45 5f 4f 52 44 ) && __BYTE_ORD 0fc0: 45 52 5f 5f 20 3d 3d 20 5f 5f 4f 52 44 45 52 5f ER__ == __ORDER_ 0fd0: 42 49 47 5f 45 4e 44 49 41 4e 5f 5f 0a 23 20 20 BIG_ENDIAN__.# 0fe0: 20 20 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 define PLATFOR 0ff0: 4d 5f 42 59 54 45 5f 4f 52 44 45 52 20 49 53 5f M_BYTE_ORDER IS_ 1000: 42 49 47 5f 45 4e 44 49 41 4e 0a 23 20 20 65 6c BIG_ENDIAN.# el 1010: 69 66 20 64 65 66 69 6e 65 64 28 20 5f 5f 42 59 if defined( __BY 1020: 54 45 5f 4f 52 44 45 52 5f 5f 20 29 20 26 26 20 TE_ORDER__ ) && 1030: 5f 5f 42 59 54 45 5f 4f 52 44 45 52 5f 5f 20 3d __BYTE_ORDER__ = 1040: 3d 20 5f 5f 4f 52 44 45 52 5f 4c 49 54 54 4c 45 = __ORDER_LITTLE 1050: 5f 45 4e 44 49 41 4e 5f 5f 0a 23 20 20 20 20 64 _ENDIAN__.# d 1060: 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 efine PLATFORM_B 1070: 59 54 45 5f 4f 52 44 45 52 20 49 53 5f 4c 49 54 YTE_ORDER IS_LIT 1080: 54 4c 45 5f 45 4e 44 49 41 4e 0a 23 20 20 65 6e TLE_ENDIAN.# en 1090: 64 69 66 0a 23 65 6c 69 66 20 64 65 66 69 6e 65 dif.#elif define 10a0: 64 28 20 5f 5f 4f 52 44 45 52 5f 42 49 47 5f 45 d( __ORDER_BIG_E 10b0: 4e 44 49 41 4e 5f 5f 20 29 0a 23 20 20 64 65 66 NDIAN__ ).# def 10c0: 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 ine PLATFORM_BYT 10d0: 45 5f 4f 52 44 45 52 20 49 53 5f 42 49 47 5f 45 E_ORDER IS_BIG_E 10e0: 4e 44 49 41 4e 0a 23 65 6c 69 66 20 64 65 66 69 NDIAN.#elif defi 10f0: 6e 65 64 28 20 5f 5f 4f 52 44 45 52 5f 4c 49 54 ned( __ORDER_LIT 1100: 54 4c 45 5f 45 4e 44 49 41 4e 5f 5f 20 29 0a 23 TLE_ENDIAN__ ).# 1110: 20 20 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 define PLATFOR 1120: 4d 5f 42 59 54 45 5f 4f 52 44 45 52 20 49 53 5f M_BYTE_ORDER IS_ 1130: 4c 49 54 54 4c 45 5f 45 4e 44 49 41 4e 0a 23 65 LITTLE_ENDIAN.#e 1140: 6e 64 69 66 0a 0a 2f 2a 20 20 69 66 20 74 68 65 ndif../* if the 1150: 20 70 6c 61 74 66 6f 72 6d 20 62 79 74 65 20 6f platform byte o 1160: 72 64 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 62 rder could not b 1170: 65 20 64 65 74 65 72 6d 69 6e 65 64 2c 20 74 68 e determined, th 1180: 65 6e 20 74 72 79 20 74 6f 20 2a 2f 0a 2f 2a 20 en try to */./* 1190: 20 73 65 74 20 74 68 69 73 20 64 65 66 69 6e 65 set this define 11a0: 20 75 73 69 6e 67 20 63 6f 6d 6d 6f 6e 20 6d 61 using common ma 11b0: 63 68 69 6e 65 20 64 65 66 69 6e 65 73 20 20 20 chine defines 11c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 11d0: 20 2a 2f 0a 23 69 66 20 21 64 65 66 69 6e 65 64 */.#if !defined 11e0: 28 50 4c 41 54 46 4f 52 4d 5f 42 59 54 45 5f 4f (PLATFORM_BYTE_O 11f0: 52 44 45 52 29 0a 0a 23 69 66 20 20 20 64 65 66 RDER)..#if def 1200: 69 6e 65 64 28 20 5f 5f 61 6c 70 68 61 5f 5f 20 ined( __alpha__ 1210: 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 20 5f 5f ) || defined( __ 1220: 61 6c 70 68 61 20 29 20 7c 7c 20 64 65 66 69 6e alpha ) || defin 1230: 65 64 28 20 69 33 38 36 20 29 20 20 20 20 20 20 ed( i386 ) 1240: 20 7c 7c 20 5c 0a 20 20 20 20 20 20 64 65 66 69 || \. defi 1250: 6e 65 64 28 20 5f 5f 69 33 38 36 5f 5f 20 29 20 ned( __i386__ ) 1260: 20 7c 7c 20 64 65 66 69 6e 65 64 28 20 5f 4d 5f || defined( _M_ 1270: 49 38 36 20 29 20 20 7c 7c 20 64 65 66 69 6e 65 I86 ) || define 1280: 64 28 20 5f 4d 5f 49 58 38 36 20 29 20 20 20 20 d( _M_IX86 ) 1290: 7c 7c 20 5c 0a 20 20 20 20 20 20 64 65 66 69 6e || \. defin 12a0: 65 64 28 20 5f 5f 4f 53 32 5f 5f 20 29 20 20 20 ed( __OS2__ ) 12b0: 7c 7c 20 64 65 66 69 6e 65 64 28 20 73 75 6e 33 || defined( sun3 12c0: 38 36 20 29 20 20 7c 7c 20 64 65 66 69 6e 65 64 86 ) || defined 12d0: 28 20 5f 5f 54 55 52 42 4f 43 5f 5f 20 29 20 7c ( __TURBOC__ ) | 12e0: 7c 20 5c 0a 20 20 20 20 20 20 64 65 66 69 6e 65 | \. define 12f0: 64 28 20 76 61 78 20 29 20 20 20 20 20 20 20 7c d( vax ) | 1300: 7c 20 64 65 66 69 6e 65 64 28 20 76 6d 73 20 29 | defined( vms ) 1310: 20 20 20 20 20 7c 7c 20 64 65 66 69 6e 65 64 28 || defined( 1320: 20 56 4d 53 20 29 20 20 20 20 20 20 20 20 7c 7c VMS ) || 1330: 20 5c 0a 20 20 20 20 20 20 64 65 66 69 6e 65 64 \. defined 1340: 28 20 5f 5f 56 4d 53 20 29 20 20 20 20 20 7c 7c ( __VMS ) || 1350: 20 64 65 66 69 6e 65 64 28 20 5f 4d 5f 58 36 34 defined( _M_X64 1360: 20 29 0a 23 20 20 64 65 66 69 6e 65 20 50 4c 41 ).# define PLA 1370: 54 46 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 45 52 TFORM_BYTE_ORDER 1380: 20 49 53 5f 4c 49 54 54 4c 45 5f 45 4e 44 49 41 IS_LITTLE_ENDIA 1390: 4e 0a 0a 23 65 6c 69 66 20 64 65 66 69 6e 65 64 N..#elif defined 13a0: 28 20 41 4d 49 47 41 20 29 20 20 20 7c 7c 20 64 ( AMIGA ) || d 13b0: 65 66 69 6e 65 64 28 20 61 70 70 6c 65 63 20 29 efined( applec ) 13c0: 20 20 20 20 7c 7c 20 64 65 66 69 6e 65 64 28 20 || defined( 13d0: 5f 5f 41 53 34 30 30 5f 5f 20 29 20 20 7c 7c 20 __AS400__ ) || 13e0: 5c 0a 20 20 20 20 20 20 64 65 66 69 6e 65 64 28 \. defined( 13f0: 20 5f 43 52 41 59 20 29 20 20 20 7c 7c 20 64 65 _CRAY ) || de 1400: 66 69 6e 65 64 28 20 5f 5f 68 70 70 61 20 29 20 fined( __hppa ) 1410: 20 20 20 7c 7c 20 64 65 66 69 6e 65 64 28 20 5f || defined( _ 1420: 5f 68 70 39 30 30 30 20 29 20 20 20 7c 7c 20 5c _hp9000 ) || \ 1430: 0a 20 20 20 20 20 20 64 65 66 69 6e 65 64 28 20 . defined( 1440: 69 62 6d 33 37 30 20 29 20 20 7c 7c 20 64 65 66 ibm370 ) || def 1450: 69 6e 65 64 28 20 6d 63 36 38 30 30 30 20 29 20 ined( mc68000 ) 1460: 20 20 7c 7c 20 64 65 66 69 6e 65 64 28 20 6d 36 || defined( m6 1470: 38 6b 20 29 20 20 20 20 20 20 20 7c 7c 20 5c 0a 8k ) || \. 1480: 20 20 20 20 20 20 64 65 66 69 6e 65 64 28 20 5f defined( _ 1490: 5f 4d 52 43 5f 5f 20 29 20 7c 7c 20 64 65 66 69 _MRC__ ) || defi 14a0: 6e 65 64 28 20 5f 5f 4d 56 53 5f 5f 20 29 20 20 ned( __MVS__ ) 14b0: 20 7c 7c 20 64 65 66 69 6e 65 64 28 20 5f 5f 4d || defined( __M 14c0: 57 45 52 4b 53 5f 5f 20 29 20 7c 7c 20 5c 0a 20 WERKS__ ) || \. 14d0: 20 20 20 20 20 64 65 66 69 6e 65 64 28 20 73 70 defined( sp 14e0: 61 72 63 20 29 20 20 20 7c 7c 20 64 65 66 69 6e arc ) || defin 14f0: 65 64 28 20 5f 5f 73 70 61 72 63 29 20 20 20 20 ed( __sparc) 1500: 7c 7c 20 64 65 66 69 6e 65 64 28 20 53 59 4d 41 || defined( SYMA 1510: 4e 54 45 43 5f 43 20 29 20 7c 7c 20 5c 0a 20 20 NTEC_C ) || \. 1520: 20 20 20 20 64 65 66 69 6e 65 64 28 20 5f 5f 56 defined( __V 1530: 4f 53 5f 5f 20 29 20 7c 7c 20 64 65 66 69 6e 65 OS__ ) || define 1540: 64 28 20 5f 5f 54 49 47 43 43 5f 5f 20 29 20 7c d( __TIGCC__ ) | 1550: 7c 20 64 65 66 69 6e 65 64 28 20 5f 5f 54 41 4e | defined( __TAN 1560: 44 45 4d 20 29 20 20 20 7c 7c 20 5c 0a 20 20 20 DEM ) || \. 1570: 20 20 20 64 65 66 69 6e 65 64 28 20 54 48 49 4e defined( THIN 1580: 4b 5f 43 20 29 20 7c 7c 20 64 65 66 69 6e 65 64 K_C ) || defined 1590: 28 20 5f 5f 56 4d 43 4d 53 5f 5f 20 29 20 7c 7c ( __VMCMS__ ) || 15a0: 20 64 65 66 69 6e 65 64 28 20 5f 41 49 58 20 29 defined( _AIX ) 15b0: 0a 23 20 20 64 65 66 69 6e 65 20 50 4c 41 54 46 .# define PLATF 15c0: 4f 52 4d 5f 42 59 54 45 5f 4f 52 44 45 52 20 49 ORM_BYTE_ORDER I 15d0: 53 5f 42 49 47 5f 45 4e 44 49 41 4e 0a 0a 23 65 S_BIG_ENDIAN..#e 15e0: 6c 69 66 20 64 65 66 69 6e 65 64 28 5f 5f 61 72 lif defined(__ar 15f0: 6d 5f 5f 29 0a 23 20 69 66 64 65 66 20 5f 5f 42 m__).# ifdef __B 1600: 49 47 5f 45 4e 44 49 41 4e 0a 23 20 20 64 65 66 IG_ENDIAN.# def 1610: 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 ine PLATFORM_BYT 1620: 45 5f 4f 52 44 45 52 20 49 53 5f 42 49 47 5f 45 E_ORDER IS_BIG_E 1630: 4e 44 49 41 4e 0a 23 20 65 6c 73 65 0a 23 20 20 NDIAN.# else.# 1640: 64 65 66 69 6e 65 20 50 4c 41 54 46 4f 52 4d 5f define PLATFORM_ 1650: 42 59 54 45 5f 4f 52 44 45 52 20 49 53 5f 4c 49 BYTE_ORDER IS_LI 1660: 54 54 4c 45 5f 45 4e 44 49 41 4e 0a 23 20 65 6e TTLE_ENDIAN.# en 1670: 64 69 66 0a 23 65 6c 69 66 20 31 20 20 20 20 20 dif.#elif 1 1680: 2f 2a 20 2a 2a 2a 2a 20 45 44 49 54 20 48 45 52 /* **** EDIT HER 1690: 45 20 49 46 20 4e 45 43 45 53 53 41 52 59 20 2a E IF NECESSARY * 16a0: 2a 2a 2a 20 2a 2f 0a 23 20 20 64 65 66 69 6e 65 *** */.# define 16b0: 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 45 5f 4f PLATFORM_BYTE_O 16c0: 52 44 45 52 20 49 53 5f 4c 49 54 54 4c 45 5f 45 RDER IS_LITTLE_E 16d0: 4e 44 49 41 4e 0a 23 65 6c 69 66 20 30 20 20 20 NDIAN.#elif 0 16e0: 20 20 2f 2a 20 2a 2a 2a 2a 20 45 44 49 54 20 48 /* **** EDIT H 16f0: 45 52 45 20 49 46 20 4e 45 43 45 53 53 41 52 59 ERE IF NECESSARY 1700: 20 2a 2a 2a 2a 20 2a 2f 0a 23 20 20 64 65 66 69 **** */.# defi 1710: 6e 65 20 50 4c 41 54 46 4f 52 4d 5f 42 59 54 45 ne PLATFORM_BYTE 1720: 5f 4f 52 44 45 52 20 49 53 5f 42 49 47 5f 45 4e _ORDER IS_BIG_EN 1730: 44 49 41 4e 0a 23 65 6c 73 65 0a 23 20 20 65 72 DIAN.#else.# er 1740: 72 6f 72 20 50 6c 65 61 73 65 20 65 64 69 74 20 ror Please edit 1750: 6c 69 6e 65 73 20 31 33 32 20 6f 72 20 31 33 34 lines 132 or 134 1760: 20 69 6e 20 62 72 67 5f 65 6e 64 69 61 6e 2e 68 in brg_endian.h 1770: 20 74 6f 20 73 65 74 20 74 68 65 20 70 6c 61 74 to set the plat 1780: 66 6f 72 6d 20 62 79 74 65 20 6f 72 64 65 72 0a form byte order. 1790: 23 65 6e 64 69 66 0a 0a 23 65 6e 64 69 66 0a 0a #endif..#endif.. 17a0: 23 65 6e 64 69 66 0a #endif.