riscv-aia 0.0.0

Low level access to the RISC-V Advanced Interrupt Architecture (AIA)
Documentation
//! Hypervisor virtual interrupt pending high-half (hviph) (RV32 only)

riscv::read_write_csr! {
    /// Upper 32 bits of hvip.
    Hviph: 0x655,
    mask: 0xFFFF_FFFF,
}

impl Hviph {
    #[inline]
    pub const fn raw(self) -> usize {
        self.bits
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::register::hvienh::Hvienh;

    #[test]
    fn hvienh_hviph_raw_roundtrip() {
        let bits: usize = 0xDEAD_BEEFusize & 0xFFFF_FFFF;
        let en = Hvienh::from_bits(bits);
        let p = Hviph::from_bits(bits);
        assert_eq!(en.raw(), bits);
        assert_eq!(p.raw(), bits);
    }
}