From 7c5f5f5c531481964a4a069a0b59a93618d62c91 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Fri, 19 Nov 2004 00:30:28 +0000 Subject: iRiver: SWAB16 and SWAB32 macros git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5433 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/system.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'firmware/export/system.h') diff --git a/firmware/export/system.h b/firmware/export/system.h index 1205e9360b..09efbeeda4 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -155,6 +155,28 @@ static inline int set_irq_level(int level) return oldlevel; } +static inline unsigned short SWAB16(unsigned short value) + /* + result[15..8] = value[ 7..0]; + result[ 7..0] = value[15..8]; + */ +{ + return (value >> 8) | (value << 8); +} + +static inline unsigned long SWAB32(unsigned long 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]; + */ +{ + unsigned short hi = SWAB16(value >> 16); + unsigned short lo = SWAB16(value & 0xffff); + return (lo << 16) | hi; +} + #endif #endif -- cgit v1.2.3