.\" This manpage has been automatically generated by docbook2man .\" from a DocBook document. This tool can be found at: .\" .\" Please send any bug reports, improvements, comments, patches, .\" etc. to Steve Cheng . .TH "SKEL_WRITE" "" "06 October 2005" "" "" .SH NAME skel_write \- .SH SYNOPSIS "SYNOPSIS" .sp \fB .sp ssize_t skel_write (struct file * \fIfile\fB, const char * \fIbuffer\fB, size_t \fIcount\fB, loff_t * \fIppos\fB); \fR .SH "ARGUMENTS" .TP \fB\fIfile\fB\fR -- undescribed -- .TP \fB\fIbuffer\fB\fR -- undescribed -- .TP \fB\fIcount\fB\fR -- undescribed -- .TP \fB\fIppos\fB\fR -- undescribed -- .SH "DESCRIPTION" .PP .PP A device driver has to decide how to report I/O errors back to the user. The safest course is to wait for the transfer to finish before returning so that any errors will be reported reliably. \fBskel_read\fR works like this. But waiting for I/O is slow, so many drivers only check for errors during I/O initiation and do not report problems that occur during the actual transfer. That's what we will do here. .PP A driver concerned with maximum I/O throughput would use double- .SH "BUFFERING" .PP Two urbs would be devoted to write transfers, so that one urb could always be active while the other was waiting for the user to send more data.