[][src]Macro ruspiro_register::define_aarch32_register

macro_rules! define_aarch32_register {
    (@$name:ident $crn:ident, $op1:tt, $crm:ident, $op2:tt { $($field:ident OFFSET($offset:expr) $(BITS($bits:expr))? $([ $($enum:ident : $value:expr),* ])?),* }) => { ... };
}

Macro to define an Aarch32 (CP15) system register and its fields

Examples

define_aarch32_register! {
    foo {
        BAR OFFSET(0) [
            VAL1: 0b1,
            VAL0: 0b0
        ],
        BAZ OFFSET(1) BITS(2) [
            VAL1: 0b01,
            VAL2: 0b10,
            VAL3: 0b11
        ]
    }
}

    foo::write(
        foo::BAR::VAL1 | foo::BAZ::VAL2
    );