aarch32_cpu/register/armv8r/
vbar.rs1use crate::register::{SysReg, SysRegRead, SysRegWrite};
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9#[repr(transparent)]
10#[cfg_attr(feature = "defmt", derive(defmt::Format))]
11#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12pub struct Vbar(pub u32);
13
14impl SysReg for Vbar {
15 const CP: u32 = 15;
16 const CRN: u32 = 12;
17 const OP1: u32 = 0;
18 const CRM: u32 = 0;
19 const OP2: u32 = 0;
20}
21
22impl SysRegRead for Vbar {}
23
24impl SysRegWrite for Vbar {}
25
26impl Vbar {
27 #[inline]
29 pub fn read() -> Vbar {
30 unsafe { Self(<Self as SysRegRead>::read_raw()) }
32 }
33
34 #[inline]
41 pub unsafe fn write(value: Self) {
42 unsafe {
44 <Self as SysRegWrite>::write_raw(value.0 as u32);
45 }
46 }
47}