man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2014
 
 

miocack(9F)

Name

miocack - Positively acknowledge an M_IOCTL message

Synopsis

#include <sys/stream.h>
#include <sys/strsun.h>

void miocack(queue_t *wq, mblk_t *mp, intcount, int rval);

Interface Level

Solaris DDI specific (Solaris DDI).

Parameters

wq

Write queue associated with the read queue to send the M_IOCACK on.

mp

M_IOCTL message.

count

Value to set the ioc_count of the iocblk(9S) to.

rval

Value to set the ioc_rval of the iocblk(9S) to.

Description

The miocack() function converts an M_IOCTL message into a M_IOCACK message and sends the resulting message upstream.

To convert the message, miocack() changes the message type to M_IOCACK, sets the 'ioc_count' and 'ioc_rval' members of the iocblk(9S) associated with mp to the passed-in values, and clears the 'ioc_error' field. If the caller specifies a non-zero value for count, it is expected that the caller has already set 'mp->b_cont' field to point to a message block with a length of at least count bytes.

Callers that only need to perform the message conversion, or need to perform additional steps between the conversion and the sending of the M_IOCACK should use mioc2ack(9F).

Return Values

None.

Context

This function can be called from user, kernel or interrupt context.

Notes

Callers must not hold any locks across a miocack() that can be acquired as part of put(9E) processing.

See Also

mioc2ack(9F), put(9E), iocblk(9S)

STREAMS Programming Guide