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

Data Structures

union  arch::s390x::cpu::teid::teid
 Union view of a 64-bit TEID. More...

Functions

constexpr auto address () const noexcept -> u64
 Extract the page-aligned translation-exception address.
constexpr auto asce_id () const noexcept -> u64
 Extract the ASCE identifier ( bits 62-63).
constexpr auto fsi_raw () const noexcept -> u64
 Extract the AEFSI fetch/store indication.
constexpr auto is_fetch () const noexcept -> bool
 True if AEFSI says the access was an instruction fetch.
constexpr auto is_side_effect () const noexcept -> bool
 True if bit 54 (side-effect-access indication) is set.
constexpr auto is_store () const noexcept -> bool
 True if AEFSI says the access was a store.
constexpr auto protection_is_alc () const noexcept -> bool
 True if the protection code reported by basic SOP / ESOP-1 indicates access-list-controlled (ALC) protection.
constexpr auto protection_is_exec () const noexcept -> bool
 True if the 3-bit protection code (bits 56, 60, 61) decodes to 101.

Variables

u64   : 1 
 bit 55 — unpredictable.
u64   : 3 
 bits 57-59 — unpredictable.
u64   addr: 52 
 bits 0-51 — translation-exception address.
u64   as: 2 
 bits 62-63 — ASCE identifier.
u64   b56: 1 
 bit 56 — protection-code bit 0 (ESOP-2).
u64   b60: 1 
 bit 60 — protection-code bit 1 / ALC indication.
u64   b61: 1 
 bit 61 — protection-code bit 2 / MOVE PAGE / TEID remainder.
u64   fsi: 2 
 bits 52-53 — Access-Exc Fetch/Store Indication.
u64   sea: 1 
 bit 54 — side-effect access (use is_side_effect()).
u64 val
constexpr u8 arch::s390x::cpu::teid::ADDR_LSB_OFF = 12
 bit-position helpers.
constexpr u8 arch::s390x::cpu::teid::FSI_LSB_OFF = 10
 bits 52-53 (Access-Exc Fetch/Store).
constexpr u8 arch::s390x::cpu::teid::SE_LSB_OFF = 9
 bit 54 (side-effect access).
constexpr u8 arch::s390x::cpu::teid::B56_LSB_OFF = 7
 bit 56 (protection-code bit 0).
constexpr u8 arch::s390x::cpu::teid::B60_LSB_OFF = 3
 bit 60 (protection-code bit 1 / ALC).
constexpr u8 arch::s390x::cpu::teid::B61_LSB_OFF = 2
 bit 61 (protection-code bit 2 / MOVE PAGE).
constexpr u8 arch::s390x::cpu::teid::AS_LSB_OFF = 0
 bits 62-63 (ASCE identifier).
constexpr u64 arch::s390x::cpu::teid::TEID_FSI_UNKNOWN = 0
 Access-Exception Fetch/Store Indication (AEFSI) — TEID bits 52-53.
constexpr u64 arch::s390x::cpu::teid::TEID_FSI_STORE = 1
 01 — store-type access.
constexpr u64 arch::s390x::cpu::teid::TEID_FSI_FETCH = 2
 10 — instruction-fetch access.
constexpr u64 arch::s390x::cpu::teid::TEID_AS_PRIMARY = 0
 ASCE identifier encoding (TEID bits 62-63).
constexpr u64 arch::s390x::cpu::teid::TEID_AS_AR = 1
 01 — access-register mode (AR-specified).
constexpr u64 arch::s390x::cpu::teid::TEID_AS_SECONDARY = 2
 10 — secondary ASCE.
constexpr u64 arch::s390x::cpu::teid::TEID_AS_HOME = 3
 11 — home ASCE.
constexpr u8 arch::s390x::cpu::teid::ADDR_LSB_OFF = 12
 bit-position helpers.
constexpr u8 arch::s390x::cpu::teid::FSI_LSB_OFF = 10
 bits 52-53 (Access-Exc Fetch/Store).
constexpr u8 arch::s390x::cpu::teid::SE_LSB_OFF = 9
 bit 54 (side-effect access).
constexpr u8 arch::s390x::cpu::teid::B56_LSB_OFF = 7
 bit 56 (protection-code bit 0).
constexpr u8 arch::s390x::cpu::teid::B60_LSB_OFF = 3
 bit 60 (protection-code bit 1 / ALC).
constexpr u8 arch::s390x::cpu::teid::B61_LSB_OFF = 2
 bit 61 (protection-code bit 2 / MOVE PAGE).
constexpr u8 arch::s390x::cpu::teid::AS_LSB_OFF = 0
 bits 62-63 (ASCE identifier).
constexpr u64 arch::s390x::cpu::teid::TEID_FSI_UNKNOWN = 0
 Access-Exception Fetch/Store Indication (AEFSI) — TEID bits 52-53.
constexpr u64 arch::s390x::cpu::teid::TEID_FSI_STORE = 1
 01 — store-type access.
constexpr u64 arch::s390x::cpu::teid::TEID_FSI_FETCH = 2
 10 — instruction-fetch access.
constexpr u64 arch::s390x::cpu::teid::TEID_AS_PRIMARY = 0
 ASCE identifier encoding (TEID bits 62-63).
constexpr u64 arch::s390x::cpu::teid::TEID_AS_AR = 1
 01 — access-register mode (AR-specified).
constexpr u64 arch::s390x::cpu::teid::TEID_AS_SECONDARY = 2
 10 — secondary ASCE.
constexpr u64 arch::s390x::cpu::teid::TEID_AS_HOME = 3
 11 — home ASCE.

Files

file  arch/s390x/cpu/teid.cxxm