summaryrefslogtreecommitdiff
path: root/src/helper
diff options
context:
space:
mode:
authorMathias K <kesmtp@freenet.de>2011-02-02 17:38:38 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2011-02-03 12:23:55 +0100
commitb0bdc4e2f2b4fd31ae3b0ebf47765e88c4c37556 (patch)
treef0d7ba0d2d7fd04707ef3d06b6b3ffbe97fb8e81 /src/helper
parentaaf145c42201496007e0fc9168d9738cb0237717 (diff)
downloadopenocd+libswd-b0bdc4e2f2b4fd31ae3b0ebf47765e88c4c37556.tar.gz
openocd+libswd-b0bdc4e2f2b4fd31ae3b0ebf47765e88c4c37556.tar.bz2
openocd+libswd-b0bdc4e2f2b4fd31ae3b0ebf47765e88c4c37556.tar.xz
openocd+libswd-b0bdc4e2f2b4fd31ae3b0ebf47765e88c4c37556.zip
24bit buffer support
Hello, this patch add 24bit support to the target buffer functions and little/big endian functions. Regards, Mathias
Diffstat (limited to 'src/helper')
-rw-r--r--src/helper/types.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/helper/types.h b/src/helper/types.h
index 04b00594..12b95150 100644
--- a/src/helper/types.h
+++ b/src/helper/types.h
@@ -116,6 +116,11 @@ static inline uint32_t le_to_h_u32(const uint8_t* buf)
return (uint32_t)(buf[0] | buf[1] << 8 | buf[2] << 16 | buf[3] << 24);
}
+static inline uint32_t le_to_h_u24(const uint8_t* buf)
+{
+ return (uint32_t)(buf[0] | buf[1] << 8 | buf[2] << 16);
+}
+
static inline uint16_t le_to_h_u16(const uint8_t* buf)
{
return (uint16_t)(buf[0] | buf[1] << 8);
@@ -126,6 +131,11 @@ static inline uint32_t be_to_h_u32(const uint8_t* buf)
return (uint32_t)(buf[3] | buf[2] << 8 | buf[1] << 16 | buf[0] << 24);
}
+static inline uint32_t be_to_h_u24(const uint8_t* buf)
+{
+ return (uint32_t)(buf[2] | buf[1] << 8 | buf[0] << 16);
+}
+
static inline uint16_t be_to_h_u16(const uint8_t* buf)
{
return (uint16_t)(buf[1] | buf[0] << 8);
@@ -147,6 +157,20 @@ static inline void h_u32_to_be(uint8_t* buf, int val)
buf[3] = (uint8_t) (val >> 0);
}
+static inline void h_u24_to_le(uint8_t* buf, int val)
+{
+ buf[2] = (uint8_t) (val >> 16);
+ buf[1] = (uint8_t) (val >> 8);
+ buf[0] = (uint8_t) (val >> 0);
+}
+
+static inline void h_u24_to_be(uint8_t* buf, int val)
+{
+ buf[0] = (uint8_t) (val >> 16);
+ buf[1] = (uint8_t) (val >> 8);
+ buf[2] = (uint8_t) (val >> 0);
+}
+
static inline void h_u16_to_le(uint8_t* buf, int val)
{
buf[1] = (uint8_t) (val >> 8);