From 23f35aa5595f01d80e669bc3ca98fc0428837244 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 21 May 2010 08:01:14 +0000 Subject: 2010-05-21 Sebastian Huber * include/utility.h: Macros use now first and last bit values instead of shift and length parameters. --- c/src/lib/libbsp/shared/ChangeLog | 5 +++++ c/src/lib/libbsp/shared/include/utility.h | 16 ++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) (limited to 'c') diff --git a/c/src/lib/libbsp/shared/ChangeLog b/c/src/lib/libbsp/shared/ChangeLog index ce5c2bb935..cef67f0065 100644 --- a/c/src/lib/libbsp/shared/ChangeLog +++ b/c/src/lib/libbsp/shared/ChangeLog @@ -1,3 +1,8 @@ +2010-05-21 Sebastian Huber + + * include/utility.h: Macros use now first and last bit values instead + of shift and length parameters. + 2010-05-20 Sebastian Huber * include/utility.h: Removed superfluous macros. diff --git a/c/src/lib/libbsp/shared/include/utility.h b/c/src/lib/libbsp/shared/include/utility.h index a55dd13ca0..8bdee179f4 100644 --- a/c/src/lib/libbsp/shared/include/utility.h +++ b/c/src/lib/libbsp/shared/include/utility.h @@ -27,16 +27,16 @@ #define BIT32(bit) \ ((uint32_t) 1 << (bit)) -#define MASK32(shift, length) \ - ((BIT32(length) - (uint32_t) 1) << (shift)) +#define MASK32(first_bit, last_bit) \ + ((BIT32((last_bit) - (first_bit) + 1) - (uint32_t) 1) << (first_bit)) -#define FIELD32(val, shift, length) \ - (((uint32_t) (val) << (shift)) & MASK32(shift, length)) +#define FIELD32(val, first_bit, last_bit) \ + (((uint32_t) (val) << (first_bit)) & MASK32(first_bit, last_bit)) -#define GETFIELD32(reg, shift, length) \ - (((uint32_t) (reg) & MASK32(shift, length)) >> (shift)) +#define GETFIELD32(reg, first_bit, last_bit) \ + (((reg) & MASK32(first_bit, last_bit)) >> (first_bit)) -#define SETFIELD32(reg, val, shift, length) \ - (((uint32_t) (reg) & ~MASK32(shift, length)) | FIELD(val, shift, length)) +#define SETFIELD32(reg, val, first_bit, last_bit) \ + (((reg) & ~MASK32(first_bit, last_bit)) | FIELD32(val, first_bit, last_bit)) #endif /* LIBCPU_SHARED_UTILITY_H */ -- cgit v1.2.3