[][src]Enum riscv_sandbox::isa::CsrId

pub enum CsrId {
    USTATUS,
    UIE,
    UTVEC,
    USCRATCH,
    UEPC,
    UCAUSE,
    UTVAL,
    UIP,
    FFLAGS,
    FRM,
    FCSR,
    CYCLE,
    TIME,
    INSTRET,
    HPMCOUNTER03,
    HPMCOUNTER04,
    HPMCOUNTER05,
    HPMCOUNTER06,
    HPMCOUNTER07,
    HPMCOUNTER08,
    HPMCOUNTER09,
    HPMCOUNTER10,
    HPMCOUNTER11,
    HPMCOUNTER12,
    HPMCOUNTER13,
    HPMCOUNTER14,
    HPMCOUNTER15,
    HPMCOUNTER16,
    HPMCOUNTER17,
    HPMCOUNTER18,
    HPMCOUNTER19,
    HPMCOUNTER20,
    HPMCOUNTER21,
    HPMCOUNTER22,
    HPMCOUNTER23,
    HPMCOUNTER24,
    HPMCOUNTER25,
    HPMCOUNTER26,
    HPMCOUNTER27,
    HPMCOUNTER28,
    HPMCOUNTER29,
    HPMCOUNTER30,
    HPMCOUNTER31,
    CYCLEH,
    TIMEH,
    INSTRETH,
    HPMCOUNTER03H,
    HPMCOUNTER04H,
    HPMCOUNTER05H,
    HPMCOUNTER06H,
    HPMCOUNTER07H,
    HPMCOUNTER08H,
    HPMCOUNTER09H,
    HPMCOUNTER10H,
    HPMCOUNTER11H,
    HPMCOUNTER12H,
    HPMCOUNTER13H,
    HPMCOUNTER14H,
    HPMCOUNTER15H,
    HPMCOUNTER16H,
    HPMCOUNTER17H,
    HPMCOUNTER18H,
    HPMCOUNTER19H,
    HPMCOUNTER20H,
    HPMCOUNTER21H,
    HPMCOUNTER22H,
    HPMCOUNTER23H,
    HPMCOUNTER24H,
    HPMCOUNTER25H,
    HPMCOUNTER26H,
    HPMCOUNTER27H,
    HPMCOUNTER28H,
    HPMCOUNTER29H,
    HPMCOUNTER30H,
    HPMCOUNTER31H,
    SSTATUS,
    SEDELEG,
    SIDELEG,
    SIE,
    STVEC,
    SCOUNTEREN,
    SSCRATCH,
    SEPC,
    SCAUSE,
    STVAL,
    SIP,
    SATP,
    HSTATUS,
    HEDELEG,
    HIDELEG,
    HGATP,
    BSSTATUS,
    BSIE,
    BSTVEC,
    BSSCRATCH,
    BSEPC,
    BSCAUSE,
    BSTVAL,
    BSIP,
    BSATP,
    MVENDORID,
    MARCHID,
    MIMPID,
    MHARTID,
    MSTATUS,
    MISA,
    MEDELEG,
    MIDELEG,
    MIE,
    MTVEC,
    MCOUNTEREN,
    MSCRATCH,
    MEPC,
    MCAUSE,
    MTVAL,
    MIP,
    PMPCFG0,
    PMPCFG1,
    PMPCFG2,
    PMPCFG3,
    PMPADDR00,
    PMPADDR01,
    PMPADDR02,
    PMPADDR03,
    PMPADDR04,
    PMPADDR05,
    PMPADDR06,
    PMPADDR07,
    PMPADDR08,
    PMPADDR09,
    PMPADDR10,
    PMPADDR11,
    PMPADDR12,
    PMPADDR13,
    PMPADDR14,
    PMPADDR15,
    MCYCLE,
    MINSTRET,
    MHMPCOUNTER03,
    MHMPCOUNTER04,
    MHMPCOUNTER05,
    MHMPCOUNTER06,
    MHMPCOUNTER07,
    MHMPCOUNTER08,
    MHMPCOUNTER09,
    MHMPCOUNTER10,
    MHMPCOUNTER11,
    MHMPCOUNTER12,
    MHMPCOUNTER13,
    MHMPCOUNTER14,
    MHMPCOUNTER15,
    MHMPCOUNTER16,
    MHMPCOUNTER17,
    MHMPCOUNTER18,
    MHMPCOUNTER19,
    MHMPCOUNTER20,
    MHMPCOUNTER21,
    MHMPCOUNTER22,
    MHMPCOUNTER23,
    MHMPCOUNTER24,
    MHMPCOUNTER25,
    MHMPCOUNTER26,
    MHMPCOUNTER27,
    MHMPCOUNTER28,
    MHMPCOUNTER29,
    MHMPCOUNTER30,
    MHMPCOUNTER31,
    MCYCLEH,
    MINSTRETH,
    MHMPCOUNTER03H,
    MHMPCOUNTER04H,
    MHMPCOUNTER05H,
    MHMPCOUNTER06H,
    MHMPCOUNTER07H,
    MHMPCOUNTER08H,
    MHMPCOUNTER09H,
    MHMPCOUNTER10H,
    MHMPCOUNTER11H,
    MHMPCOUNTER12H,
    MHMPCOUNTER13H,
    MHMPCOUNTER14H,
    MHMPCOUNTER15H,
    MHMPCOUNTER16H,
    MHMPCOUNTER17H,
    MHMPCOUNTER18H,
    MHMPCOUNTER19H,
    MHMPCOUNTER20H,
    MHMPCOUNTER21H,
    MHMPCOUNTER22H,
    MHMPCOUNTER23H,
    MHMPCOUNTER24H,
    MHMPCOUNTER25H,
    MHMPCOUNTER26H,
    MHMPCOUNTER27H,
    MHMPCOUNTER28H,
    MHMPCOUNTER29H,
    MHMPCOUNTER30H,
    MHMPCOUNTER31H,
    MCOUNTINHIBIT,
    MHPEVENT03,
    MHPEVENT04,
    MHPEVENT05,
    MHPEVENT06,
    MHPEVENT07,
    MHPEVENT08,
    MHPEVENT09,
    MHPEVENT10,
    MHPEVENT11,
    MHPEVENT12,
    MHPEVENT13,
    MHPEVENT14,
    MHPEVENT15,
    MHPEVENT16,
    MHPEVENT17,
    MHPEVENT18,
    MHPEVENT19,
    MHPEVENT20,
    MHPEVENT21,
    MHPEVENT22,
    MHPEVENT23,
    MHPEVENT24,
    MHPEVENT25,
    MHPEVENT26,
    MHPEVENT27,
    MHPEVENT28,
    MHPEVENT29,
    MHPEVENT30,
    MHPEVENT31,
    TSELECT,
    TDATA1,
    TDATA2,
    TDATA3,
    DCSR,
    DPC,
    DSCRATCH0,
    DSCRATCH1,
}

This type represents a CSR's (Control State Register) ID in the CSR table

These registers are 12-bits indexed and used by the software to either control the machine (e.g. modify privilege mode, register interruption handlers ...), or know about its state (e.g. available extensions , performances counters ...).

You can match any CsrId with its implemented constants. This structure helps representing a CSR ID as what it really is in hardware (12bits number) and adds some helper functions to easily get privilege the R/W permissions and privilege level of the indexed register.

Variants

USTATUS
UIE
UTVEC
USCRATCH
UEPC
UCAUSE
UTVAL
UIP
FFLAGS
FRM
FCSR
CYCLE
TIME
INSTRET
HPMCOUNTER03
HPMCOUNTER04
HPMCOUNTER05
HPMCOUNTER06
HPMCOUNTER07
HPMCOUNTER08
HPMCOUNTER09
HPMCOUNTER10
HPMCOUNTER11
HPMCOUNTER12
HPMCOUNTER13
HPMCOUNTER14
HPMCOUNTER15
HPMCOUNTER16
HPMCOUNTER17
HPMCOUNTER18
HPMCOUNTER19
HPMCOUNTER20
HPMCOUNTER21
HPMCOUNTER22
HPMCOUNTER23
HPMCOUNTER24
HPMCOUNTER25
HPMCOUNTER26
HPMCOUNTER27
HPMCOUNTER28
HPMCOUNTER29
HPMCOUNTER30
HPMCOUNTER31
CYCLEH
TIMEH
INSTRETH
HPMCOUNTER03H
HPMCOUNTER04H
HPMCOUNTER05H
HPMCOUNTER06H
HPMCOUNTER07H
HPMCOUNTER08H
HPMCOUNTER09H
HPMCOUNTER10H
HPMCOUNTER11H
HPMCOUNTER12H
HPMCOUNTER13H
HPMCOUNTER14H
HPMCOUNTER15H
HPMCOUNTER16H
HPMCOUNTER17H
HPMCOUNTER18H
HPMCOUNTER19H
HPMCOUNTER20H
HPMCOUNTER21H
HPMCOUNTER22H
HPMCOUNTER23H
HPMCOUNTER24H
HPMCOUNTER25H
HPMCOUNTER26H
HPMCOUNTER27H
HPMCOUNTER28H
HPMCOUNTER29H
HPMCOUNTER30H
HPMCOUNTER31H
SSTATUS
SEDELEG
SIDELEG
SIE
STVEC
SCOUNTEREN
SSCRATCH
SEPC
SCAUSE
STVAL
SIP
SATP
HSTATUS
HEDELEG
HIDELEG
HGATP
BSSTATUS
BSIE
BSTVEC
BSSCRATCH
BSEPC
BSCAUSE
BSTVAL
BSIP
BSATP
MVENDORID
MARCHID
MIMPID
MHARTID
MSTATUS
MISA
MEDELEG
MIDELEG
MIE
MTVEC
MCOUNTEREN
MSCRATCH
MEPC
MCAUSE
MTVAL
MIP
PMPCFG0
PMPCFG1
PMPCFG2
PMPCFG3
PMPADDR00
PMPADDR01
PMPADDR02
PMPADDR03
PMPADDR04
PMPADDR05
PMPADDR06
PMPADDR07
PMPADDR08
PMPADDR09
PMPADDR10
PMPADDR11
PMPADDR12
PMPADDR13
PMPADDR14
PMPADDR15
MCYCLE
MINSTRET
MHMPCOUNTER03
MHMPCOUNTER04
MHMPCOUNTER05
MHMPCOUNTER06
MHMPCOUNTER07
MHMPCOUNTER08
MHMPCOUNTER09
MHMPCOUNTER10
MHMPCOUNTER11
MHMPCOUNTER12
MHMPCOUNTER13
MHMPCOUNTER14
MHMPCOUNTER15
MHMPCOUNTER16
MHMPCOUNTER17
MHMPCOUNTER18
MHMPCOUNTER19
MHMPCOUNTER20
MHMPCOUNTER21
MHMPCOUNTER22
MHMPCOUNTER23
MHMPCOUNTER24
MHMPCOUNTER25
MHMPCOUNTER26
MHMPCOUNTER27
MHMPCOUNTER28
MHMPCOUNTER29
MHMPCOUNTER30
MHMPCOUNTER31
MCYCLEH
MINSTRETH
MHMPCOUNTER03H
MHMPCOUNTER04H
MHMPCOUNTER05H
MHMPCOUNTER06H
MHMPCOUNTER07H
MHMPCOUNTER08H
MHMPCOUNTER09H
MHMPCOUNTER10H
MHMPCOUNTER11H
MHMPCOUNTER12H
MHMPCOUNTER13H
MHMPCOUNTER14H
MHMPCOUNTER15H
MHMPCOUNTER16H
MHMPCOUNTER17H
MHMPCOUNTER18H
MHMPCOUNTER19H
MHMPCOUNTER20H
MHMPCOUNTER21H
MHMPCOUNTER22H
MHMPCOUNTER23H
MHMPCOUNTER24H
MHMPCOUNTER25H
MHMPCOUNTER26H
MHMPCOUNTER27H
MHMPCOUNTER28H
MHMPCOUNTER29H
MHMPCOUNTER30H
MHMPCOUNTER31H
MCOUNTINHIBIT
MHPEVENT03
MHPEVENT04
MHPEVENT05
MHPEVENT06
MHPEVENT07
MHPEVENT08
MHPEVENT09
MHPEVENT10
MHPEVENT11
MHPEVENT12
MHPEVENT13
MHPEVENT14
MHPEVENT15
MHPEVENT16
MHPEVENT17
MHPEVENT18
MHPEVENT19
MHPEVENT20
MHPEVENT21
MHPEVENT22
MHPEVENT23
MHPEVENT24
MHPEVENT25
MHPEVENT26
MHPEVENT27
MHPEVENT28
MHPEVENT29
MHPEVENT30
MHPEVENT31
TSELECT
TDATA1
TDATA2
TDATA3
DCSR
DPC
DSCRATCH0
DSCRATCH1

Methods

impl CsrId[src]

pub fn mode(&self) -> u8[src]

pub fn level(&self) -> u8[src]

Trait Implementations

impl From<u16> for CsrId[src]

impl Clone for CsrId[src]

impl Copy for CsrId[src]

impl Eq for CsrId[src]

impl PartialEq<CsrId> for CsrId[src]

impl Debug for CsrId[src]

impl StructuralPartialEq for CsrId[src]

impl StructuralEq for CsrId[src]

Auto Trait Implementations

impl Send for CsrId

impl Sync for CsrId

impl Unpin for CsrId

impl UnwindSafe for CsrId

impl RefUnwindSafe for CsrId

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]