| OpenSS7 SS7 for the Common Man | © Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved. Last modified: Sat, 01 Nov 2008 10:41:52 GMT | ||||||||||||||||
| |||||||||||||||||
| Description: Manual PageKeywords: ss7 ss7/ip ss7 over ip ss7 mtp ss7 sccp ss7 tcap sigtran mtp sccp tcap openss7 acb56 linux telephony pstn linux telephony linux nebs linux compactpciM_IOCACKSection: Linux Fast-STREAMS DDI/DKI (9)Updated: 2008-10-31 Index Return to Main Contents NAMEM_IOCACK - STREAMS IO control acknowledgement messageFORMATThe M_IOCACK message block is a datab(9) structure and associated data buffer that contains structured data. An M_IOCACK message is a high priority message that consists of one M_IOCACK message block followed by zero or more M_DATA(9) message blocks. The M_IOCACK message block contains a iocblk(9) structure, formatted as follows:
struct iocblk {
int ioc_cmd; /* ioctl command type */
cred_t *ioc_cr; /* full credentials */
uint ioc_id; /* ioctl identifier */
ulong ioc_count; /* byte count for ioctl data */
int ioc_error; /* error code for M_IOCACK/NAK */
int ioc_rval; /* return value for M_IOCACK */
long ioc_filler[4]; /* reserved for future use */
#define ioc_flag ioc_filler[1]; /* IOC_NATIVE or IOC_ILP32 */
};
where,
INTERFACEDESCRIPTIONThe M_IOCACK message is generated and sent from the driver or module processing an M_IOCTL(9) message. The M_IOCACK message signals to the Stream head the positive acknowlegment of the M_IOCTL(9) message and completion of the ioctl(2s) system call. The message format is one M_IOCACK block (containing an iocblk(9) structure, see M_IOCTL(9)) followed by zero or more M_DATA(9) blocks. The iocblk(9) structure may contain a value in ioc_rval to be returned to the user process. It may also contain a value in ioc_error to be returned to the user process in errno(3). If this message is responding to an I_STR(7) ioctl(2s) [see streamio(7)], it may contain data from the receiving driver or module to be copied to the user process by the Stream head with copyout(9). In this case, message format is one M_IOCACK block followed by one or more M_DATA(9) blocks containing the user data. The responding driver or module will set ioc_count to the number of bytes to be copied out from the attached M_DATA(9) message block(s). The Stream head returns the data to the user if there is a corresponding outstanding M_IOCTL(9) request (that is, one with the same ioc_id). Otherwise, the M_IOCACK message is ignored and all blocks in the message are freed. Data can not be returned in an M_IOCACK message responding to a transparent M_IOCTL(9). The data must have been sent with preceding M_COPYOUT(9) message(s). If any M_DATA(9) blocks follow the M_IOCACK block, the Stream head will ignore and free them. When the Stream head receives an M_IOCACK, the outstanding ioctl(2s) request, if any, will succeed. The format and use of this message type is described further under M_IOCTL(9). M_IOCACK messages cannot be generated directly by a user level process. M_IOCACK messages arriving at a non-multiplexing driver can be discarded (ignored and freed). M_IOCACK message can be generated by drivers and modules responding to an M_IOCTL(9) message. M_IOCACK messages are consumed by the Stream head. USAGEGuidlines for procesing the M_IOCACK message are as follows:
NOTICESUnder Linux Fast-STREAMS[1] it is not possible to return an error and a return value at the same time. This is due to a Linux limitation in this regard. SEE ALSOCOMPATIBILITYThe M_IOCACK STREAMS message is compatible with SVR 4.2 MP STREAMS, and implementations based on SVR 4, with the following portability considerations:
See STREAMS(9) for additional compatibility information. CONFORMANCEHISTORYThe M_IOCACK message first appeared in SVR 3[4]. REFERENCES
TRADEMARKS
Other trademarks are the property of their respective owners. IDENTIFICATION
Copyright©1997-2008OpenSS7 Corp.
All Rights Reserved.
Index
This document was created by man2html, using the manual pages. Time: 11:08:19 GMT, May 24, 2013 | ||||||||||||||||
| OpenSS7 SS7 for the Common Man |
| ||||||||||||||||
| Last modified: Sat, 01 Nov 2008 10:41:52 GMT © Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved. |