12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- //! mip register
- use bit_field::BitField;
- /// mip register
- #[derive(Clone, Copy, Debug)]
- pub struct Mip {
- bits: usize,
- }
- impl Mip {
- /// Returns the contents of the register as raw bits
- #[inline]
- pub fn bits(&self) -> usize {
- self.bits
- }
- /// User Software Interrupt Pending
- #[inline]
- pub fn usoft(&self) -> bool {
- self.bits.get_bit(0)
- }
- /// Supervisor Software Interrupt Pending
- #[inline]
- pub fn ssoft(&self) -> bool {
- self.bits.get_bit(1)
- }
- /// Machine Software Interrupt Pending
- #[inline]
- pub fn msoft(&self) -> bool {
- self.bits.get_bit(3)
- }
- /// User Timer Interrupt Pending
- #[inline]
- pub fn utimer(&self) -> bool {
- self.bits.get_bit(4)
- }
- /// Supervisor Timer Interrupt Pending
- #[inline]
- pub fn stimer(&self) -> bool {
- self.bits.get_bit(5)
- }
- /// Machine Timer Interrupt Pending
- #[inline]
- pub fn mtimer(&self) -> bool {
- self.bits.get_bit(7)
- }
- /// User External Interrupt Pending
- #[inline]
- pub fn uext(&self) -> bool {
- self.bits.get_bit(8)
- }
- /// Supervisor External Interrupt Pending
- #[inline]
- pub fn sext(&self) -> bool {
- self.bits.get_bit(9)
- }
- /// Machine External Interrupt Pending
- #[inline]
- pub fn mext(&self) -> bool {
- self.bits.get_bit(11)
- }
- }
- read_csr_as!(Mip, 0x344, __read_mip);
|