Skip Navigation Links | |
Exit Print View | |
man pages section 9: DDI and DKI Driver Entry Points Oracle Solaris 11 Information Library |
- write data to a device
#include <sys/types.h> #include <sys/errno.h> #include <sys/open.h> #include <sys/cred.h> #include <sys/ddi.h> #include <sys/sunddi.h> int prefixwrite(dev_t dev, struct uio *uio_p, cred_t *cred_p);
Architecture independent level 1 (DDI/DKI). This entry point is optional.
Device number.
Pointer to the uio(9S) structure that describes where the data is to be stored in user space.
Pointer to the user credential structure for the I/O transaction.
Used for character or raw data I/O, the driver write() routine is called indirectly through cb_ops(9S) by the write(2) system call. The write() routine supervises the data transfer from user space to a device described by the uio(9S) structure.
The write() routine should check the validity of the minor number component of dev and the user credentials pointed to by cred_p, if pertinent.
The write() routine should return 0 for success, or the appropriate error number.
The following is an example of a write() routine using physio(9F) to perform writes to a seekable device:
static int xxwrite(dev_t dev, struct uio *uiop, cred_t *credp) { int instance; xx_t xx; instance = getminor(dev); xx = ddi_get_soft_state(xxstate, instance); if (xx == NULL) return (ENXIO); return (physio(xxstrategy, NULL, dev, B_WRITE, xxmin, uiop)); }
read(2), write(2), read(9E), physio(9F), cb_ops(9S), uio(9S)