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

Data Structures

struct  arch::s390x::cpu::lowcore::ap_init_params
 Parameters for AP lowcore setup. More...

Enumerations

enum class  architectural_mode : u8 { esa390 = 0 , zarch = 1 }

Typedefs

using arch::s390x::cpu::lowcore::restart_fn = auto(*)(void*) noexcept -> void
using arch::s390x::cpu::lowcore::zlowcore
 z/Architecture "Assigned Storage Locations"

Functions

auto arch::s390x::cpu::lowcore::current_domain_ptr () noexcept -> void *
 Get the current domain pointer from lowcore.
auto arch::s390x::cpu::lowcore::current_strand_ptr () noexcept -> void *
 Get the current strand pointer from percpu.
auto arch::s390x::cpu::lowcore::get_current () noexcept -> zlowcore *
auto arch::s390x::cpu::lowcore::get_current_phys () noexcept -> zlowcore *
auto arch::s390x::cpu::lowcore::get_for_cpu (const u16 cpu_id) noexcept -> zlowcore *
 Retrieve the lowcore structure pointer for a specific CPU, taking prefixing into account.
auto arch::s390x::cpu::lowcore::init_ap (zlowcore &lc, const ap_init_params &p) noexcept -> void
 Prepare an AP lowcore for SIGP RESTART.
auto arch::s390x::cpu::lowcore::init_bsp (const init::zxfl::protocol &proto) noexcept -> void
 Initialize the BSP lowcore. Must be called once after HHDM is active.
auto arch::s390x::cpu::lowcore::register_cpu_lowcore (const u16 cpu_id, const u64 phys_lc) noexcept -> void
auto arch::s390x::cpu::lowcore::register_restart_handler (void(*fn)(void *) noexcept, void *data) noexcept -> void
 Install a runtime restart-interrupt handler on the current CPU.

Variables

u64 ap_cr0 {}
 CR0 snapshot to restore on AP.
u64 ap_entry_phys {}
 Physical address of ap_entry (DAT-off restart target).
u64 ap_stack_phys {}
 Physical top of AP's initial stack (for LC_RESTART_STACK).
u16 cpu_addr {}
 Hardware CPU address (from SIGP/STAP).
u16 cpu_id {}
 Logical CPU ID assigned to this AP.
u64 kernel_asce {}
 Kernel ASCE (CR1) to load before enabling DAT.
constexpr u64 arch::s390x::cpu::lowcore::LC_ALIGN = 8192UL
constexpr u64 arch::s390x::cpu::lowcore::LC_AP_CR0 = 0x0330UL
constexpr u64 arch::s390x::cpu::lowcore::LC_AP_CR13 = 0x0338UL
constexpr u64 arch::s390x::cpu::lowcore::LC_ASYNC_STACK = 0x0350UL
constexpr u64 arch::s390x::cpu::lowcore::LC_CPU_ID_OFFSET = 0x03a0UL
constexpr u64 arch::s390x::cpu::lowcore::LC_CURRENT_DOMAIN = 0x0340UL
constexpr u64 arch::s390x::cpu::lowcore::LC_EXT_OLD_PSW = 0x0130UL
constexpr u64 arch::s390x::cpu::lowcore::LC_IO_OLD_PSW = 0x0170UL
constexpr u64 arch::s390x::cpu::lowcore::LC_KERNEL_ASCE = 0x0388UL
constexpr u64 arch::s390x::cpu::lowcore::LC_KERNEL_STACK = 0x0348UL
constexpr u64 arch::s390x::cpu::lowcore::LC_MCCK_OLD_PSW = 0x0160UL
constexpr u64 arch::s390x::cpu::lowcore::LC_MCCK_STACK = 0x0368UL
constexpr u64 arch::s390x::cpu::lowcore::LC_NODAT_STACK = 0x0358UL
constexpr u64 arch::s390x::cpu::lowcore::LC_PERCPU_PTR = 0x0400UL
constexpr u64 arch::s390x::cpu::lowcore::LC_PGM_OLD_PSW = 0x0150UL
constexpr u64 arch::s390x::cpu::lowcore::LC_PSW_TEMP = 0x0248UL
constexpr u64 arch::s390x::cpu::lowcore::LC_RESTART_STACK = 0x0360UL
constexpr u64 arch::s390x::cpu::lowcore::LC_RETURN_PSW = 0x0290UL
constexpr u64 arch::s390x::cpu::lowcore::LC_SIZE = 8192UL
constexpr u64 arch::s390x::cpu::lowcore::LC_SVC_OLD_PSW = 0x0140UL
u64 phys_lc {}
 Physical address of the AP's 8 KB lowcore page.

Files

file  arch/s390x/cpu/lowcore.zcomponent/lowcore.cxxm
file  arch/s390x/cpu/lowcore.zcomponent/lowcore.cxx