summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 db7984488d..b107b356d7 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)
423 get_bits(&s->gb, s->bitindex); 423 get_bits(&s->gb, s->bitindex);
424 424
425 /* shorten signature */ 425 /* shorten signature */
426 if ((unsigned)get_bits_long(&s->gb, 32) != bswap_32(ff_get_fourcc("ajkg"))) { 426 if (get_bits_long(&s->gb, 32) != bswap_32(ff_get_fourcc("ajkg"))) {
427 return -1; 427 return -1;
428 } 428 }
429 429
diff --git a/firmware/target/mips/ingenic_jz47xx/system-target.h b/firmware/target/mips/ingenic_jz47xx/system-target.h
index 232412d0c7..1f8c388ec6 100644
--- a/firmware/target/mips/ingenic_jz47xx/system-target.h
+++ b/firmware/target/mips/ingenic_jz47xx/system-target.h
@@ -22,6 +22,8 @@
22#ifndef __SYSTEM_TARGET_H_ 22#ifndef __SYSTEM_TARGET_H_
23#define __SYSTEM_TARGET_H_ 23#define __SYSTEM_TARGET_H_
24 24
25#include <inttypes.h>
26
25#include "config.h" 27#include "config.h"
26#include "jz4740.h" 28#include "jz4740.h"
27#include "mipsregs.h" 29#include "mipsregs.h"
@@ -72,9 +74,27 @@ static inline void restore_interrupt(int status)
72#define disable_irq_save() disable_interrupt_save(ST0_IE) 74#define disable_irq_save() disable_interrupt_save(ST0_IE)
73#define restore_irq(c0_status) restore_interrupt(c0_status) 75#define restore_irq(c0_status) restore_interrupt(c0_status)
74 76
75#define swap16(x) (((x) & 0xff) << 8 | ((x) >> 8) & 0xff) 77static inline uint16_t swap16(uint16_t value)
76#define swap32(x) (((x) & 0xff) << 24 | ((x) & 0xff00) << 8 | \ 78 /*
77 ((x) & 0xff0000) >> 8 | ((x) >> 24) & 0xff) 79 result[15..8] = value[ 7..0];
80 result[ 7..0] = value[15..8];
81 */
82{
83 return (value >> 8) | (value << 8);
84}
85
86static inline uint32_t swap32(uint32_t value)
87 /*
88 result[31..24] = value[ 7.. 0];
89 result[23..16] = value[15.. 8];
90 result[15.. 8] = value[23..16];
91 result[ 7.. 0] = value[31..24];
92 */
93{
94 uint32_t hi = swap16(value >> 16);
95 uint32_t lo = swap16(value & 0xffff);
96 return (lo << 16) | hi;
97}
78 98
79#define UNCACHED_ADDRESS(addr) ((unsigned int)(addr) | 0xA0000000) 99#define UNCACHED_ADDRESS(addr) ((unsigned int)(addr) | 0xA0000000)
80#define UNCACHED_ADDR(x) UNCACHED_ADDRESS((x)) 100#define UNCACHED_ADDR(x) UNCACHED_ADDRESS((x))