copyresp(D4)copyresp(D4)NAMEcopyresp - STREAMS transparent ioctl copy response structure
SYNOPSIS
#include <sys/stream.h>
#include <sys/ddi.h>
DESCRIPTION
The copyresp structure contains information in response to a prior copy
request necessary to continue processing transparent ioctls.
USAGE
M_IOCDATA messages, generated by the stream head, contain the copyresp
structure.
If an M_IOCDATA message is reused, any unused fields in the new message
should be cleared.
Structure Definitions
The copyresp structure contains the following members:
int cp_cmd; /* ioctl command */
cred_t *cp_cr; /* user credentials */
uint_t cp_id; /* ioctl ID */
caddr_t cp_rval; /* status of request */
mblk_t *cp_private; /* module private data */
The cp_cmd field is the ioctl command, copied from the cq_cmd field of
the copyreq structure.
The cp_cr field contains a pointer to the user credentials. It is copied
from the cq_cr field of the copyreq structure.
The cp_id field is the ioctl ID, copied from the cq_id field of the
copyreq structure. It is used to uniquely identify the ioctl request in
the stream.
The cq_rval field contains the return value from the last copy request.
If the request succeeded, it is set to 0. Otherwise, if it is non-zero,
the request failed. On success, the module or driver should continue
processing the ioctl. On failure, the module or driver should abort
ioctl processing and free the message. No M_IOCNAK message need be
generated.
The cp_private field is copied from the cq_private field of the copyreq
structure. It is available so that the module or driver can regain
enough state information to continue processing the ioctl request. When
the M_IOCDATA message is freed, any message that cp_private refers to is
not freed by the STREAMS subsystem. It is the responsibility of the
module or driver to free it.
Page 1
copyresp(D4)copyresp(D4)REFERENCEScopyreq(D4), datab(D4), iocblk(D4), messages(D5), msgb(D4)
Page 2