From 770d1ecad2d3e46cd467b9bc3c024210ae2d8d46 Mon Sep 17 00:00:00 2001 From: Richard Jones Date: Thu, 29 Oct 2009 17:54:48 +0000 Subject: [PATCH] RHEL 5: Detect endianness functions and supply them. --- configure.ac | 2 +- hivex/hivex.c | 31 ++++++++++++++++++++++++++++++- hivex/hivexget.c | 2 ++ hivex/hivexml.c | 2 ++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 5dbea37..f748617 100644 --- a/configure.ac +++ b/configure.ac @@ -123,7 +123,7 @@ dnl Check sizeof long. AC_CHECK_SIZEOF([long]) dnl Headers. -dnl AC_CHECK_HEADERS([]) +AC_CHECK_HEADERS([endian.h byteswap.h]) dnl Check for pod2man and pod2text. AC_CHECK_PROG([POD2MAN],[pod2man],[pod2man],[no]) diff --git a/hivex/hivex.c b/hivex/hivex.c index 16be753..85d6c7b 100644 --- a/hivex/hivex.c +++ b/hivex/hivex.c @@ -18,11 +18,12 @@ * See file LICENSE for the full license. */ +#include + #include #include #include #include -#include #include #include #include @@ -30,6 +31,34 @@ #include #include #include +#ifdef HAVE_ENDIAN_H +#include +#endif +#ifdef HAVE_BYTESWAP_H +#include +#endif + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#ifndef be32toh +#define be32toh(x) __bswap_32 (x) +#endif +#ifndef be64toh +#define be64toh(x) __bswap_64 (x) +#endif +#ifndef le32toh +#define le32toh(x) (x) +#endif +#else +#ifndef be32toh +#define be32toh(x) (x) +#endif +#ifndef be64toh +#define be64toh(x) (x) +#endif +#ifndef le32toh +#define le32toh(x) __bswap_32 (x) +#endif +#endif #include "hivex.h" diff --git a/hivex/hivexget.c b/hivex/hivexget.c index 9bb6bbb..04c854f 100644 --- a/hivex/hivexget.c +++ b/hivex/hivexget.c @@ -16,6 +16,8 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include + #include #include #include diff --git a/hivex/hivexml.c b/hivex/hivexml.c index af3de9e..9dd394e 100644 --- a/hivex/hivexml.c +++ b/hivex/hivexml.c @@ -16,6 +16,8 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include + #include #include #include -- 1.8.3.1