From d340d2f57dc0d414ea66b1b556caaf8c98b1e967 Mon Sep 17 00:00:00 2001 From: Marcus Comstedt Date: Wed, 22 Sep 2010 22:16:54 +0200 Subject: [PATCH] adb: Improved detection of big endian architecture Instead of testing for the (compiler specific) define __ppc__ explicitly, use the define HAVE_BIG_ENDIAN provided by AndroidConfig.h. That way, it should work on all big endian systems. Change-Id: Ic4d62afcefce4c8ad5716178ebfcb2b055ac73ce --- adb/file_sync_service.h | 2 +- adb/transport_local.c | 6 +++--- adb/transport_usb.c | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/adb/file_sync_service.h b/adb/file_sync_service.h index 11ea06b1f..e402e0682 100644 --- a/adb/file_sync_service.h +++ b/adb/file_sync_service.h @@ -17,7 +17,7 @@ #ifndef _FILE_SYNC_SERVICE_H_ #define _FILE_SYNC_SERVICE_H_ -#ifdef __ppc__ +#ifdef HAVE_BIG_ENDIAN static inline unsigned __swap_uint32(unsigned x) { return (((x) & 0xFF000000) >> 24) diff --git a/adb/transport_local.c b/adb/transport_local.c index 8dfc98dfd..4431ba7bc 100644 --- a/adb/transport_local.c +++ b/adb/transport_local.c @@ -25,7 +25,7 @@ #define TRACE_TAG TRACE_TRANSPORT #include "adb.h" -#ifdef __ppc__ +#ifdef HAVE_BIG_ENDIAN #define H4(x) (((x) & 0xFF000000) >> 24) | (((x) & 0x00FF0000) >> 8) | (((x) & 0x0000FF00) << 8) | (((x) & 0x000000FF) << 24) static inline void fix_endians(apacket *p) { @@ -61,7 +61,7 @@ static int remote_read(apacket *p, atransport *t) fix_endians(p); -#if 0 && defined __ppc__ +#if 0 && defined HAVE_BIG_ENDIAN D("read remote packet: %04x arg0=%0x arg1=%0x data_length=%0x data_check=%0x magic=%0x\n", p->msg.command, p->msg.arg0, p->msg.arg1, p->msg.data_length, p->msg.data_check, p->msg.magic); #endif @@ -89,7 +89,7 @@ static int remote_write(apacket *p, atransport *t) fix_endians(p); -#if 0 && defined __ppc__ +#if 0 && defined HAVE_BIG_ENDIAN D("write remote packet: %04x arg0=%0x arg1=%0x data_length=%0x data_check=%0x magic=%0x\n", p->msg.command, p->msg.arg0, p->msg.arg1, p->msg.data_length, p->msg.data_check, p->msg.magic); #endif diff --git a/adb/transport_usb.c b/adb/transport_usb.c index 258416353..ee6b637b5 100644 --- a/adb/transport_usb.c +++ b/adb/transport_usb.c @@ -27,8 +27,7 @@ #include "usb_vendors.h" #endif -/* XXX better define? */ -#ifdef __ppc__ +#ifdef HAVE_BIG_ENDIAN #define H4(x) (((x) & 0xFF000000) >> 24) | (((x) & 0x00FF0000) >> 8) | (((x) & 0x0000FF00) << 8) | (((x) & 0x000000FF) << 24) static inline void fix_endians(apacket *p) {