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

Centralized pgm dispatch. More...

import std;
import zxfoundation.base.types;
import arch.s390x.cpu.irq;
Include dependency graph for pgm.cxxm:

Go to the source code of this file.

Data Structures

union  arch::s390x::trap::pgm::vector_exception_code

Enumerations

enum class  data_exception_code : u8 {
  general_operand = 0x00 , afp_register = 0x01 , bfp_instruction = 0x02 , dfp_instruction = 0x03 ,
  quantum_exception = 0x04 , simulated_quantum_exception = 0x07 , ieee_inexact_and_truncated = 0x08 , simulated_ieee_inexact = 0x0B ,
  ieee_inexact_and_incremented = 0x0C , ieee_underflow_exact = 0x10 , simulated_ieee_underflow_exact = 0x13 , ieee_underflow_inexact_and_truncated = 0x18 ,
  simulated_ieee_underflow_inexact = 0x1B , ieee_underflow_inexact_and_incremented = 0x1C , ieee_overflow_exact = 0x20 , simulated_ieee_overflow_exact = 0x23 ,
  ieee_overflow_inexact_and_truncated = 0x28 , simulated_ieee_overflow_inexact = 0x2B , ieee_overflow_inexact_and_incremented = 0x2C , ieee_division_by_zero = 0x40 ,
  simulated_ieee_division_by_zero = 0x43 , ieee_invalid_operation = 0x80 , simulated_ieee_invalid_operation = 0x83 , vector_instruction = 0xFE ,
  compare_and_trap_instruction = 0xFF
}
enum class  vector_interruption_code : u8 {
  ieee_invalid_operation = 0b0001 , ieee_division_by_zero = 0b0010 , ieee_overflow = 0b0011 , ieee_underflow = 0b0100 ,
  ieee_inexact = 0b0101 , integer_divide = 0b1000
}

Functions

 arch::s390x::trap::pgm::assert_size (vector_exception_code, 1)
constexpr auto arch::s390x::trap::pgm::dxc_pgm_name_for (const u8 code) noexcept -> std::string_view
auto arch::s390x::trap::pgm::handle (cpu::irq::irq_frame *frame) noexcept -> void
 Centralized program-check dispatcher.
constexpr auto arch::s390x::trap::pgm::master_pgm_name_for (const u16 code) noexcept -> std::string_view
constexpr auto arch::s390x::trap::pgm::vxc_pgm_name_for (const vector_exception_code vxc) noexcept -> std::string_view

Variables

constexpr u16 arch::s390x::trap::pgm::PGM_ADDRESSING = 0x0005
constexpr u16 arch::s390x::trap::pgm::PGM_AFX_TRANSLATION = 0x0020
constexpr u16 arch::s390x::trap::pgm::PGM_ALFX_SUPER = 0x002A
constexpr u16 arch::s390x::trap::pgm::PGM_ALFX_TRANSLATION = 0x0027
constexpr u16 arch::s390x::trap::pgm::PGM_ALT_TRANSLATION = 0x0026
constexpr u16 arch::s390x::trap::pgm::PGM_ASCE_TYPE = 0x0038
constexpr u16 arch::s390x::trap::pgm::PGM_ASX_TRANSLATION = 0x0021
constexpr u16 arch::s390x::trap::pgm::PGM_DATA = 0x0007
constexpr u16 arch::s390x::trap::pgm::PGM_DECIMAL_DIVIDE = 0x000A
constexpr u16 arch::s390x::trap::pgm::PGM_EX_TRANSLATION = 0x0023
constexpr u16 arch::s390x::trap::pgm::PGM_EX_TRANSLATION_V = 0x0023
constexpr u16 arch::s390x::trap::pgm::PGM_EXECUTE = 0x0003
constexpr u16 arch::s390x::trap::pgm::PGM_FIXED_PT_DIVIDE = 0x0009
constexpr u16 arch::s390x::trap::pgm::PGM_FIXED_PT_OVERFLOW = 0x0008
constexpr u16 arch::s390x::trap::pgm::PGM_HFP_DIVIDE = 0x000E
constexpr u16 arch::s390x::trap::pgm::PGM_HFP_EXP_OVERFLOW = 0x000C
constexpr u16 arch::s390x::trap::pgm::PGM_HFP_EXP_UNDERFLOW = 0x000B
constexpr u16 arch::s390x::trap::pgm::PGM_HFP_SIGN_BIT = 0x000F
constexpr u16 arch::s390x::trap::pgm::PGM_HFP_SIGNIFICANCE = 0x000D
constexpr u16 arch::s390x::trap::pgm::PGM_LFX_TRANSLATION = 0x0028
constexpr u16 arch::s390x::trap::pgm::PGM_LFX_UNMAPPED = 0x002C
constexpr u16 arch::s390x::trap::pgm::PGM_LSX_TRANSLATION = 0x0029
constexpr u16 arch::s390x::trap::pgm::PGM_LSX_UNMAPPED = 0x002E
constexpr u16 arch::s390x::trap::pgm::PGM_LX_TRANSLATION = 0x0022
constexpr u16 arch::s390x::trap::pgm::PGM_MONITOR = 0x0040
constexpr u16 arch::s390x::trap::pgm::PGM_OPERATION = 0x0001
constexpr u16 arch::s390x::trap::pgm::PGM_PAGE_TRANS = 0x0011
constexpr u16 arch::s390x::trap::pgm::PGM_PRIVILEGED_OP = 0x0002
constexpr u16 arch::s390x::trap::pgm::PGM_PROTECTION = 0x0004
constexpr u16 arch::s390x::trap::pgm::PGM_REGION_FIRST_TRANS = 0x0039
constexpr u16 arch::s390x::trap::pgm::PGM_REGION_SECOND_TRANS = 0x003A
constexpr u16 arch::s390x::trap::pgm::PGM_REGION_THIRD_TRANS = 0x003B
constexpr u16 arch::s390x::trap::pgm::PGM_SEGMENT_TRANS = 0x0010
constexpr u16 arch::s390x::trap::pgm::PGM_SPECIAL_OPERATION = 0x0013
constexpr u16 arch::s390x::trap::pgm::PGM_SPECIFICATION = 0x0006
constexpr u16 arch::s390x::trap::pgm::PGM_STACK_OVERFLOW = 0x0035
constexpr u16 arch::s390x::trap::pgm::PGM_TRANSACTION_ABORT = 0x0200
constexpr u16 arch::s390x::trap::pgm::PGM_TRANSACTION_CONSTRAINT = 0x0218
constexpr u16 arch::s390x::trap::pgm::PGM_TRANSLATION_SPEC = 0x0012
constexpr u16 arch::s390x::trap::pgm::PGM_VECTOR_EMAX = 0x001D
constexpr u16 arch::s390x::trap::pgm::PGM_VECTOR_ENR = 0x001E
constexpr u16 arch::s390x::trap::pgm::PGM_VECTOR_ERTE = 0x001F
constexpr u16 arch::s390x::trap::pgm::PGM_VECTOR_OP = 0x001C

Detailed Description

Centralized pgm dispatch.

SPDX-License-Identifier: Apache-2.0