/* * Required definitions before including this file: * * #define BOOL_FIELD(x) * #define TYPED_FIELD(type, x, default) */ BOOL_FIELD(ext_zba) BOOL_FIELD(ext_zbb) BOOL_FIELD(ext_zbc) BOOL_FIELD(ext_zbkb) BOOL_FIELD(ext_zbkc) BOOL_FIELD(ext_zbkx) BOOL_FIELD(ext_zbs) BOOL_FIELD(ext_zca) BOOL_FIELD(ext_zcb) BOOL_FIELD(ext_zcd) BOOL_FIELD(ext_zce) BOOL_FIELD(ext_zcf) BOOL_FIELD(ext_zcmp) BOOL_FIELD(ext_zcmt) BOOL_FIELD(ext_zk) BOOL_FIELD(ext_zkn) BOOL_FIELD(ext_zknd) BOOL_FIELD(ext_zkne) BOOL_FIELD(ext_zknh) BOOL_FIELD(ext_zkr) BOOL_FIELD(ext_zks) BOOL_FIELD(ext_zksed) BOOL_FIELD(ext_zksh) BOOL_FIELD(ext_zkt) BOOL_FIELD(ext_zifencei) BOOL_FIELD(ext_zicntr) BOOL_FIELD(ext_zicsr) BOOL_FIELD(ext_zicbom) BOOL_FIELD(ext_zicbop) BOOL_FIELD(ext_zicboz) BOOL_FIELD(ext_zicfilp) BOOL_FIELD(ext_zicfiss) BOOL_FIELD(ext_zicond) BOOL_FIELD(ext_zihintntl) BOOL_FIELD(ext_zihintpause) BOOL_FIELD(ext_zihpm) BOOL_FIELD(ext_zimop) BOOL_FIELD(ext_zcmop) BOOL_FIELD(ext_ztso) BOOL_FIELD(ext_smstateen) BOOL_FIELD(ext_sstc) BOOL_FIELD(ext_smcdeleg) BOOL_FIELD(ext_ssccfg) BOOL_FIELD(ext_smcntrpmf) BOOL_FIELD(ext_smcsrind) BOOL_FIELD(ext_sscsrind) BOOL_FIELD(ext_ssdbltrp) BOOL_FIELD(ext_smdbltrp) BOOL_FIELD(ext_svadu) BOOL_FIELD(ext_svinval) BOOL_FIELD(ext_svnapot) BOOL_FIELD(ext_svpbmt) BOOL_FIELD(ext_svrsw60t59b) BOOL_FIELD(ext_svvptc) BOOL_FIELD(ext_svukte) BOOL_FIELD(ext_zdinx) BOOL_FIELD(ext_zaamo) BOOL_FIELD(ext_zacas) BOOL_FIELD(ext_zama16b) BOOL_FIELD(ext_zabha) BOOL_FIELD(ext_zalrsc) BOOL_FIELD(ext_zawrs) BOOL_FIELD(ext_zfa) BOOL_FIELD(ext_zfbfmin) BOOL_FIELD(ext_zfh) BOOL_FIELD(ext_zfhmin) BOOL_FIELD(ext_zfinx) BOOL_FIELD(ext_zhinx) BOOL_FIELD(ext_zhinxmin) BOOL_FIELD(ext_zve32f) BOOL_FIELD(ext_zve32x) BOOL_FIELD(ext_zve64f) BOOL_FIELD(ext_zve64d) BOOL_FIELD(ext_zve64x) BOOL_FIELD(ext_zvbb) BOOL_FIELD(ext_zvbc) BOOL_FIELD(ext_zvkb) BOOL_FIELD(ext_zvkg) BOOL_FIELD(ext_zvkned) BOOL_FIELD(ext_zvknha) BOOL_FIELD(ext_zvknhb) BOOL_FIELD(ext_zvksed) BOOL_FIELD(ext_zvksh) BOOL_FIELD(ext_zvkt) BOOL_FIELD(ext_zvkn) BOOL_FIELD(ext_zvknc) BOOL_FIELD(ext_zvkng) BOOL_FIELD(ext_zvks) BOOL_FIELD(ext_zvksc) BOOL_FIELD(ext_zvksg) BOOL_FIELD(ext_zmmul) BOOL_FIELD(ext_zvfbfmin) BOOL_FIELD(ext_zvfbfwma) BOOL_FIELD(ext_zvfh) BOOL_FIELD(ext_zvfhmin) BOOL_FIELD(ext_smaia) BOOL_FIELD(ext_ssaia) BOOL_FIELD(ext_smctr) BOOL_FIELD(ext_ssctr) BOOL_FIELD(ext_sscofpmf) BOOL_FIELD(ext_smepmp) BOOL_FIELD(ext_smrnmi) BOOL_FIELD(ext_ssnpm) BOOL_FIELD(ext_smnpm) BOOL_FIELD(ext_smmpm) BOOL_FIELD(ext_sspm) BOOL_FIELD(ext_supm) BOOL_FIELD(rvv_ta_all_1s) BOOL_FIELD(rvv_ma_all_1s) BOOL_FIELD(rvv_vl_half_avl) BOOL_FIELD(rvv_vsetvl_x0_vill) /* Named features */ BOOL_FIELD(ext_svade) BOOL_FIELD(ext_zic64b) BOOL_FIELD(ext_ssstateen) BOOL_FIELD(ext_sha) /* * Always 'true' booleans for named features * TCG always implement/can't be user disabled, * based on spec version. */ BOOL_FIELD(has_priv_1_13) BOOL_FIELD(has_priv_1_12) BOOL_FIELD(has_priv_1_11) /* Always enabled for TCG if has_priv_1_11 */ BOOL_FIELD(ext_ziccrse) /* Vendor-specific custom extensions */ BOOL_FIELD(ext_xtheadba) BOOL_FIELD(ext_xtheadbb) BOOL_FIELD(ext_xtheadbs) BOOL_FIELD(ext_xtheadcmo) BOOL_FIELD(ext_xtheadcondmov) BOOL_FIELD(ext_xtheadfmemidx) BOOL_FIELD(ext_xtheadfmv) BOOL_FIELD(ext_xtheadmac) BOOL_FIELD(ext_xtheadmemidx) BOOL_FIELD(ext_xtheadmempair) BOOL_FIELD(ext_xtheadsync) BOOL_FIELD(ext_XVentanaCondOps) BOOL_FIELD(mmu) BOOL_FIELD(pmp) BOOL_FIELD(debug) BOOL_FIELD(misa_w) BOOL_FIELD(short_isa_string) TYPED_FIELD(uint32_t, mvendorid, 0) TYPED_FIELD(uint64_t, marchid, 0) TYPED_FIELD(uint64_t, mimpid, 0) TYPED_FIELD(uint32_t, pmu_mask, 0) TYPED_FIELD(uint16_t, vlenb, 0) TYPED_FIELD(uint16_t, elen, 0) TYPED_FIELD(uint16_t, cbom_blocksize, 0) TYPED_FIELD(uint16_t, cbop_blocksize, 0) TYPED_FIELD(uint16_t, cboz_blocksize, 0) TYPED_FIELD(uint8_t, pmp_regions, 0) TYPED_FIELD(int8_t, max_satp_mode, -1) #undef BOOL_FIELD #undef TYPED_FIELD