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

Exported Modules

module  arch.s390x.cpu.aste.consts
module  zxfoundation.base.types
module  std
module  lib.error

Data Structures

struct  arch::s390x::cpu::aste::ale
 Access List Entry — 16 bytes. More...
struct  arch::s390x::cpu::aste::aste
 ASN Second Table Entry — 64 bytes, 64-byte aligned. More...

Functions

auto ald () const noexcept -> u64
 Return the Access-List Designation (word 2).
auto arch::s390x::cpu::aste::ale_create (art_context &context, u32 aste_index) noexcept -> ::std::expected< u32, ::lib::kernel_error >
 Create an ALE that points to the given ASTE.
auto arch::s390x::cpu::aste::ale_destroy (art_context &context, u32 alet) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Invalidate an ALE and purge the ALB.
auto arch::s390x::cpu::aste::art_context_destroy (art_context &context) noexcept -> void
 Release per-domain DUCT and access-list backing after every ALE referring to it has been revoked.
auto arch::s390x::cpu::aste::art_context_init (art_context &context) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Allocate the DUCT and dispatchable-unit access list for one domain. The caller owns context for the domain lifetime.
auto arch::s390x::cpu::aste::art_context_load (const art_context &context) noexcept -> void
 Install a domain's DUCT in CR2 on the current CPU.
auto asce () const noexcept -> u64
 Return the target address space ASCE (word 1).
auto arch::s390x::cpu::aste::aste_alloc (u64 target_asce, u16 auth_index) noexcept -> ::std::expected< u32, ::lib::kernel_error >
 Allocate an ASTE slot and populate it with a target ASCE.
auto arch::s390x::cpu::aste::aste_find (u32 index) noexcept -> aste *
 Return a pointer to the ASTE at the given index.
auto arch::s390x::cpu::aste::aste_free (u32 aste_index) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Free an ASTE slot, marking it as invalid.
auto aste_origin () const noexcept -> u64
 Return the real address of the referenced ASTE.
auto arch::s390x::cpu::aste::aste_subsystem_init () noexcept -> void
 Initialize the ASTE/ALE subsystem.
auto authorization_index () const noexcept -> u16
 Return the Authorization Index (AX) from word 0 bits 32–47.
auto clear () noexcept -> void
 Zero all words.
auto clear () noexcept -> void
 Zero all words.
auto is_invalid () const noexcept -> bool
 Test the I-bit (invalid) in word 0.
auto is_invalid () const noexcept -> bool
 Test the I-bit (invalid) in word 0.
auto ltd_length () const noexcept -> u8
 Return the linkage-table length (LTL, LTD bits 25-31, 7 bits). Actual table length = (LTL + 1) × 128 bytes.
auto ltd_origin () const noexcept -> u64
 Return the linkage-table origin as a 31-bit real address. LTD bits 1-24 with 7 zeros appended on the right.
auto ltd_raw () const noexcept -> u32
 Return the raw 32-bit Linkage-Table Designation (bytes 24-27).
auto ltd_valid () const noexcept -> bool
 Test the subsystem-linkage control bit (V, LTD bit 0). Must be 1 for PC/PT instructions to proceed.
auto sequence () const noexcept -> u8
 Return the ALE sequence number used to validate an ALET.
auto set_ald (u64 val) noexcept -> void
 Set the Access-List Designation (word 2).
auto set_asce (u64 val) noexcept -> void
 Set the target address space ASCE (word 1).
auto set_aste_origin (u64 addr) noexcept -> void
 Set the ASTE origin (must be 64-byte aligned).
auto set_aste_sequence (u32 val) noexcept -> void
 Set the ASTE sequence number checked after ALE lookup.
auto set_authorization_index (u16 ax) noexcept -> void
 Set the Authorization Index (AX) in word 0 bits 32–47.
auto set_fetch_only (bool fetch_only) noexcept -> void
 Set whether the ALE prohibits store access.
auto set_invalid (bool inv) noexcept -> void
 Set or clear the I-bit (invalid) in word 0.
auto set_invalid (bool inv) noexcept -> void
 Set or clear the I-bit (invalid) in word 0.
auto set_ltd_length (u8 ltl) noexcept -> void
 Set the linkage-table length (LTL).
auto set_ltd_origin (u64 addr) noexcept -> void
 Set the linkage-table origin from a 128-byte-aligned real address.
auto set_ltd_raw (u32 ltd) noexcept -> void
 Set the raw 32-bit Linkage-Table Designation (bytes 24-27).
auto set_ltd_valid (bool v) noexcept -> void
 Set or clear the V bit in the LTD.
auto set_sequence (u8 val) noexcept -> void
 Set the ALE sequence number used to validate an ALET.

Variables

u64 words [2] {}
u64 words [8] {}

Files

file  arch/s390x/cpu/aste.zcomponent/aste.cxxm
file  arch/s390x/cpu/aste.zcomponent/common.cxxm
file  arch/s390x/cpu/aste.zcomponent/aste.cxx