ZXFoundation™ 26h2
Loading...
Searching...
No Matches
arch.s390x.io.types Module Reference

Data Structures

struct  arch::s390x::io::crw_extensions< T >
struct  arch::s390x::io::irb_extensions< T >
struct  arch::s390x::io::scsw_extensions< T >
struct  arch::s390x::io::senseid_data
 Sense ID response data returned by CCW_CMD_SENSE_ID. More...

Enumerations

enum class  ccw_commands : u8 {
  write = 0b00000001 , read = 0b00000010 , read_backward = 0b00001100 , control = 0b00000011 ,
  sense = 0b00000100 , sense_id = 0b11100100 , tic = 0b00001000 , transport = 0b01000000
}
enum class  crw_erc : u8 {
  event_info_pending = 0b000000 , available = 0b000001 , initialized = 0b000010 , temporary_error = 0b000011 ,
  installed_param_init = 0b000100 , terminal = 0b000101 , perma_err_fac_not_init = 0b000110 , perma_err_fac_init = 0b000111 ,
  installed_param_modified = 0b001000 , installed_param_restored = 0b001010
}
enum class  crw_rsc : u8 {
  monitoring_facility = 0b0010 , subchannel = 0b0011 , channel_path = 0b0100 , config_alert_facility = 0b1001 ,
  channel_subsystem = 0b1011
}
enum class  esw0_sequence_code : u8 {
  nz_command_byte = 0b001 , accepted_no_transfer = 0b010 , polling_state = 0b011 , ccw_transmit_error = 0b100 ,
  unpredictable_transfer = 0b101
}
enum class  esw0_storage_access_code : u8 { unknown = 0b00 , read = 0b01 , write = 0b10 , read_backward = 0b11 }
enum class  esw0_termination_code : u8 { halt_sgn = 0b00 , normal_termination = 0b01 , clear_sgn = 0b10 }
enum class  irb_ecw_information : u8 { unpredictable = 0 , concurrent_sense = 1 , model_dependent = 2 }
enum class  pmcw_limit_mode : u8 { no_limit_checking = 0b00 , address_eq_greater_current = 0b01 , address_less_current = 0b10 }

Typedefs

using arch::s390x::io::ccw0
 Format-0 Channel Command Word (CCW0).
using arch::s390x::io::ccw1
 Format-1 CCW: 8 bytes, big-endian, used with Format-1 ORB.
using arch::s390x::io::ccw_common
 Format-1/0 Channel Command Word.
using arch::s390x::io::ccw_flags
using arch::s390x::io::crw
using arch::s390x::io::emw
 Extended Measurement Word.
using arch::s390x::io::erw
 Extended Report Word.
using arch::s390x::io::esw0
 Extended Status Word Format 0.
using arch::s390x::io::esw1
 Extended Status Word Format 1.
using arch::s390x::io::esw2
 Extended Status Word Format 2.
using arch::s390x::io::esw3 = esw1
 Extended Status Word Format 3.
using arch::s390x::io::esw_common
 Format-0/1/2/3 Extended Status Word.
using arch::s390x::io::iiw
using arch::s390x::io::io_interruption_code
using arch::s390x::io::irb
 Interruption Response Block.
using arch::s390x::io::orb
 Operation Request Block. (Command/Transport).
using arch::s390x::io::pmcw
 Path Management Control Word — subchannel configuration.
using arch::s390x::io::schib
 Subchannel Information Block.
using arch::s390x::io::scsw
 Subchannel Status Word — packed status from TSCH.
using arch::s390x::io::subchannel_id
 Subchannel Identifier Record.
using arch::s390x::io::tcw

Functions

auto arch::s390x::io::ccw_cmd_valid (const u8 cmd, bool dcw=false) noexcept -> bool
 Check if a CCW command is valid.
auto chpid (this const T &self) noexcept -> std::optional< u8 >
auto ecw_information_type (this const T &self) noexcept -> irb_ecw_information
auto has_device_error (this const T &self) noexcept -> bool
auto has_sch_error (this const T &self) noexcept -> bool
auto sch_no (this const T &self) noexcept -> std::optional< std::pair< u16, u8 > >

Variables

u8 _reserved {0}
 Reserved (0xFF when valid).
constexpr u8 arch::s390x::io::ACTL_CLEAR_PEND = 0x08
 Clear pending (PoP bit 23).
constexpr u8 arch::s390x::io::ACTL_DEV_ACTIVE = 0x02
 Device active (PoP bit 25).
constexpr u8 arch::s390x::io::ACTL_HALT_PEND = 0x10
 Halt pending (PoP bit 22).
constexpr u8 arch::s390x::io::ACTL_RESUME_PEND = 0x40
 Resume pending (PoP bit 20).
constexpr u8 arch::s390x::io::ACTL_SCH_ACTIVE = 0x04
 Subchannel active (PoP bit 24).
constexpr u8 arch::s390x::io::ACTL_START_PEND = 0x20
 Start pending (PoP bit 21).
constexpr u8 arch::s390x::io::ACTL_SUSPENDED = 0x01
 Suspended (PoP bit 26).
constexpr u8 arch::s390x::io::CCW_FLAG_CC = 0x40
 Command chaining (PoP bit 9).
constexpr u8 arch::s390x::io::CCW_FLAG_CD = 0x80
 Chain data (PoP bit 8).
constexpr u8 arch::s390x::io::CCW_FLAG_IDA = 0x04
 Indirect data addressing (PoP bit 13).
constexpr u8 arch::s390x::io::CCW_FLAG_MIDA = 0x01
 Modified IDA (PoP bit 15).
constexpr u8 arch::s390x::io::CCW_FLAG_PCI = 0x08
 Program-controlled interruption (PoP bit 12).
constexpr u8 arch::s390x::io::CCW_FLAG_SKIP = 0x10
 Skip data transfer (PoP bit 11).
constexpr u8 arch::s390x::io::CCW_FLAG_SLI = 0x20
 Suppress length indication (PoP bit 10).
constexpr u8 arch::s390x::io::CCW_FLAG_SUSPEND = 0x02
 Suspend channel program (PoP bit 14).
u8 cu_model {0}
 Control unit model.
u16 cu_type {0}
 Control unit type.
u8 dev_model {0}
 Device model.
constexpr u8 arch::s390x::io::DEV_STAT_ATTN = 0x80
 Attention.
constexpr u8 arch::s390x::io::DEV_STAT_BUSY = 0x10
 Busy.
constexpr u8 arch::s390x::io::DEV_STAT_CE = 0x08
 Channel end.
constexpr u8 arch::s390x::io::DEV_STAT_CUE = 0x20
 Control unit end.
constexpr u8 arch::s390x::io::DEV_STAT_DE = 0x04
 Device end.
constexpr u8 arch::s390x::io::DEV_STAT_MOD = 0x40
 Status modifier.
constexpr u8 arch::s390x::io::DEV_STAT_UC = 0x02
 Unit check.
constexpr u8 arch::s390x::io::DEV_STAT_UX = 0x01
 Unit exception.
u16 dev_type {0}
 Device type.
constexpr u8 arch::s390x::io::FCTL_CLEAR = 0x1
 Clear function (PoP bit 19).
constexpr u8 arch::s390x::io::FCTL_HALT = 0x2
 Halt function (PoP bit 18).
constexpr u8 arch::s390x::io::FCTL_START = 0x4
 Start function (PoP bit 17).
constexpr u16 arch::s390x::io::MAX_SCHID = 0xFFFF
 Maximum valid subchannel number (0-based).
constexpr u32 arch::s390x::io::MAX_SUBCHANNELS = 65536
 Maximum number of subchannels in the subchannel number space.
constexpr u8 arch::s390x::io::SCH_STAT_CC = 0x01
 Chaining check.
constexpr u8 arch::s390x::io::SCH_STAT_CHC = 0x04
 Channel control check.
constexpr u8 arch::s390x::io::SCH_STAT_CHD = 0x08
 Channel data check.
constexpr u8 arch::s390x::io::SCH_STAT_ICC = 0x02
 Interface control check.
constexpr u8 arch::s390x::io::SCH_STAT_INCL = 0x40
 Incorrect length.
constexpr u8 arch::s390x::io::SCH_STAT_PCI = 0x80
 Program-controlled interruption.
constexpr u8 arch::s390x::io::SCH_STAT_PROG = 0x20
 Program check.
constexpr u8 arch::s390x::io::SCH_STAT_PROT = 0x10
 Protection check.
constexpr u8 arch::s390x::io::STCTL_ALERT = 0x10
 Alert status (PoP bit 27).
constexpr u8 arch::s390x::io::STCTL_INTERMEDIATE = 0x08
 Intermediate status (PoP bit 28).
constexpr u8 arch::s390x::io::STCTL_PRIMARY = 0x04
 Primary status (PoP bit 29).
constexpr u8 arch::s390x::io::STCTL_SECONDARY = 0x02
 Secondary status (PoP bit 30).
constexpr u8 arch::s390x::io::STCTL_STATUS_PEND = 0x01
 Status pending (PoP bit 31).

Files

file  arch/s390x/io/types.cxxm