diff options
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/shared/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/shared/include/utility.h | 16 |
2 files changed, 13 insertions, 8 deletions
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 <sebastian.huber@embedded-brains.de> + + * include/utility.h: Macros use now first and last bit values instead + of shift and length parameters. + 2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de> * 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 */ |