[][src]Macro ruspiro_register::define_aarch64_register

macro_rules! define_aarch64_register {
    (@$name:ident<$t:ty> { $($field:ident OFFSET($offset:expr) $(BITS($bits:expr))? $([ $($enum:ident : $value:expr),* ])?),* }) => { ... };
}

Macro to define an Aarch64 system register and its fields

Examples


define_aarch64_register! {
    foo<u32> {
        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
    );