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

Data Structures

struct  arch::s390x::io::css::subchannel_entry
 Per-subchannel bookkeeping entry. More...

Enumerations

enum class  subchannel_state : u8 {
  free = 0 , probing = 1 , idle = 2 , active = 3 ,
  halting = 4
}
 Lifecycle state of a subchannel entry.

Typedefs

using arch::s390x::io::css::io_completion_sink_fn
 Kernel I/O completion sink.

Functions

auto arch::s390x::io::css::available_lpm (u32 sch_index) noexcept -> u8
 Return the hardware-available logical path mask for a binding.
auto arch::s390x::io::css::claim_binding (u32 sch_index, u32 binding_id, u32 binding_generation) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Exclusively associate an active I/O binding with a subchannel.
auto arch::s390x::io::css::clear_io (u32 sch_index) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Clear I/O on a subchannel (issue CSCH).
auto arch::s390x::io::css::find_device (u16 dev_type, u16 dev_model) noexcept -> ::std::expected< u32, ::lib::kernel_error >
 Find a subchannel by SENSE-ID device type and model.
auto arch::s390x::io::css::get_entry (u32 index) noexcept -> subchannel_entry *
 Return a pointer to a subchannel entry by index.
auto arch::s390x::io::css::halt_io (u32 sch_index) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Halt I/O on a subchannel (issue HSCH).
auto arch::s390x::io::css::init () noexcept -> void
 Probe all subchannels, enable valid ones, and populate the table.
auto arch::s390x::io::css::install_completion_sink (io_completion_sink_fn sink) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Install the nucleus I/O completion sink.
auto arch::s390x::io::css::io_interrupt (u32 sch_no) noexcept -> void
 Called from the I/O interrupt handler to drain status.
auto operator= (const subchannel_entry &)=delete
auto operator= (subchannel_entry &&)=delete
auto arch::s390x::io::css::release_binding (u32 sch_index, u32 binding_id, u32 binding_generation) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Remove an exact subchannel-binding association after I/O fencing.
auto arch::s390x::io::css::start_io (u32 sch_index, orb &orb_ref) noexcept -> ::std::expected< void, ::lib::kernel_error >
 Start I/O on a subchannel.
auto arch::s390x::io::css::subchannel_count () noexcept -> u32
 Return the number of probed subchannels.
 subchannel_entry (const subchannel_entry &)=delete
 subchannel_entry (subchannel_entry &&)=delete
auto arch::s390x::io::css::test_io (u32 sch_index, irb &irb_ref) noexcept -> ::std::expected< condition_code, ::lib::kernel_error >
 Test I/O on a subchannel (issue TSCH).

Variables

u8 _pad0 [1] {}
u32 active_binding_id {~0U}
u8 available_lpm {0}
u32 binding_generation {0}
u32 binding_id {~0U}
u16 devno {0xFFFF}
std::atomic< u32 > io_done {0}
zxfoundation::sync::waitqueue::wait_head io_wait {}
irb last_irb {}
subchannel_id schid {}
senseid_data sense {}
subchannel_state state {subchannel_state::free}

Files

file  arch/s390x/io/css.zcomponent/subchannel.cxxm
file  arch/s390x/io/css.zcomponent/subchannel.cxx