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