Annotation of embedaddon/sudo/compat/endian.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  * Copyright (c) 2013 Todd C. Miller <Todd.Miller@courtesan.com>
        !             3:  *
        !             4:  * Permission to use, copy, modify, and distribute this software for any
        !             5:  * purpose with or without fee is hereby granted, provided that the above
        !             6:  * copyright notice and this permission notice appear in all copies.
        !             7:  *
        !             8:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !             9:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            10:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            11:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            12:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            13:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            14:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            15:  */
        !            16: 
        !            17: #ifndef _COMPAT_ENDIAN_H
        !            18: #define _COMPAT_ENDIAN_H
        !            19: 
        !            20: #ifndef BYTE_ORDER
        !            21: # undef LITTLE_ENDIAN
        !            22: # define LITTLE_ENDIAN 1234
        !            23: # undef BIG_ENDIAN
        !            24: # define BIG_ENDIAN    4321
        !            25: # undef UNKNOWN_ENDIAN
        !            26: # define UNKNOWN_ENDIAN        0
        !            27: 
        !            28: /*
        !            29:  * Attempt to guess endianness.
        !            30:  * Solaris may define _LITTLE_ENDIAN and _BIG_ENDIAN to 1
        !            31:  * HP-UX may define __LITTLE_ENDIAN__ and __BIG_ENDIAN__ to 1
        !            32:  * Otherwise, check for cpu-specific cpp defines.
        !            33:  * Note that some CPUs are bi-endian, including: arm, powerpc, alpha,
        !            34:  * sparc64, mips, hppa, sh4 and ia64.
        !            35:  * We just check for the most common uses.
        !            36:  */
        !            37: 
        !            38: # if defined(__BYTE_ORDER)
        !            39: #  define BYTE_ORDER   __BYTE_ORDER
        !            40: # elif defined(_BYTE_ORDER)
        !            41: #  define BYTE_ORDER   _BYTE_ORDER
        !            42: # elif defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN__)
        !            43: #  define BYTE_ORDER   LITTLE_ENDIAN
        !            44: # elif defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__)
        !            45: #  define BYTE_ORDER   BIG_ENDIAN
        !            46: # elif defined(__alpha__) || defined(__alpha) || defined(__amd64) || \
        !            47:        defined(BIT_ZERO_ON_RIGHT) || defined(i386) || defined(__i386) || \
        !            48:        defined(MIPSEL) || defined(_MIPSEL) || defined(ns32000) || \
        !            49:        defined(__ns3200) || defined(sun386) || defined(vax) || \
        !            50:        defined(__vax) || defined(__x86__) || \
        !            51:        (defined(sun) && defined(__powerpc)) || \
        !            52:        (!defined(__hpux) && defined(__ia64))
        !            53: #  define BYTE_ORDER   LITTLE_ENDIAN
        !            54: # elif defined(__68k__) || defined(apollo) || defined(BIT_ZERO_ON_LEFT) || \
        !            55:        defined(__convex__) || defined(_CRAY) || defined(DGUX) || \
        !            56:        defined(__hppa) || defined(__hp9000) || defined(__hp9000s300) || \
        !            57:        defined(__hp9000s700) || defined(__hp3000s900) || \
        !            58:        defined(ibm032) || defined(ibm370) || defined(_IBMR2) || \
        !            59:        defined(is68k) || defined(mc68000) || defined(m68k) || \
        !            60:        defined(__m68k) || defined(m88k) || defined(__m88k) || \
        !            61:        defined(MIPSEB) || defined(_MIPSEB) || defined(MPE) || \
        !            62:        defined(pyr) || defined(__powerpc) || defined(__powerpc__) || \
        !            63:        defined(sel) || defined(__sparc) || defined(__sparc__) || \
        !            64:        defined(tahoe) || (defined(__hpux) && defined(__ia64)) || \
        !            65:        (defined(sun) && defined(__powerpc))
        !            66: #  define BYTE_ORDER   BIG_ENDIAN
        !            67: # else
        !            68: #  define BYTE_ORDER   UNKNOWN_ENDIAN
        !            69: # endif
        !            70: #endif /* BYTE_ORDER */
        !            71: 
        !            72: #endif /* _COMPAT_ENDIAN_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>