summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2010-07-15 17:15:20 +0000
committerNils Wallménius <nils@rockbox.org>2010-07-15 17:15:20 +0000
commit74063845c0a6602fd9ccfc038165b15a587eb656 (patch)
tree87c6724f98b0776d22e04c299b3e8409a98a88e5
parentb9e7c18dda82fb92c5e506b2e83a70132604e73b (diff)
downloadrockbox-74063845c0a6602fd9ccfc038165b15a587eb656.zip
rockbox-74063845c0a6602fd9ccfc038165b15a587eb656.tar.gz
rockbox-74063845c0a6602fd9ccfc038165b15a587eb656.tar.bz2
rockbox-74063845c0a6602fd9ccfc038165b15a587eb656.tar.xz
Properly fix warning by copying the swap16 and swap32 inline functions from system.h to mips/ingenic_jz47xx/system-target.h to replace the defines.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27433 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/libffmpegFLAC/shndec.c2
-rw-r--r--firmware/target/mips/ingenic_jz47xx/system-target.h26
2 files changed, 24 insertions, 4 deletions
diff --git a/apps/codecs/libffmpegFLAC/shndec.c b/apps/codecs/libffmpegFLAC/shndec.c
index db79844..b107b35 100644
--- a/apps/codecs/libffmpegFLAC/shndec.c
+++ b/apps/codecs/libffmpegFLAC/shndec.c
@@ -423,7 +423,7 @@ int shorten_init(ShortenContext* s, uint8_t *buf, int buf_size)
get_bits(&s->gb, s->bitindex);
/* shorten signature */
- if ((unsigned)get_bits_long(&s->gb, 32) != bswap_32(ff_get_fourcc("ajkg"))) {
+ if (get_bits_long(&s->gb, 32) != bswap_32(ff_get_fourcc("ajkg"))) {
return -1;
}
diff --git a/firmware/target/mips/ingenic_jz47xx/system-target.h b/firmware/target/mips/ingenic_jz47xx/system-target.h
index 232412d..1f8c388 100644
--- a/firmware/target/mips/ingenic_jz47xx/system-target.h
+++ b/firmware/target/mips/ingenic_jz47xx/system-target.h
@@ -22,6 +22,8 @@
#ifndef __SYSTEM_TARGET_H_
#define __SYSTEM_TARGET_H_
+#include <inttypes.h>
+
#include "config.h"
#include "jz4740.h"
#include "mipsregs.h"
@@ -72,9 +74,27 @@ static inline void restore_interrupt(int status)
#define disable_irq_save() disable_interrupt_save(ST0_IE)
#define restore_irq(c0_status) restore_interrupt(c0_status)
-#define swap16(x) (((x) & 0xff) << 8 | ((x) >> 8) & 0xff)
-#define swap32(x) (((x) & 0xff) << 24 | ((x) & 0xff00) << 8 | \
- ((x) & 0xff0000) >> 8 | ((x) >> 24) & 0xff)
+static inline uint16_t swap16(uint16_t value)
+ /*
+ result[15..8] = value[ 7..0];
+ result[ 7..0] = value[15..8];
+ */
+{
+ return (value >> 8) | (value << 8);
+}
+
+static inline uint32_t swap32(uint32_t value)
+ /*
+ result[31..24] = value[ 7.. 0];
+ result[23..16] = value[15.. 8];
+ result[15.. 8] = value[23..16];
+ result[ 7.. 0] = value[31..24];
+ */
+{
+ uint32_t hi = swap16(value >> 16);
+ uint32_t lo = swap16(value & 0xffff);
+ return (lo << 16) | hi;
+}
#define UNCACHED_ADDRESS(addr) ((unsigned int)(addr) | 0xA0000000)
#define UNCACHED_ADDR(x) UNCACHED_ADDRESS((x))