From 70489132fbb42f0a3ce638f0eaa20694f852980c Mon Sep 17 00:00:00 2001 From: Brad Bondurant Date: Thu, 17 Nov 2022 08:33:57 -0500 Subject: [PATCH] libregister: add macro for multi-bit RO fields --- libregister/src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libregister/src/lib.rs b/libregister/src/lib.rs index a091f46..814ef67 100644 --- a/libregister/src/lib.rs +++ b/libregister/src/lib.rs @@ -290,6 +290,19 @@ macro_rules! register_bits { } } ); + + ($mod_name: ident, $(#[$outer:meta])* $name: ident, $type: ty, $bit_begin: expr, $bit_end: expr, RO) => ( + impl $mod_name::Read { + #[allow(unused)] + #[inline] + $(#[$outer])* + pub fn $name(&self) -> $type { + use bit_field::BitField; + + self.inner.get_bits($bit_begin..=$bit_end) as $type + } + } + ); } /// Define a multi-bit field of a register, coerced to a certain type