libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit 7f4e9149c26051f5e4c4ef6fd56be8f1a69eebc3
parent 75a7e3d593b154fb3b5a07f30550e2e68b6ea052
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu,  9 Aug 2012 21:45:42 +0000

fixes

Diffstat:
Msrc/common/le_architecture.h | 93++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 57 insertions(+), 36 deletions(-)

diff --git a/src/common/le_architecture.h b/src/common/le_architecture.h @@ -1,4 +1,27 @@ -#if !defined(LE_ARCHITECTURE_H) +/* + This file is part of libextractor. + (C) 2002, 2003, 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff + + libextractor is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version. + + libextractor is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with libextractor; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + */ +/** + * @file common/le_architecture.h + * @brief support routines and defines to deal with architecture-specific issues + */ +#ifndef LE_ARCHITECTURE_H #define LE_ARCHITECTURE_H #if WINDOWS @@ -39,42 +62,40 @@ * Endian operations */ -# if __BYTE_ORDER == __LITTLE_ENDIAN -# define LE_htobe16(x) __bswap_16 (x) -# define LE_htole16(x) (x) -# define LE_be16toh(x) __bswap_16 (x) -# define LE_le16toh(x) (x) - -# define LE_htobe32(x) __bswap_32 (x) -# define LE_htole32(x) (x) -# define LE_be32toh(x) __bswap_32 (x) -# define LE_le32toh(x) (x) - -# define LE_htobe64(x) __bswap_64 (x) -# define LE_htole64(x) (x) -# define LE_be64toh(x) __bswap_64 (x) -# define LE_le64toh(x) (x) +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define LE_htobe16(x) __bswap_16 (x) +#define LE_htole16(x) (x) +#define LE_be16toh(x) __bswap_16 (x) +#define LE_le16toh(x) (x) + +#define LE_htobe32(x) __bswap_32 (x) +#define LE_htole32(x) (x) +#define LE_be32toh(x) __bswap_32 (x) +#define LE_le32toh(x) (x) + +#define LE_htobe64(x) __bswap_64 (x) +#define LE_htole64(x) (x) +#define LE_be64toh(x) __bswap_64 (x) +#define LE_le64toh(x) (x) #endif -# if __BYTE_ORDER == __BIG_ENDIAN -# define LE_htobe16(x) (x) -# define LE_htole16(x) __bswap_16 (x) -# define LE_be16toh(x) (x) -# define LE_le16toh(x) __bswap_16 (x) - -# define LE_htobe32(x) (x) -# define LE_htole32(x) __bswap_32 (x) -# define LE_be32toh(x) (x) -# define LE_le32toh(x) __bswap_32 (x) - -# define LE_htobe64(x) (x) -# define LE_htole64(x) __bswap_64 (x) -# define LE_be64toh(x) (x) -# define LE_le64toh(x) __bswap_64 (x) +#if __BYTE_ORDER == __BIG_ENDIAN +#define LE_htobe16(x) (x) +#define LE_htole16(x) __bswap_16 (x) +#define LE_be16toh(x) (x) +#define LE_le16toh(x) __bswap_16 (x) + +#define LE_htobe32(x) (x) +#define LE_htole32(x) __bswap_32 (x) +#define LE_be32toh(x) (x) +#define LE_le32toh(x) __bswap_32 (x) + +#define LE_htobe64(x) (x) +#define LE_htole64(x) __bswap_64 (x) +#define LE_be64toh(x) (x) +#define LE_le64toh(x) __bswap_64 (x) #endif - - /** * gcc-ism to get packed structs. */ @@ -99,6 +120,7 @@ */ #define LE_NORETURN __attribute__((noreturn)) +#if MINGW #if __GNUC__ > 3 /** * gcc 4.x-ism to pack structures even on W32 (to be used before structs) @@ -112,9 +134,9 @@ */ #define LE_NETWORK_STRUCT_END _Pragma("pack(pop)") #else -#ifdef __MINGW32__ #error gcc 4.x or higher required on W32 systems #endif +#else /** * Good luck, LE_PACKED should suffice, but this won't work on W32 */ @@ -127,4 +149,4 @@ #endif -#endif -\ No newline at end of file +#endif