1/* 2 * Required definitions before including this file: 3 * 4 * #define BOOL_FIELD(x) 5 * #define TYPED_FIELD(type, x, default) 6 */ 7 8BOOL_FIELD(ext_zba) 9BOOL_FIELD(ext_zbb) 10BOOL_FIELD(ext_zbc) 11BOOL_FIELD(ext_zbkb) 12BOOL_FIELD(ext_zbkc) 13BOOL_FIELD(ext_zbkx) 14BOOL_FIELD(ext_zbs) 15BOOL_FIELD(ext_zca) 16BOOL_FIELD(ext_zcb) 17BOOL_FIELD(ext_zcd) 18BOOL_FIELD(ext_zce) 19BOOL_FIELD(ext_zcf) 20BOOL_FIELD(ext_zcmp) 21BOOL_FIELD(ext_zcmt) 22BOOL_FIELD(ext_zk) 23BOOL_FIELD(ext_zkn) 24BOOL_FIELD(ext_zknd) 25BOOL_FIELD(ext_zkne) 26BOOL_FIELD(ext_zknh) 27BOOL_FIELD(ext_zkr) 28BOOL_FIELD(ext_zks) 29BOOL_FIELD(ext_zksed) 30BOOL_FIELD(ext_zksh) 31BOOL_FIELD(ext_zkt) 32BOOL_FIELD(ext_zifencei) 33BOOL_FIELD(ext_zicntr) 34BOOL_FIELD(ext_zicsr) 35BOOL_FIELD(ext_zicbom) 36BOOL_FIELD(ext_zicbop) 37BOOL_FIELD(ext_zicboz) 38BOOL_FIELD(ext_zicfilp) 39BOOL_FIELD(ext_zicfiss) 40BOOL_FIELD(ext_zicond) 41BOOL_FIELD(ext_zihintntl) 42BOOL_FIELD(ext_zihintpause) 43BOOL_FIELD(ext_zihpm) 44BOOL_FIELD(ext_zimop) 45BOOL_FIELD(ext_zcmop) 46BOOL_FIELD(ext_ztso) 47BOOL_FIELD(ext_smstateen) 48BOOL_FIELD(ext_sstc) 49BOOL_FIELD(ext_smcdeleg) 50BOOL_FIELD(ext_ssccfg) 51BOOL_FIELD(ext_smcntrpmf) 52BOOL_FIELD(ext_smcsrind) 53BOOL_FIELD(ext_sscsrind) 54BOOL_FIELD(ext_ssdbltrp) 55BOOL_FIELD(ext_smdbltrp) 56BOOL_FIELD(ext_svadu) 57BOOL_FIELD(ext_svinval) 58BOOL_FIELD(ext_svnapot) 59BOOL_FIELD(ext_svpbmt) 60BOOL_FIELD(ext_svrsw60t59b) 61BOOL_FIELD(ext_svvptc) 62BOOL_FIELD(ext_svukte) 63BOOL_FIELD(ext_zdinx) 64BOOL_FIELD(ext_zaamo) 65BOOL_FIELD(ext_zacas) 66BOOL_FIELD(ext_zama16b) 67BOOL_FIELD(ext_zabha) 68BOOL_FIELD(ext_zalrsc) 69BOOL_FIELD(ext_zawrs) 70BOOL_FIELD(ext_zfa) 71BOOL_FIELD(ext_zfbfmin) 72BOOL_FIELD(ext_zfh) 73BOOL_FIELD(ext_zfhmin) 74BOOL_FIELD(ext_zfinx) 75BOOL_FIELD(ext_zhinx) 76BOOL_FIELD(ext_zhinxmin) 77BOOL_FIELD(ext_zve32f) 78BOOL_FIELD(ext_zve32x) 79BOOL_FIELD(ext_zve64f) 80BOOL_FIELD(ext_zve64d) 81BOOL_FIELD(ext_zve64x) 82BOOL_FIELD(ext_zvbb) 83BOOL_FIELD(ext_zvbc) 84BOOL_FIELD(ext_zvkb) 85BOOL_FIELD(ext_zvkg) 86BOOL_FIELD(ext_zvkned) 87BOOL_FIELD(ext_zvknha) 88BOOL_FIELD(ext_zvknhb) 89BOOL_FIELD(ext_zvksed) 90BOOL_FIELD(ext_zvksh) 91BOOL_FIELD(ext_zvkt) 92BOOL_FIELD(ext_zvkn) 93BOOL_FIELD(ext_zvknc) 94BOOL_FIELD(ext_zvkng) 95BOOL_FIELD(ext_zvks) 96BOOL_FIELD(ext_zvksc) 97BOOL_FIELD(ext_zvksg) 98BOOL_FIELD(ext_zmmul) 99BOOL_FIELD(ext_zvfbfmin) 100BOOL_FIELD(ext_zvfbfwma) 101BOOL_FIELD(ext_zvfh) 102BOOL_FIELD(ext_zvfhmin) 103BOOL_FIELD(ext_smaia) 104BOOL_FIELD(ext_ssaia) 105BOOL_FIELD(ext_smctr) 106BOOL_FIELD(ext_ssctr) 107BOOL_FIELD(ext_sscofpmf) 108BOOL_FIELD(ext_smepmp) 109BOOL_FIELD(ext_smrnmi) 110BOOL_FIELD(ext_ssnpm) 111BOOL_FIELD(ext_smnpm) 112BOOL_FIELD(ext_smmpm) 113BOOL_FIELD(ext_sspm) 114BOOL_FIELD(ext_supm) 115BOOL_FIELD(rvv_ta_all_1s) 116BOOL_FIELD(rvv_ma_all_1s) 117BOOL_FIELD(rvv_vl_half_avl) 118BOOL_FIELD(rvv_vsetvl_x0_vill) 119/* Named features */ 120BOOL_FIELD(ext_svade) 121BOOL_FIELD(ext_zic64b) 122BOOL_FIELD(ext_ssstateen) 123BOOL_FIELD(ext_sha) 124 125/* 126 * Always 'true' booleans for named features 127 * TCG always implement/can't be user disabled, 128 * based on spec version. 129 */ 130BOOL_FIELD(has_priv_1_13) 131BOOL_FIELD(has_priv_1_12) 132BOOL_FIELD(has_priv_1_11) 133 134/* Always enabled for TCG if has_priv_1_11 */ 135BOOL_FIELD(ext_ziccrse) 136 137/* Vendor-specific custom extensions */ 138BOOL_FIELD(ext_xtheadba) 139BOOL_FIELD(ext_xtheadbb) 140BOOL_FIELD(ext_xtheadbs) 141BOOL_FIELD(ext_xtheadcmo) 142BOOL_FIELD(ext_xtheadcondmov) 143BOOL_FIELD(ext_xtheadfmemidx) 144BOOL_FIELD(ext_xtheadfmv) 145BOOL_FIELD(ext_xtheadmac) 146BOOL_FIELD(ext_xtheadmemidx) 147BOOL_FIELD(ext_xtheadmempair) 148BOOL_FIELD(ext_xtheadsync) 149BOOL_FIELD(ext_XVentanaCondOps) 150 151BOOL_FIELD(mmu) 152BOOL_FIELD(pmp) 153BOOL_FIELD(debug) 154BOOL_FIELD(misa_w) 155 156BOOL_FIELD(short_isa_string) 157 158TYPED_FIELD(uint32_t, mvendorid, 0) 159TYPED_FIELD(uint64_t, marchid, 0) 160TYPED_FIELD(uint64_t, mimpid, 0) 161 162TYPED_FIELD(uint32_t, pmu_mask, 0) 163TYPED_FIELD(uint16_t, vlenb, 0) 164TYPED_FIELD(uint16_t, elen, 0) 165TYPED_FIELD(uint16_t, cbom_blocksize, 0) 166TYPED_FIELD(uint16_t, cbop_blocksize, 0) 167TYPED_FIELD(uint16_t, cboz_blocksize, 0) 168TYPED_FIELD(uint8_t, pmp_regions, 0) 169 170TYPED_FIELD(int8_t, max_satp_mode, -1) 171 172#undef BOOL_FIELD 173#undef TYPED_FIELD 174