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

z/Architecture control register store/load/set/clear wrappers. More...

Include dependency graph for ctlreg.cxxm:

Data Structures

union  arch::s390x::cpu::ctlreg::cr0
union  arch::s390x::cpu::ctlreg::cr15
union  arch::s390x::cpu::ctlreg::cr2
union  arch::s390x::cpu::ctlreg::cr5
struct  arch::s390x::cpu::ctlreg::ctlreg

Functions

template<u32 Reg>
auto arch::s390x::cpu::ctlreg::ctl_clear_bit (const u32 bit) noexcept -> void
 Clear a single bit (IBM MSB numbering) in a control register.
template<u32 Low, u32 High, typename T>
requires (Low <= 15 && High <= 15 && Low <= High && sizeof(T) >= (High - Low + 1) * 8)
auto arch::s390x::cpu::ctlreg::ctl_load (const T &storage) noexcept -> void
 Load control registers [Low..High] from a storage area (LCTLG).
template<u32 Reg>
auto arch::s390x::cpu::ctlreg::ctl_set_bit (const u32 bit) noexcept -> void
 Set a single bit (IBM MSB numbering) in a control register.
template<u32 Low, u32 High, typename T>
requires (Low <= 15 && High <= 15 && Low <= High && sizeof(T) >= (High - Low + 1) * 8)
auto arch::s390x::cpu::ctlreg::ctl_store (T &storage) noexcept -> void
 Store control registers [Low..High] into a storage area (STCTG).

Detailed Description

z/Architecture control register store/load/set/clear wrappers.

SPDX-License-Identifier: Apache-2.0

Function Documentation

◆ ctl_clear_bit()

template<u32 Reg>
auto arch::s390x::cpu::ctlreg::ctl_clear_bit ( const u32 bit) ->void
exportnoexcept

Clear a single bit (IBM MSB numbering) in a control register.

Template Parameters
RegControl register index (0–15).
Parameters
bitBit number in IBM MSB-0 notation.

◆ ctl_load()

template<u32 Low, u32 High, typename T>
requires (Low <= 15 && High <= 15 && Low <= High && sizeof(T) >= (High - Low + 1) * 8)
auto arch::s390x::cpu::ctlreg::ctl_load ( const T & storage) ->void
exportnoexcept

Load control registers [Low..High] from a storage area (LCTLG).

Template Parameters
LowStarting control register index (0–15).
HighEnding control register index (0–15), must be ≥ Low.
TStorage type; sizeof(T) must cover (High-Low+1) × 8 bytes.
Parameters
storageInput buffer containing the new register values.

◆ ctl_set_bit()

template<u32 Reg>
auto arch::s390x::cpu::ctlreg::ctl_set_bit ( const u32 bit) ->void
exportnoexcept

Set a single bit (IBM MSB numbering) in a control register.

Template Parameters
RegControl register index (0–15).
Parameters
bitBit number in IBM MSB-0 notation (bit 0 = MSB of the 64-bit register).

◆ ctl_store()

template<u32 Low, u32 High, typename T>
requires (Low <= 15 && High <= 15 && Low <= High && sizeof(T) >= (High - Low + 1) * 8)
auto arch::s390x::cpu::ctlreg::ctl_store ( T & storage) ->void
exportnoexcept

Store control registers [Low..High] into a storage area (STCTG).

Template Parameters
LowStarting control register index (0–15).
HighEnding control register index (0–15), must be ≥ Low.
TStorage type; sizeof(T) must cover (High-Low+1) × 8 bytes.
Parameters
storageOutput buffer to receive the register values.