From b0bdc4e2f2b4fd31ae3b0ebf47765e88c4c37556 Mon Sep 17 00:00:00 2001 From: Mathias K Date: Wed, 2 Feb 2011 17:38:38 +0100 Subject: 24bit buffer support Hello, this patch add 24bit support to the target buffer functions and little/big endian functions. Regards, Mathias --- src/target/target.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/target/target.c') diff --git a/src/target/target.c b/src/target/target.c index 66aa6bf7..3a6c6bb4 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -280,6 +280,15 @@ uint32_t target_buffer_get_u32(struct target *target, const uint8_t *buffer) return be_to_h_u32(buffer); } +/* read a uint24_t from a buffer in target memory endianness */ +uint32_t target_buffer_get_u24(struct target *target, const uint8_t *buffer) +{ + if (target->endianness == TARGET_LITTLE_ENDIAN) + return le_to_h_u24(buffer); + else + return be_to_h_u24(buffer); +} + /* read a uint16_t from a buffer in target memory endianness */ uint16_t target_buffer_get_u16(struct target *target, const uint8_t *buffer) { @@ -304,6 +313,15 @@ void target_buffer_set_u32(struct target *target, uint8_t *buffer, uint32_t valu h_u32_to_be(buffer, value); } +/* write a uint24_t to a buffer in target memory endianness */ +void target_buffer_set_u24(struct target *target, uint8_t *buffer, uint32_t value) +{ + if (target->endianness == TARGET_LITTLE_ENDIAN) + h_u24_to_le(buffer, value); + else + h_u24_to_be(buffer, value); +} + /* write a uint16_t to a buffer in target memory endianness */ void target_buffer_set_u16(struct target *target, uint8_t *buffer, uint16_t value) { -- cgit v1.2.3