ZXFoundation™ 26h2
Loading...
Searching...
No Matches
stsi.cxxm File Reference

STSI (STore System Information) API. More...

Include dependency graph for stsi.cxxm:

Data Structures

struct  arch::s390x::cpu::stsi::adjustment_factor
struct  arch::s390x::cpu::stsi::alternate_capability
struct  arch::s390x::cpu::stsi::basic_machine_cfg
struct  arch::s390x::cpu::stsi::basic_machine_cpu
struct  arch::s390x::cpu::stsi::basic_machine_cpus
class  arch::s390x::cpu::stsi::basic_machine_cpus_view
struct  arch::s390x::cpu::stsi::configuration_topology
class  arch::s390x::cpu::stsi::configuration_topology_view
struct  arch::s390x::cpu::stsi::lpar_cpu
struct  arch::s390x::cpu::stsi::lpar_cpus
struct  arch::s390x::cpu::stsi::detail::stsi_combo
struct  arch::s390x::cpu::stsi::topology_container
class  arch::s390x::cpu::stsi::topology_container_view
struct  arch::s390x::cpu::stsi::topology_core
struct  arch::s390x::cpu::stsi::topology_cpu_record
class  arch::s390x::cpu::stsi::topology_cpu_view
union  arch::s390x::cpu::stsi::topology_entry
class  arch::s390x::cpu::stsi::topology_list_view
struct  arch::s390x::cpu::stsi::topology_parse_result
struct  arch::s390x::cpu::stsi::topology_path
struct  arch::s390x::cpu::stsi::vm_cpus
struct  arch::s390x::cpu::stsi::vm_descriptor_block

Concepts

concept  arch::s390x::cpu::stsi::ValidStsiArguments

Enumerations

enum class  basic_machine_cfg_ccr : u8 {
  nominal_capacity = 0 , changed_manual_control = 1 , changed_machine_exception = 2 , changed_nonexception_machine = 3 ,
  changed_external_condition = 4
}
enum class  cpu_polarization : u8 { horizontal = 0 , vertical_low = 1 , vertical_medium = 2 , vertical_high = 3 }
enum class  extended_vm_name_enc : u8 { not_provided = 0 , ebcdic = 1 , utf_8 = 2 }
enum class  selector1 : u8 { configuration_level_fc = 1 , configuration_level_multi_cpu = 2 }
enum class  selector2_1 : u8 { configuration_level = 1 , configuration_level_topology = 2 }
enum class  selector2_2 : u8 { configuration_level_current_cpu = 1 , configuration_level_all_cpu = 2 }
enum class  stsi_fc : u8 { basic_machine_information = 1 , logical_partition_information = 2 , virtual_machine_information = 3 , current_configuration_level = 15 }
enum class  topology_parse_error : u8 { none = 0 , truncated_entry , reserved_nl }
enum class  virtual_server_name_enc : u8 { not_provided = 0 , ebcdic = 1 , utf_8 = 2 }

Functions

 __endian__ (BIG)
 arch::s390x::cpu::stsi::assert_size (adjustment_factor, 2)
 arch::s390x::cpu::stsi::assert_size (alternate_capability, 4)
 arch::s390x::cpu::stsi::assert_size (basic_machine_cfg, PAGE_SIZE)
 arch::s390x::cpu::stsi::assert_size (basic_machine_cpu, PAGE_SIZE)
 arch::s390x::cpu::stsi::assert_size (basic_machine_cpus, 44)
 arch::s390x::cpu::stsi::assert_size (extended_vm_name_enc, 1)
 arch::s390x::cpu::stsi::assert_size (lpar_cpu, PAGE_SIZE)
 arch::s390x::cpu::stsi::assert_size (lpar_cpus, PAGE_SIZE)
 arch::s390x::cpu::stsi::assert_size (topology_container, 8)
 arch::s390x::cpu::stsi::assert_size (topology_core, 16)
 arch::s390x::cpu::stsi::assert_size (virtual_server_name_enc, 1)
 arch::s390x::cpu::stsi::assert_size (vm_cpus, PAGE_SIZE)
 arch::s390x::cpu::stsi::assert_size (vm_descriptor_block, 64)
auto arch::s390x::cpu::stsi::current_configuration_number () -> u4
 Get current configuration level.
auto arch::s390x::cpu::stsi::detail::invoke (void *sysinfo, u4 fc, u8 sel1, u8 sel2, u4 &curr_level) noexcept -> std::expected< condition_code, lib::kernel_error >
 Issue STSI instruction to store system information.
template<typename Out, stsi_fc Fc, selector1 Sel1, selector2_2 Sel2>
requires ValidStsiArguments<Out, Fc, Sel1, static_cast<u8>(Sel2)> && (Sel1 == selector1::configuration_level_multi_cpu)
auto arch::s390x::cpu::stsi::invoke (Out &sysinfo) noexcept -> std::expected< condition_code, lib::kernel_error >
 Issue STSI instruction to store system information.
template<typename Out, stsi_fc Fc, selector1 Sel1, selector2_1 Sel2>
requires ValidStsiArguments<Out, Fc, Sel1, static_cast<u8>(Sel2)> && (Sel1 == selector1::configuration_level_fc)
auto arch::s390x::cpu::stsi::invoke (Out &sysinfo) noexcept -> std::expected< condition_code, lib::kernel_error >
 Issue STSI instruction to store system information.
template<typename Out, stsi_fc Fc, selector1 Sel1>
requires (Fc == stsi_fc::current_configuration_level) && (Sel1 == selector1::configuration_level_fc)
auto arch::s390x::cpu::stsi::invoke (Out &sysinfo, u8 sel2) noexcept -> std::expected< condition_code, lib::kernel_error >
 Issue STSI instruction to store system information.
consteval bool arch::s390x::cpu::stsi::detail::is_valid_stsi (u8 fc, u8 sel1, u8 sel2)

Variables

constexpr auto arch::s390x::cpu::stsi::MAX_VMS = 8
constexpr auto arch::s390x::cpu::stsi::TOPOLOGY_MAX_NEST = TOPOLOGY_NR_MAG - 1U
constexpr auto arch::s390x::cpu::stsi::TOPOLOGY_NR_MAG = 6U
constexpr std::array arch::s390x::cpu::stsi::detail::valid_combos

Detailed Description

STSI (STore System Information) API.

SPDX-License-Identifier: Apache 2.0

Function Documentation

◆ invoke() [1/3]

template<typename Out, stsi_fc Fc, selector1 Sel1, selector2_2 Sel2>
requires ValidStsiArguments<Out, Fc, Sel1, static_cast<u8>(Sel2)> && (Sel1 == selector1::configuration_level_multi_cpu)
auto arch::s390x::cpu::stsi::invoke ( Out & sysinfo) ->std::expected< condition_code, lib::kernel_error >
exportnoexcept

Issue STSI instruction to store system information.

Template Parameters
OutOutput block type.
FcFunction code
Sel1Selector 1 (Selector1 == 2)
Sel2Selector 2 (Selector1 == 2)
Parameters
sysinfooutput block
Returns
condition code or kernel error

◆ invoke() [2/3]

template<typename Out, stsi_fc Fc, selector1 Sel1, selector2_1 Sel2>
requires ValidStsiArguments<Out, Fc, Sel1, static_cast<u8>(Sel2)> && (Sel1 == selector1::configuration_level_fc)
auto arch::s390x::cpu::stsi::invoke ( Out & sysinfo) ->std::expected< condition_code, lib::kernel_error >
exportnoexcept

Issue STSI instruction to store system information.

Template Parameters
OutOutput block type.
FcFunction code
Sel1Selector 1 (Selector1 == 1)
Sel2Selector 2 (Selector1 == 1)
Parameters
sysinfooutput block
Returns
condition code or kernel error

◆ invoke() [3/3]

template<typename Out, stsi_fc Fc, selector1 Sel1>
requires (Fc == stsi_fc::current_configuration_level) && (Sel1 == selector1::configuration_level_fc)
auto arch::s390x::cpu::stsi::invoke ( Out & sysinfo,
u8 sel2 )->std::expected< condition_code, lib::kernel_error >
exportnoexcept

Issue STSI instruction to store system information.

Template Parameters
OutOutput block type.
FcFunction code
Sel1Selector 1
Parameters
sel2Selector 2
sysinfooutput block
Returns
condition code or kernel error

Variable Documentation

◆ valid_combos

std::array arch::s390x::cpu::stsi::detail::valid_combos
constexprexport
Initial value:
= {
stsi_combo{1, 1, 1, 1},
stsi_combo{1, 2, 1, 1},
stsi_combo{1, 2, 2, 2},
stsi_combo{2, 2, 1, 1},
stsi_combo{2, 2, 2, 2},
stsi_combo{3, 2, 2, 2},
stsi_combo{15, 1, 2, 6},
}