Skip to main content

read_write_sysreg

Macro read_write_sysreg 

Source
macro_rules! read_write_sysreg {
    ($sysreg:ident $(: $asm_sysreg:ident)?, $type:ident $(: $bitflags_type:ty)?, safe_read, safe_write $(, $fake_sysregs:expr)?) => { ... };
    ($sysreg:ident : ($coproc:ident, $opc1:literal, $crm:ident, $crn:ident, $opc2:literal), $type:ident $(: $bitflags_type:ty)?, safe_read, safe_write $(, $fake_sysregs:expr)?) => { ... };
    ($sysreg:ident : ($coproc:ident, $opc1:literal, $crm:ident), $type:ident $(: $bitflags_type:ty)?, safe_read, safe_write $(, $fake_sysregs:expr)?) => { ... };
    (
        $(#[$attributes:meta])*
        $sysreg:ident $(: $asm_sysreg:ident)?, $type:ident $(: $bitflags_type:ty)?, safe_read $(, $fake_sysregs:expr)?
    ) => { ... };
    (
        $(#[$attributes:meta])*
        $sysreg:ident : ($coproc:ident, $opc1:literal, $crm:ident, $crn:ident, $opc2:literal), $type:ident $(: $bitflags_type:ty)?, safe_read $(, $fake_sysregs:expr)?
    ) => { ... };
    (
        $(#[$attributes:meta])*
        $sysreg:ident : ($coproc:ident, $opc1:literal, $crm:ident), $type:ident $(: $bitflags_type:ty)?, safe_read $(, $fake_sysregs:expr)?
    ) => { ... };
}
Expand description

Generates public functions named read_$sysreg and write_$sysreg to read or write (respectively) a value of type $type from/to the system register $sysreg.

safe_read and safe_write should only be specified for system registers which are indeed safe to read from or write any value to.