# marchid.rs - source
Source of the Rust file `/home/runner/.cargo/git/checkouts/riscv-ab2abd16c438337b/11d43cf/src/register/marchid.rs`.
Keywords: rust, rustlang, rust-lang

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27

    //! marchid register

    use core::num::NonZeroUsize;

    /// marchid register
    #[derive(Clone, Copy, Debug)]
    pub struct Marchid {
        bits: NonZeroUsize,
    }

    impl Marchid {
        /// Returns the contents of the register as raw bits
        pub fn bits(&self) -> usize {
            self.bits.get()
        }
    }

    read_csr!(0xF11, __read_marchid);

    /// Reads the CSR
    #[inline]
    pub fn read() -> Option<Marchid> {
        let r = unsafe { _read() };
        // When marchid is hardwired to zero it means that the marchid
        // csr isn't implemented.
        NonZeroUsize::new(r).map(|bits| Marchid { bits })
    }