ZXFoundation™ 26h2
Loading...
Searching...
No Matches
arch.s390x.cpu.features Module Reference

Enumerations

enum class  facility : u32 {
  n3 = 0 , zarch_installed = 1 , zarch_active = 2 , dat_enhancement = 3 ,
  idte_segment_clear = 4 , idte_region_clear = 5 , asn_lx_reuse = 6 , stfle = 7 ,
  edat1 = 8 , sense_run_status = 9 , cond_sske = 10 , configuration_topology = 11 ,
  ap_query_info = 12 , ipte_range = 13 , nonquiescing_key_setting = 14 , ap_facility_test = 15 ,
  extended_translation_2 = 16 , msa = 17 , long_displacement = 18 , long_displacement_hi_perf = 19 ,
  hfp_madd_sub = 20 , eimm = 21 , extended_translation_3 = 22 , hfp_unnorm_ext = 23 ,
  etf2_enhancement = 24 , store_clock_fast = 25 , parsing_enhancement = 26 , mvcos = 27 ,
  tod_clock_steering = 28 , etf3_enhancement = 30 , extract_cpu_time = 31 , cmp_swap_and_store = 32 ,
  cmp_swap_and_store_2 = 33 , gen_inst_ext = 34 , execute_ext = 35 , enhanced_monitor = 36 ,
  fp_extension = 37 , order_preserving_compression = 38 , load_program_params = 40 , fp_support_enh = 41 ,
  dfp = 42 , dfp_high_performance = 43 , pfpo = 44 , distinct_operands = 45 ,
  cmpsc_enhancement = 47 , decimal_fp_zoned_conversion = 48 , misc_inst_ext1 = 49 , constr_te = 50 ,
  local_tlb_clearing = 51 , interlocked_access_2 = 52 , load_store_on_cond_2 = 53 , entropy_encoding_compression = 54 ,
  msa_ext5 = 57 , misc_inst_ext2 = 58 , misc_inst_ext3 = 61 , reset_ref_bits_multiple = 66 ,
  cpu_meas_counter = 67 , cpu_meas_sampling = 68 , transactional_exec = 73 , store_hypervisor_info = 74 ,
  access_exc_fetch_store_ind = 75 , msa_ext3 = 76 , msa_ext4 = 77 , edat2 = 78 ,
  dfp_packed_conversion = 80 , ppa_in_order = 81 , misc_inst_ext4 = 84 , sequential_inst_fetching = 85 ,
  msa_ext12 = 86 , plo_ext = 87 , vector = 129 , instruction_exec_protection = 130 ,
  side_effect_access = 131 , guarded_storage = 133 , vector_packed_decimal = 134 , vector_enh1 = 135 ,
  config_zarch_arch_mode = 138 , multiple_epoch = 139 , store_cpu_counter_multiple = 142 , test_pending_ext_int = 144 ,
  insert_ref_bits_multiple = 145 , msa_ext8 = 146 , vector_enh2 = 148 , move_page_and_set_key = 149 ,
  enhanced_sort = 150 , deflate_conversion = 151 , vector_packed_decimal_enh = 152 , msa_ext9 = 155 ,
  ultravisor_call = 158 , secure_execution_unpack = 161 , nnpa = 165 , esa390_compat_mode = 168 ,
  skey_removal = 169 , ineff_nonconstrained_transaction = 170 , vector_packed_decimal_2 = 192 , bear = 193 ,
  reset_dat_protection = 194 , proc_activity_inst = 196 , proc_activity_inst_ext1 = 197 , vector_enhancements_3 = 198 ,
  vector_packed_decimal_3 = 199 , concurrent_funcs = 201
}
 Named CPU facility identifiers — STFLE bit numbers per IBM z/Architecture PoP Appendix B (Figure 4-36).

Functions

template<usize Extent = STFLE_MAX_DWORDS>
requires (Extent > 0 && Extent <= STFLE_MAX_DWORDS)
auto arch::s390x::cpu::features::detect (std::span< u64, Extent > fac_list) noexcept -> std::expected< u32, lib::kernel_error >
 Detect CPU facilities using STFLE.
auto arch::s390x::cpu::features::enable_hardware_facilities () noexcept -> void
 Enable hardware facilities (AFP, Vector) in CR0 for the current CPU.
auto arch::s390x::cpu::features::has (facility f) noexcept -> bool
 Query whether a specific named facility is available.
auto arch::s390x::cpu::features::has_raw (u32 bit) noexcept -> bool
 Query a raw STFLE bit by number (for facility bits not in the enum).
auto arch::s390x::cpu::features::init (std::optional< const u64 * > stfle_fac) noexcept -> void
 Initialize the CPU features cache.

Variables

constexpr auto arch::s390x::cpu::features::STFLE_MAX_DWORDS = 32

Files

file  arch/s390x/cpu/features.zcomponent/features.cxxm
file  arch/s390x/cpu/features.zcomponent/features.cxx