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...
struct  arch::s390x::cpu::lowcore::zx_lowcore
 z/Architecture 8 KB prefix (lowcore) structure. More...

Functions

auto arch::s390x::cpu::lowcore::cpu_percpu (const u16 cpu_id) noexcept -> percpu::percpu_data *
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 -> zx_lowcore *
auto arch::s390x::cpu::lowcore::get_current_phys () noexcept -> zx_lowcore *
auto arch::s390x::cpu::lowcore::get_for_cpu (const u16 cpu_id) noexcept -> zx_lowcore *
 Retrieve the lowcore structure pointer for a specific CPU, taking prefixing into account.
auto arch::s390x::cpu::lowcore::init_ap (zx_lowcore &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.
auto arch::s390x::cpu::lowcore::this_cpu_percpu () noexcept -> percpu::percpu_data &

Variables

u32 access_regs_save_area [16] {}
u64 ap_cr0 {}
 CR0 snapshot to restore on AP.
u64 ap_cr0 {}
u64 ap_cr13 {}
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).
u8 ar_access_id {}
u64 async_stack {}
u64 avg_steal_timer {}
u64 breaking_event_addr {}
u32 clock_comp_save_area [2] {}
u64 clock_comparator {}
u16 cpu_addr {}
 Hardware CPU address (from SIGP/STAP).
u16 cpu_id {}
 Logical CPU ID assigned to this AP.
u32 cpu_nr {}
u32 cpu_timer_save_area [2] {}
zxfoundation::sys::syschk::zx_crash_record crash_record {}
u64 cregs_save_area [16] {}
u64 current_domain {}
u32 current_pid {}
u32 data_exc_code {}
u8 exc_access_id {}
u64 exit_timer {}
u16 ext_cpu_addr {}
u16 ext_int_code {}
u32 ext_params {}
u32 external_damage_code {}
psw::zx_psw external_new_psw {}
psw::zx_psw external_old_psw {}
u64 failing_storage_address {}
u64 floating_pt_save_area [16] {}
u32 fpt_creg_save_area {}
u64 gpregs_save_area [16] {}
u64 guest_timer {}
u64 hardirq_timer {}
u64 int_clock {}
u32 io_int_parm {}
u32 io_int_word {}
psw::zx_psw io_new_psw {}
psw::zx_psw io_old_psw {}
u32 ipl_parmblock_ptr {}
u64 kernel_asce {}
 Kernel ASCE (CR1) to load before enabling DAT.
u64 kernel_asce {}
u64 kernel_stack {}
u64 last_break {}
u64 last_break_save_area {}
u64 last_update_clock {}
u64 last_update_timer {}
constexpr u64 arch::s390x::cpu::lowcore::LC_AP_CR0 = 0x0330UL
 zx_lowcore::ap_cr0 (software-defined)
constexpr u64 arch::s390x::cpu::lowcore::LC_AP_CR13 = 0x0338UL
 zx_lowcore::ap_cr13 (software-defined)
constexpr u64 arch::s390x::cpu::lowcore::LC_ASYNC_STACK = 0x0350UL
 zx_lowcore::async_stack
constexpr u64 arch::s390x::cpu::lowcore::LC_CPU_ID_OFFSET = 0x0408UL
 percpu::cpu_id
constexpr u64 arch::s390x::cpu::lowcore::LC_CURRENT_DOMAIN = 0x0340UL
 zx_lowcore::current_domain — used by entry.S
constexpr u64 arch::s390x::cpu::lowcore::LC_EXT_OLD_PSW = 0x0130UL
 zx_lowcore::external_old_psw
constexpr u64 arch::s390x::cpu::lowcore::LC_IO_OLD_PSW = 0x0170UL
 zx_lowcore::io_old_psw
constexpr u64 arch::s390x::cpu::lowcore::LC_IRQ_CLASS = 0x0444UL
 percpu::current_irq_class — used by entry.S
constexpr u64 arch::s390x::cpu::lowcore::LC_IRQ_NESTING = 0x0438UL
 percpu::irq_nesting — used by entry.S
constexpr u64 arch::s390x::cpu::lowcore::LC_KERNEL_ASCE = 0x0388UL
 zx_lowcore::kernel_asce
constexpr u64 arch::s390x::cpu::lowcore::LC_KERNEL_STACK = 0x0348UL
 zx_lowcore::kernel_stack
constexpr u64 arch::s390x::cpu::lowcore::LC_MCCK_OLD_PSW = 0x0160UL
 zx_lowcore::mcck_old_psw
constexpr u64 arch::s390x::cpu::lowcore::LC_MCCK_STACK = 0x0368UL
 zx_lowcore::mcck_stack
constexpr u64 arch::s390x::cpu::lowcore::LC_NODAT_STACK = 0x0358UL
 zx_lowcore::nodat_stack
constexpr u64 arch::s390x::cpu::lowcore::LC_NUCLEUS_NESTING = 0x043CUL
 percpu::nucleus_nesting — used by entry.S
constexpr u64 arch::s390x::cpu::lowcore::LC_PERCPU_OFFSET = 0x0400UL
 zx_lowcore::percpu
constexpr u64 arch::s390x::cpu::lowcore::LC_PGM_OLD_PSW = 0x0150UL
 zx_lowcore::program_old_psw
constexpr u64 arch::s390x::cpu::lowcore::LC_PREEMPT_COUNT = 0x0430UL
 percpu::preempt_count — used by entry.S
constexpr u64 arch::s390x::cpu::lowcore::LC_PSW_TEMP = 0x0248UL
 Temporary PSW storage at start of pad_0x0248 – used by entry.S RESTORE_FRAME.
constexpr u64 arch::s390x::cpu::lowcore::LC_RESTART_STACK = 0x0360UL
 zx_lowcore::restart_stack
constexpr u64 arch::s390x::cpu::lowcore::LC_RETURN_PSW = 0x0290UL
 zx_lowcore::return_psw
constexpr u64 arch::s390x::cpu::lowcore::LC_SVC_OLD_PSW = 0x0140UL
 zx_lowcore::svc_old_psw
constexpr usize arch::s390x::cpu::lowcore::LOWCORE_SIZE = 0x2000UL
 8 KiB per z/Architecture PoP.
u32 lpp {}
u64 mcck_enter_timer {}
u64 mcck_interruption_code {}
psw::zx_psw mcck_new_psw {}
psw::zx_psw mcck_old_psw {}
u64 mcck_stack {}
u16 mon_class_num {}
u64 monitor_code {}
u64 nodat_stack {}
u8 op_access_id {}
u8 pad_0x0000 [0x0014 - 0x0000] {}
u8 pad_0x0018 [0x0080 - 0x0018] {}
u8 pad_0x00a4 [0x00a8 - 0x00a4] {}
u8 pad_0x00c4 [0x00c8 - 0x00c4] {}
u8 pad_0x00cc [0x00e8 - 0x00cc] {}
u8 pad_0x00f0 [0x00f4 - 0x00f0] {}
u8 pad_0x0100 [0x0110 - 0x0100] {}
u8 pad_0x0118 [0x0120 - 0x0118] {}
u8 pad_0x0180 [0x01a0 - 0x0180] {}
u8 pad_0x0258 [0x0280 - 0x0258] {}
u8 pad_0x0320 [0x0328 - 0x0320] {}
u8 pad_0x03b4 [0x03b8 - 0x03b4] {}
u8 pad_0x03c0 [0x0400 - 0x03c0] {}
u8 pad_0x1310 [0x1318 - 0x1310] {}
u8 pad_0x1320 [0x1324 - 0x1320] {}
u8 pad_0x1400_rest [0x1800 - 0x1400 - sizeof(zxfoundation::sys::syschk::zx_crash_record)] {}
u8 pad_0x1900 [0x2000 - 0x1900] {}
u8 pad_percpu_end [0x1200 -(0x0400+sizeof(percpu::percpu_data))] {}
u64 pcpu {}
u8 per_access_id {}
u64 per_address {}
u16 per_perc_atmid {}
percpu::percpu_data percpu {}
u64 percpu_offset {}
u16 pgm_code {}
u16 pgm_ilc {}
u64 pgm_tdb [32] {}
u64 phys_lc {}
 Physical address of the AP's 8 KB lowcore page.
i32 preempt_count {}
u32 prefixreg_save_area {}
psw::zx_psw program_new_psw {}
psw::zx_psw program_old_psw {}
psw::zx_psw psw_save_area {}
u64 restart_data {}
u32 restart_flags {}
u64 restart_fn {}
psw::zx_psw restart_old_psw {}
psw::zx_psw restart_psw {}
u32 restart_source {}
u64 restart_stack {}
psw::zx_psw return_mcck_psw {}
psw::zx_psw return_psw {}
psw::zx_psw return_psw_temp {}
u64 save_area_restart [1] {}
u64 save_area_sync [8] {}
u32 softirq_pending {}
u64 softirq_timer {}
u32 spinlock_index {}
u32 spinlock_lockval {}
u64 stack_canary {}
u64 steal_timer {}
u32 stfl_fac_list {}
u16 subchannel_id {}
u16 subchannel_nr {}
u16 svc_code {}
u16 svc_ilc {}
psw::zx_psw svc_new_psw {}
psw::zx_psw svc_old_psw {}
u64 sys_enter_timer {}
u64 system_timer {}
u32 tod_progreg_save_area {}
u64 trans_exc_code {}
u64 user_asce {}
u64 user_timer {}

Files

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