Lines Matching refs:I
4 Device Driver I/O Support Routines
15 I/O access method. This gives relief to the device drivers as they don't
18 I/O (PIO), and other hardware features more. However, this implies that
19 either every single device driver needs to implement the hardware I/O
28 In order to build common device support for ESA/390 I/O interfaces, a
29 functional layer was introduced that provides generic I/O access methods to
32 The common device support layer comprises the I/O support routines defined
64 initiate an I/O request.
70 terminate the current I/O request processed on the device.
74 routine whenever an I/O interrupt is presented to the system. The do_IRQ()
76 interrupt handler according to the rules (flags) defined during I/O request
92 The following chapters describe the I/O related interface routines the
113 they are presenting I/O completion a unified way : I/O interruptions. Every
129 For internal use of the common I/O layer, these are still there. However,
138 imply specific I/O commands (channel command words - CCWs) in order to operate
147 In order to allow for easy I/O initiation the CDS layer provides a
150 and initiates an I/O request on behalf of the device driver. The
154 ESA/390 I/O commands itself, but must use the Linux/390 CDS interfaces instead.
156 For long running I/O request to be canceled, the CDS layer provides the
158 SUBCHANNEL (HSCH) command without having pending I/O requests. This function is
178 ccw_device_start() - Initiate I/O Request
180 The ccw_device_start() routines is the I/O request front-end processor. All
181 device driver I/O requests must be issued using this routine. A device driver
182 must not issue ESA/390 I/O commands itself. Instead the ccw_device_start()
187 with the associated I/O request when calling ccw_device_start().
214 cdev : ccw_device the I/O is destined for
219 particular I/O request.
220 lpm : defines the channel path to be used for a specific I/O
222 key : the storage key to use for the I/O (useful for operating on a
224 flag : defines the action to be performed for I/O processing
225 expires : timeout value in jiffies. The common I/O layer will terminate
267 -EBUSY - The device is currently processing a previous I/O request, or there is
272 When the I/O request completes, the CDS first level interrupt handler will
275 particular I/O request. If a pending device status was recognized,
276 intparm will be set to 0 (zero). This may happen during I/O initiation or delayed
278 current (last) I/O request. In case of a delayed status notification no special
279 interrupt will be presented to indicate I/O completion as the I/O request was
285 -ETIMEDOUT: the common I/O layer terminated the request after the specified
287 -EIO: the common I/O layer terminated the request due to an error state
340 or similar needs to be scheduled. During I/O processing the Linux/390 generic
341 I/O device driver support has already obtained the IRQ lock, i.e. the handler
345 If a device driver relies on an I/O request to be completed prior to start the
346 next it can reduce I/O processing overhead by chaining a NoOp I/O command
350 busy, not being able to process I/O requests for other devices on the same
354 In order to minimize I/O overhead, a device driver should use the
357 case all I/O interruptions are presented to the device driver until final
360 If a device is able to recover from asynchronously presented I/O errors, it can
361 perform overlapping I/O using the DOIO_EARLY_NOTIFICATION flag. While some
364 ready for the next I/O request and secondary status (device-end) when the data
368 can handle lost data on the network to allow for enhanced I/O processing.
372 presented to the device driver while overlapping I/O is performed. When a
378 (CCW) must start the I/O operation with the DOIO_ALLOW_SUSPEND option or the
400 -ENOTCONN - there is no I/O request pending for completion
406 ccw_device_halt() - Halt I/O Request Processing
410 a halt subchannel (HSCH) I/O command. For those purposes the ccw_device_halt()
419 intparm : interruption parameter; value is only used if no I/O
421 the I/O request is returned
441 ccw_device_clear() - Terminage I/O Request Processing
443 In order to terminate all I/O processing at the subchannel, the clear subchannel