ccw devices

struct ccw_device - channel attached device
struct ccw_driver - device driver for channel attached devices
ccw_device_set_offline - disable a ccw device for I/O
ccw_device_set_online - enable a ccw device for I/O
get_ccwdev_by_busid - obtain device from a bus id
ccw_driver_register - register a ccw driver
ccw_driver_unregister - deregister a ccw driver
ccw_device_siosl - initiate logging
ccw_device_set_options_mask - set some options and unset the rest
ccw_device_set_options - set some options
ccw_device_clear_options - clear some options
ccw_device_is_pathgroup - determine if paths to this device are grouped
ccw_device_is_multipath - determine if device is operating in multipath mode
ccw_device_clear - terminate I/O request processing
ccw_device_start_key - start a s390 channel program with key
ccw_device_start_timeout_key - start a s390 channel program with timeout and key
ccw_device_start - start a s390 channel program
ccw_device_start_timeout - start a s390 channel program with timeout
ccw_device_halt - halt I/O request processing
ccw_device_resume - resume channel program execution
ccw_device_get_ciw - Search for CIW command in extended sense data.
ccw_device_get_path_mask - get currently available paths
ccw_device_get_id - obtain a ccw device id
ccw_device_tm_start_key - perform start function
ccw_device_tm_start_timeout_key - perform start function
ccw_device_tm_start - perform start function
ccw_device_tm_start_timeout - perform start function
ccw_device_get_mdc - accumulate max data count
ccw_device_tm_intrg - perform interrogate function

Devices that want to initiate channel I/O need to attach to the ccw bus. Interaction with the driver core is done via the common I/O layer, which provides the abstractions of ccw devices and ccw device drivers.

The functions that initiate or terminate channel I/O all act upon a ccw device structure. Device drivers must not bypass those functions or strange side effects may happen.