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_svvptc) 61BOOL_FIELD(ext_svukte) 62BOOL_FIELD(ext_zdinx) 63BOOL_FIELD(ext_zaamo) 64BOOL_FIELD(ext_zacas) 65BOOL_FIELD(ext_zama16b) 66BOOL_FIELD(ext_zabha) 67BOOL_FIELD(ext_zalrsc) 68BOOL_FIELD(ext_zawrs) 69BOOL_FIELD(ext_zfa) 70BOOL_FIELD(ext_zfbfmin) 71BOOL_FIELD(ext_zfh) 72BOOL_FIELD(ext_zfhmin) 73BOOL_FIELD(ext_zfinx) 74BOOL_FIELD(ext_zhinx) 75BOOL_FIELD(ext_zhinxmin) 76BOOL_FIELD(ext_zve32f) 77BOOL_FIELD(ext_zve32x) 78BOOL_FIELD(ext_zve64f) 79BOOL_FIELD(ext_zve64d) 80BOOL_FIELD(ext_zve64x) 81BOOL_FIELD(ext_zvbb) 82BOOL_FIELD(ext_zvbc) 83BOOL_FIELD(ext_zvkb) 84BOOL_FIELD(ext_zvkg) 85BOOL_FIELD(ext_zvkned) 86BOOL_FIELD(ext_zvknha) 87BOOL_FIELD(ext_zvknhb) 88BOOL_FIELD(ext_zvksed) 89BOOL_FIELD(ext_zvksh) 90BOOL_FIELD(ext_zvkt) 91BOOL_FIELD(ext_zvkn) 92BOOL_FIELD(ext_zvknc) 93BOOL_FIELD(ext_zvkng) 94BOOL_FIELD(ext_zvks) 95BOOL_FIELD(ext_zvksc) 96BOOL_FIELD(ext_zvksg) 97BOOL_FIELD(ext_zmmul) 98BOOL_FIELD(ext_zvfbfmin) 99BOOL_FIELD(ext_zvfbfwma) 100BOOL_FIELD(ext_zvfh) 101BOOL_FIELD(ext_zvfhmin) 102BOOL_FIELD(ext_smaia) 103BOOL_FIELD(ext_ssaia) 104BOOL_FIELD(ext_smctr) 105BOOL_FIELD(ext_ssctr) 106BOOL_FIELD(ext_sscofpmf) 107BOOL_FIELD(ext_smepmp) 108BOOL_FIELD(ext_smrnmi) 109BOOL_FIELD(ext_ssnpm) 110BOOL_FIELD(ext_smnpm) 111BOOL_FIELD(ext_smmpm) 112BOOL_FIELD(ext_sspm) 113BOOL_FIELD(ext_supm) 114BOOL_FIELD(rvv_ta_all_1s) 115BOOL_FIELD(rvv_ma_all_1s) 116BOOL_FIELD(rvv_vl_half_avl) 117/* Named features */ 118BOOL_FIELD(ext_svade) 119BOOL_FIELD(ext_zic64b) 120BOOL_FIELD(ext_ssstateen) 121BOOL_FIELD(ext_sha) 122 123/* 124 * Always 'true' booleans for named features 125 * TCG always implement/can't be user disabled, 126 * based on spec version. 127 */ 128BOOL_FIELD(has_priv_1_13) 129BOOL_FIELD(has_priv_1_12) 130BOOL_FIELD(has_priv_1_11) 131 132/* Always enabled for TCG if has_priv_1_11 */ 133BOOL_FIELD(ext_ziccrse) 134 135/* Vendor-specific custom extensions */ 136BOOL_FIELD(ext_xtheadba) 137BOOL_FIELD(ext_xtheadbb) 138BOOL_FIELD(ext_xtheadbs) 139BOOL_FIELD(ext_xtheadcmo) 140BOOL_FIELD(ext_xtheadcondmov) 141BOOL_FIELD(ext_xtheadfmemidx) 142BOOL_FIELD(ext_xtheadfmv) 143BOOL_FIELD(ext_xtheadmac) 144BOOL_FIELD(ext_xtheadmemidx) 145BOOL_FIELD(ext_xtheadmempair) 146BOOL_FIELD(ext_xtheadsync) 147BOOL_FIELD(ext_XVentanaCondOps) 148 149BOOL_FIELD(mmu) 150BOOL_FIELD(pmp) 151BOOL_FIELD(debug) 152BOOL_FIELD(misa_w) 153 154BOOL_FIELD(short_isa_string) 155 156TYPED_FIELD(uint32_t, mvendorid, 0) 157TYPED_FIELD(uint64_t, marchid, 0) 158TYPED_FIELD(uint64_t, mimpid, 0) 159 160TYPED_FIELD(uint32_t, pmu_mask, 0) 161TYPED_FIELD(uint16_t, vlenb, 0) 162TYPED_FIELD(uint16_t, elen, 0) 163TYPED_FIELD(uint16_t, cbom_blocksize, 0) 164TYPED_FIELD(uint16_t, cbop_blocksize, 0) 165TYPED_FIELD(uint16_t, cboz_blocksize, 0) 166 167TYPED_FIELD(int8_t, max_satp_mode, -1) 168 169#undef BOOL_FIELD 170#undef TYPED_FIELD 171