summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-21 08:01:14 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-05-21 08:01:14 +0000
commit23f35aa5595f01d80e669bc3ca98fc0428837244 (patch)
tree28f02ccb8efb776d24160941b2be8ee4ddba7738 /c
parent2010-05-20 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-23f35aa5595f01d80e669bc3ca98fc0428837244.tar.bz2
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.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/shared/ChangeLog5
-rw-r--r--c/src/lib/libbsp/shared/include/utility.h16
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 */