WRITE(9E) Driver Entry Points WRITE(9E)
NAME
write - write data to a device
SYNOPSIS
#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);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI). This entry point is
optional.
PARAMETERS
dev Device number.
uio_p Pointer to the
uio(9S) structure that describes where the
data is to be stored in user space.
cred_p Pointer to the user credential structure for the
I/O transaction.
DESCRIPTION
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.
RETURN VALUES
The
write() routine should return
0 for success, or the appropriate
error number.
EXAMPLES
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));
}
SEE ALSO
read(2),
write(2),
read(9E),
physio(9F),
cb_ops(9S),
uio(9S) Writing Device Drivers March 28, 1997 WRITE(9E)