home *** CD-ROM | disk | FTP | other *** search
Wrap
iiiiooooccccbbbbllllkkkk((((DDDD4444)))) iiiiooooccccbbbbllllkkkk((((DDDD4444)))) NNNNAAAAMMMMEEEE _iiii_oooo_cccc_bbbb_llll_kkkk - STREAMS _iiii_oooo_cccc_tttt_llll structure SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>> _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>> DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN The _iiii_oooo_cccc_bbbb_llll_kkkk structure describes a user's _iiii_oooo_cccc_tttt_llll(2) request. UUUUSSSSAAAAGGGGEEEE The _iiii_oooo_cccc_bbbb_llll_kkkk structure is used in _MMMM______IIII_OOOO_CCCC_TTTT_LLLL, _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK, and _MMMM______IIII_OOOO_CCCC_NNNN_AAAA_KKKK messages. Modules and drivers usually convert _MMMM______IIII_OOOO_CCCC_TTTT_LLLL messages into _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK or _MMMM______IIII_OOOO_CCCC_NNNN_AAAA_KKKK messages by changing the type and updating the relevant fields in the _iiii_oooo_cccc_bbbb_llll_kkkk structure. Data cannot be copied to the user's buffer with an _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK message if the _iiii_oooo_cccc_tttt_llll is transparent. No data can be copied to the user's buffer with an _MMMM______IIII_OOOO_CCCC_NNNN_AAAA_KKKK message. When processing a transparent _iiii_oooo_cccc_tttt_llll, the _iiii_oooo_cccc_bbbb_llll_kkkk structure is usually overlaid with a _cccc_oooo_pppp_yyyy_rrrr_eeee_qqqq(D4) structure. The stream head guarantees that the message is large enough to contain either structure. SSSSttttrrrruuuuccccttttuuuurrrreeee DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss The _iiii_oooo_cccc_bbbb_llll_kkkk structure contains the following members: _iiii_nnnn_tttt _iiii_oooo_cccc______cccc_mmmm_dddd_;;;; _////_**** _iiii_oooo_cccc_tttt_llll _cccc_oooo_mmmm_mmmm_aaaa_nnnn_dddd _****_//// _cccc_rrrr_eeee_dddd______tttt _****_iiii_oooo_cccc______cccc_rrrr_;;;; _////_**** _uuuu_ssss_eeee_rrrr _cccc_rrrr_eeee_dddd_eeee_nnnn_tttt_iiii_aaaa_llll_ssss _****_//// _uuuu_iiii_nnnn_tttt______tttt _iiii_oooo_cccc______iiii_dddd_;;;; _////_**** _iiii_oooo_cccc_tttt_llll _IIII_DDDD _****_//// _uuuu_iiii_nnnn_tttt______tttt _iiii_oooo_cccc______cccc_oooo_uuuu_nnnn_tttt_;;;; _////_**** _nnnn_uuuu_mmmm_bbbb_eeee_rrrr _oooo_ffff _bbbb_yyyy_tttt_eeee_ssss _oooo_ffff _dddd_aaaa_tttt_aaaa _****_//// _iiii_nnnn_tttt _iiii_oooo_cccc______eeee_rrrr_rrrr_oooo_rrrr_;;;; _////_**** _eeee_rrrr_rrrr_oooo_rrrr _cccc_oooo_dddd_eeee _ffff_oooo_rrrr _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK _oooo_rrrr _MMMM______IIII_OOOO_CCCC_NNNN_AAAA_KKKK _****_//// _iiii_nnnn_tttt _iiii_oooo_cccc______rrrr_vvvv_aaaa_llll_;;;; _////_**** _rrrr_eeee_tttt_uuuu_rrrr_nnnn _vvvv_aaaa_llll_uuuu_eeee _ffff_oooo_rrrr _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK _****_//// The _iiii_oooo_cccc______cccc_mmmm_dddd field is the _iiii_oooo_cccc_tttt_llll command request specified by the user. The _iiii_oooo_cccc______cccc_rrrr field contains a pointer to the user credentials. The _iiii_oooo_cccc______iiii_dddd field is the _iiii_oooo_cccc_tttt_llll ID, used to uniquely identify the _iiii_oooo_cccc_tttt_llll request in the stream. The _iiii_oooo_cccc______cccc_oooo_uuuu_nnnn_tttt field specifies the amount of user data contained in the _MMMM______IIII_OOOO_CCCC_TTTT_LLLL message. User data will appear in _MMMM______DDDD_AAAA_TTTT_AAAA message blocks linked to the _MMMM______IIII_OOOO_CCCC_TTTT_LLLL message block. If _iiii_oooo_cccc______cccc_oooo_uuuu_nnnn_tttt is set to the special value _TTTT_RRRR_AAAA_NNNN_SSSS_PPPP_AAAA_RRRR_EEEE_NNNN_TTTT, then the _iiii_oooo_cccc_tttt_llll request is ``transparent.'' This means that the user did not use the _IIII______SSSS_TTTT_RRRR format of STREAMS _iiii_oooo_cccc_tttt_lllls and the module or driver will have to obtain any user data with _MMMM______CCCC_OOOO_PPPP_YYYY_IIII_NNNN messages, and change any user data with _MMMM______CCCC_OOOO_PPPP_YYYY_OOOO_UUUU_TTTT messages. In this case, the _MMMM______DDDD_AAAA_TTTT_AAAA message block linked to the _MMMM______IIII_OOOO_CCCC_TTTT_LLLL message block contains the value of the _a_r_g parameter in the _iiii_oooo_cccc_tttt_llll system call. For an _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK message, the _iiii_oooo_cccc______cccc_oooo_uuuu_nnnn_tttt field specifies the amount of data to copy back to the user's buffer. PPPPaaaaggggeeee 1111 iiiiooooccccbbbbllllkkkk((((DDDD4444)))) iiiiooooccccbbbbllllkkkk((((DDDD4444)))) The _iiii_oooo_cccc______eeee_rrrr_rrrr_oooo_rrrr field can be used to set an error for either an _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK or an _MMMM______IIII_OOOO_CCCC_NNNN_AAAA_KKKK message. The _iiii_oooo_cccc______rrrr_vvvv_aaaa_llll field can be used to set the return value in an _MMMM______IIII_OOOO_CCCC_AAAA_CCCC_KKKK message. This will be returned to the user as the return value for the _iiii_oooo_cccc_tttt_llll system call that generated the request. RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS _cccc_oooo_pppp_yyyy_rrrr_eeee_qqqq(D4), _cccc_oooo_pppp_yyyy_rrrr_eeee_ssss_pppp(D4), _dddd_aaaa_tttt_aaaa_bbbb(D4), _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee_ssss(D5), _mmmm_ssss_gggg_bbbb(D4) PPPPaaaaggggeeee 2222