ECAG (Extract CPU Attribute) kernel API. More...
Data Structures | |
| union | arch::s390x::cpu::ecag::cache_summary |
| Full topology summary (ASI=cache, AI=extract_topo_summary). More... | |
| union | arch::s390x::cpu::ecag::cache_summary_entry |
| One byte of a topology-summary result. More... | |
| struct | arch::s390x::cpu::ecag::cpu_speed |
| CPU-speed result (ASI=cpu, AI=extract_cpu_speed). More... | |
Functions | |
| __endian__ (BIG) | |
| arch::s390x::cpu::ecag::assert_size (cache_summary, 8) | |
| arch::s390x::cpu::ecag::assert_size (cache_summary_entry, 1) | |
| arch::s390x::cpu::ecag::assert_size (cpu_speed, 8) | |
| constexpr auto | arch::s390x::cpu::ecag::begin (const cache_summary &s) noexcept |
| constexpr auto | arch::s390x::cpu::ecag::end (const cache_summary &s) noexcept |
| template<attribute_set_indication Asi> | |
| auto | arch::s390x::cpu::ecag::detail::invoke (u8 parm) noexcept -> std::expected< u64, lib::kernel_error > |
| Invoke raw ECAG. | |
| constexpr auto | arch::s390x::cpu::ecag::detail::pack_cache_parm (attribute_indication ai, cache_level li, type_indication ti) noexcept -> u8 |
| Build the AI[4] | LI[3] | TI[1] byte for a cache-set query. | |
|
template<attribute_indication Indication, cache_level Level, type_indication Type> requires (Indication != attribute_indication::extract_topo_summary) | |
| auto | arch::s390x::cpu::ecag::query_cache_attribute () noexcept -> std::expected< u64, lib::kernel_error > |
| Extract a scalar cache attribute. | |
| auto | arch::s390x::cpu::ecag::query_cpu_speed () noexcept -> std::expected< cpu_speed, lib::kernel_error > |
| Extract dynamic/static CPU speed via ECAG. | |
| auto | arch::s390x::cpu::ecag::query_topology () noexcept -> std::expected< cache_summary, lib::kernel_error > |
| Extract the per-level cache topology summary. | |
Variables | |
| constexpr u64 | arch::s390x::cpu::ecag::detail::invalid_sentinel = ~u64{0} |
ECAG (Extract CPU Attribute) kernel API.
SPDX-License-Identifier: Apache-2.0