write(D2)
write - write data to a device
Showing IRIX 6.5.30 (default release). Unchanged since IRIX 6.5.
NAME write - write data to a device SYNOPSIS #include <sys/types.h> #include <sys/errno.h> #include <sys/uio.h> #include <sys/cred.h> #include <sys/ddi.h> int prefixwrite(dev_t dev, uio_t *uiop, cred_t *crp); Arguments dev Device number. uiop Pointer to the uio(D4) structure that describes where the data is to be fetched from user space. crp Pointer to the user credential structure for the I/O transaction. DESCRIPTION The driver write routine is called during the write(2) system call. The write routine is responsible for transferring data from the user data area to the device. Return Values The write routine should return 0 for success, or the appropriate error number. USAGE This entry point is optional, and is valid for character device drivers only. The pointer to the user credentials, crp, is available so the driver can check to see if the user can write privileged information, if the driver provides access to any. The uio structure provides the information necessary to determine how much data should be transferred. The uiomove(D3) function provides a convenient way to copy data using the uio structure. Block drivers that provide a character interface can use physiock(D3) to perform the data transfer with the driver's strategy(D2) routine. Synchronization Constraints The write routine has user context and can sleep. The write operation is intended to be synchronous from the caller's perspective. Minimally, the driver write routine should not return until the caller's buffer is no longer needed. For drivers that care about returning errors, the data should be committed to the device. For others, the data might only be copied to local staging buffers. Then the data will be committed to the device asynchronously to the user's request, losing the ability to return an error with the associated request. REFERENCES drv_priv(D3), errnos(D5), physiock(D3), read(D2), strategy(D2), uio(D4), uiomove(D3), uwritec(D3)