I have a number of I/O mapped registers that look like:
struct Dev {
.. // u32 fields
}
pub static Dev0 : *mut Dev = 0xsomeaddr as *mut Dev;
with macro-generated getters and setters:
pub fn $getter_name(&self) -> u32 {
unsafe { volatile_load(&(self.$reg)) }
}
unfortunately, calling a getter is calling a method on *Reg, which is
unsafe and looks like:
unsafe { (*Dev0).SOME_REG() };
is there any way to simplify the syntax, hopefully to simple
Dev0.SOME_REG()? I'm ok with any "unsafe" tricks including transmuting it
to &Dev (that doesn't seem to be possible though), as the getter/setter
methods are always safe in this scenario.
--
Sincerely,
Vladimir "Farcaller" Pouzanov
http://farcaller.net/
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev