# hpmcounterx.rs - source
Source of the Rust file `/home/runner/.cargo/git/checkouts/riscv-ab2abd16c438337b/11d43cf/src/register/hpmcounterx.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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82

    macro_rules! reg {
        (
            $addr:expr, $csrl:ident, $csrh:ident, $readf:ident, $writef:ident
        ) => {
            /// Performance-monitoring counter
            pub mod $csrl {
                read_csr_as_usize!($addr, $readf);
                read_composite_csr!(super::$csrh::read(), read());
            }
        }
    }

    macro_rules! regh {
        (
            $addr:expr, $csrh:ident, $readf:ident, $writef:ident
        ) => {
            /// Upper 32 bits of performance-monitoring counter (RV32I only)
            pub mod $csrh {
                read_csr_as_usize_rv32!($addr, $readf);
            }
        }
    }

    reg!(0xC03, hpmcounter3,  hpmcounter3h,  __read_hpmcounter3,  __write_hpmcounter3);
    reg!(0xC04, hpmcounter4,  hpmcounter4h,  __read_hpmcounter4,  __write_hpmcounter4);
    reg!(0xC05, hpmcounter5,  hpmcounter5h,  __read_hpmcounter5,  __write_hpmcounter5);
    reg!(0xC06, hpmcounter6,  hpmcounter6h,  __read_hpmcounter6,  __write_hpmcounter6);
    reg!(0xC07, hpmcounter7,  hpmcounter7h,  __read_hpmcounter7,  __write_hpmcounter7);
    reg!(0xC08, hpmcounter8,  hpmcounter8h,  __read_hpmcounter8,  __write_hpmcounter8);
    reg!(0xC09, hpmcounter9,  hpmcounter9h,  __read_hpmcounter9,  __write_hpmcounter9);
    reg!(0xC0A, hpmcounter10, hpmcounter10h, __read_hpmcounter10, __write_hpmcounter10);
    reg!(0xC0B, hpmcounter11, hpmcounter11h, __read_hpmcounter11, __write_hpmcounter11);
    reg!(0xC0C, hpmcounter12, hpmcounter12h, __read_hpmcounter12, __write_hpmcounter12);
    reg!(0xC0D, hpmcounter13, hpmcounter13h, __read_hpmcounter13, __write_hpmcounter13);
    reg!(0xC0E, hpmcounter14, hpmcounter14h, __read_hpmcounter14, __write_hpmcounter14);
    reg!(0xC0F, hpmcounter15, hpmcounter15h, __read_hpmcounter15, __write_hpmcounter15);
    reg!(0xC10, hpmcounter16, hpmcounter16h, __read_hpmcounter16, __write_hpmcounter16);
    reg!(0xC11, hpmcounter17, hpmcounter17h, __read_hpmcounter17, __write_hpmcounter17);
    reg!(0xC12, hpmcounter18, hpmcounter18h, __read_hpmcounter18, __write_hpmcounter18);
    reg!(0xC13, hpmcounter19, hpmcounter19h, __read_hpmcounter19, __write_hpmcounter19);
    reg!(0xC14, hpmcounter20, hpmcounter20h, __read_hpmcounter20, __write_hpmcounter20);
    reg!(0xC15, hpmcounter21, hpmcounter21h, __read_hpmcounter21, __write_hpmcounter21);
    reg!(0xC16, hpmcounter22, hpmcounter22h, __read_hpmcounter22, __write_hpmcounter22);
    reg!(0xC17, hpmcounter23, hpmcounter23h, __read_hpmcounter23, __write_hpmcounter23);
    reg!(0xC18, hpmcounter24, hpmcounter24h, __read_hpmcounter24, __write_hpmcounter24);
    reg!(0xC19, hpmcounter25, hpmcounter25h, __read_hpmcounter25, __write_hpmcounter25);
    reg!(0xC1A, hpmcounter26, hpmcounter26h, __read_hpmcounter26, __write_hpmcounter26);
    reg!(0xC1B, hpmcounter27, hpmcounter27h, __read_hpmcounter27, __write_hpmcounter27);
    reg!(0xC1C, hpmcounter28, hpmcounter28h, __read_hpmcounter28, __write_hpmcounter28);
    reg!(0xC1D, hpmcounter29, hpmcounter29h, __read_hpmcounter29, __write_hpmcounter29);
    reg!(0xC1E, hpmcounter30, hpmcounter30h, __read_hpmcounter30, __write_hpmcounter30);
    reg!(0xC1F, hpmcounter31, hpmcounter31h, __read_hpmcounter31, __write_hpmcounter31);

    regh!(0xC83, hpmcounter3h,  __read_hpmcounter3h,  __write_hpmcounter3h);
    regh!(0xC84, hpmcounter4h,  __read_hpmcounter4h,  __write_hpmcounter4h);
    regh!(0xC85, hpmcounter5h,  __read_hpmcounter5h,  __write_hpmcounter5h);
    regh!(0xC86, hpmcounter6h,  __read_hpmcounter6h,  __write_hpmcounter6h);
    regh!(0xC87, hpmcounter7h,  __read_hpmcounter7h,  __write_hpmcounter7h);
    regh!(0xC88, hpmcounter8h,  __read_hpmcounter8h,  __write_hpmcounter8h);
    regh!(0xC89, hpmcounter9h,  __read_hpmcounter9h,  __write_hpmcounter9h);
    regh!(0xC8A, hpmcounter10h, __read_hpmcounter10h, __write_hpmcounter10h);
    regh!(0xC8B, hpmcounter11h, __read_hpmcounter11h, __write_hpmcounter11h);
    regh!(0xC8C, hpmcounter12h, __read_hpmcounter12h, __write_hpmcounter12h);
    regh!(0xC8D, hpmcounter13h, __read_hpmcounter13h, __write_hpmcounter13h);
    regh!(0xC8E, hpmcounter14h, __read_hpmcounter14h, __write_hpmcounter14h);
    regh!(0xC8F, hpmcounter15h, __read_hpmcounter15h, __write_hpmcounter15h);
    regh!(0xC90, hpmcounter16h, __read_hpmcounter16h, __write_hpmcounter16h);
    regh!(0xC91, hpmcounter17h, __read_hpmcounter17h, __write_hpmcounter17h);
    regh!(0xC92, hpmcounter18h, __read_hpmcounter18h, __write_hpmcounter18h);
    regh!(0xC93, hpmcounter19h, __read_hpmcounter19h, __write_hpmcounter19h);
    regh!(0xC94, hpmcounter20h, __read_hpmcounter20h, __write_hpmcounter20h);
    regh!(0xC95, hpmcounter21h, __read_hpmcounter21h, __write_hpmcounter21h);
    regh!(0xC96, hpmcounter22h, __read_hpmcounter22h, __write_hpmcounter22h);
    regh!(0xC97, hpmcounter23h, __read_hpmcounter23h, __write_hpmcounter23h);
    regh!(0xC98, hpmcounter24h, __read_hpmcounter24h, __write_hpmcounter24h);
    regh!(0xC99, hpmcounter25h, __read_hpmcounter25h, __write_hpmcounter25h);
    regh!(0xC9A, hpmcounter26h, __read_hpmcounter26h, __write_hpmcounter26h);
    regh!(0xC9B, hpmcounter27h, __read_hpmcounter27h, __write_hpmcounter27h);
    regh!(0xC9C, hpmcounter28h, __read_hpmcounter28h, __write_hpmcounter28h);
    regh!(0xC9D, hpmcounter29h, __read_hpmcounter29h, __write_hpmcounter29h);
    regh!(0xC9E, hpmcounter30h, __read_hpmcounter30h, __write_hpmcounter30h);
    regh!(0xC9F, hpmcounter31h, __read_hpmcounter31h, __write_hpmcounter31h);