home *** CD-ROM | disk | FTP | other *** search
Wrap
tttt____ooooppppeeeennnn((((3333NNNN)))) tttt____ooooppppeeeennnn((((3333NNNN)))) NNNNAAAAMMMMEEEE _tttt______oooo_pppp_eeee_nnnn - establish a transport endpoint SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS _####_iiii_ffff_dddd_eeee_ffff ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_xxxx_tttt_iiii_...._hhhh_>>>> _####_eeee_llll_ssss_eeee _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_tttt_iiii_uuuu_ssss_eeee_rrrr_...._hhhh_>>>> _####_eeee_nnnn_dddd_iiii_ffff _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ffff_cccc_nnnn_tttt_llll_...._hhhh_>>>> _iiii_nnnn_tttt _tttt______oooo_pppp_eeee_nnnn _((((_cccc_hhhh_aaaa_rrrr _pppp_aaaa_tttt_hhhh_,,,, _iiii_nnnn_tttt _oooo_ffff_llll_aaaa_gggg_,,,, _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt______iiii_nnnn_ffff_oooo _****_iiii_nnnn_ffff_oooo_))))_;;;; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN _tttt______oooo_pppp_eeee_nnnn must be called as the first step in the initialization of a transport endpoint. This function establishes a transport endpoint by opening a UNIX file that identifies a particular transport provider (that is, transport protocol) and returning a file descriptor that identifies that endpoint. For example, opening the file _////_dddd_eeee_vvvv_////_iiii_ssss_oooo______cccc_oooo_tttt_ssss identifies an OSI connection-oriented transport layer protocol as the transport provider. _pppp_aaaa_tttt_hhhh points to the path name of the file to open, and _oooo_ffff_llll_aaaa_gggg identifies any open flags [as in _oooo_pppp_eeee_nnnn(2)]. _oooo_ffff_llll_aaaa_gggg may be constructed from _OOOO______NNNN_DDDD_EEEE_LLLL_AAAA_YYYY or _OOOO______NNNN_OOOO_NNNN_BBBB_LLLL_OOOO_CCCC_KKKK _OOOO_RRRR-ed with _OOOO______RRRR_DDDD_WWWW_RRRR. These flags are defined in the header file _<<<<_ffff_cccc_nnnn_tttt_llll_...._hhhh_>>>>. _tttt______oooo_pppp_eeee_nnnn returns a file descriptor that will be used by all subsequent functions to identify the particular local transport endpoint. _tttt______oooo_pppp_eeee_nnnn also returns various default characteristics of the underlying transport protocol by setting fields in the _tttt______iiii_nnnn_ffff_oooo structure. The _tttt______iiii_nnnn_ffff_oooo argument points to a _tttt______iiii_nnnn_ffff_oooo structure that contains the following members: _llll_oooo_nnnn_gggg _aaaa_dddd_dddd_rrrr_;;;;/* maximum size of the transport protocol address */ _llll_oooo_nnnn_gggg _oooo_pppp_tttt_iiii_oooo_nnnn_ssss_;;;;/* maximum number of bytes of protocol-specific options */ _llll_oooo_nnnn_gggg _tttt_ssss_dddd_uuuu_;;;;/* maximum size of a transport service data unit (_TTTT_SSSS_DDDD_UUUU) */ _llll_oooo_nnnn_gggg _eeee_tttt_ssss_dddd_uuuu_;;;;/* maximum size of an expedited transport service data unit (_EEEE_TTTT_SSSS_DDDD_UUUU) */ _llll_oooo_nnnn_gggg _cccc_oooo_nnnn_nnnn_eeee_cccc_tttt_;;;;/* maximum amount of data allowed on connection establishment functions */ _llll_oooo_nnnn_gggg _dddd_iiii_ssss_cccc_oooo_nnnn_;;;;/* maximum amount of data allowed on _tttt______ssss_nnnn_dddd_dddd_iiii_ssss and _tttt______rrrr_cccc_vvvv_dddd_iiii_ssss functions */ _llll_oooo_nnnn_gggg _ssss_eeee_rrrr_vvvv_tttt_yyyy_pppp_eeee_;;;;/* service type supported by the transport provider */ _####_iiii_ffff_dddd_eeee_ffff ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE _llll_oooo_nnnn_gggg _ffff_llll_aaaa_gggg_ssss_;;;;/* other info about the transport provider */ _####_eeee_nnnn_dddd_iiii_ffff The values of the fields have the following meanings: PPPPaaaaggggeeee 1111 tttt____ooooppppeeeennnn((((3333NNNN)))) tttt____ooooppppeeeennnn((((3333NNNN)))) _aaaa_dddd_dddd_rrrr A value greater than or equal to zero indicates the maximum size of a transport protocol address; a value of -1 specifies that there is no limit on the address size; and a value of -2 specifies that the transport provider does not provide user access to transport protocol addresses. _oooo_pppp_tttt_iiii_oooo_nnnn_ssss A value greater than or equal to zero indicates the maximum number of bytes of protocol-specific options supported by the provider; a value of -1 specifies that there is no limit on the option size; and a value of -2 specifies that the transport provider does not support user-settable options. _tttt_ssss_dddd_uuuu A value greater than zero specifies the maximum size of a transport service data unit (_TTTT_SSSS_DDDD_UUUU); a value of zero specifies that the transport provider does not support the concept of _TTTT_SSSS_DDDD_UUUU, although it does support the sending of a data stream with no logical boundaries preserved across a connection; a value of -1 specifies that there is no limit on the size of a _TTTT_SSSS_DDDD_UUUU; and a value of -2 specifies that the transfer of normal data is not supported by the transport provider. _eeee_tttt_ssss_dddd_uuuu A value greater than zero specifies the maximum size of an expedited transport service data unit (_EEEE_TTTT_SSSS_DDDD_UUUU); a value of zero specifies that the transport provider does not support the concept of _EEEE_TTTT_SSSS_DDDD_UUUU, although it does support the sending of an expedited data stream with no logical boundaries preserved across a connection; a value of -1 specifies that there is no limit on the size of an _EEEE_TTTT_SSSS_DDDD_UUUU; and a value of -2 specifies that the transfer of expedited data is not supported by the transport provider. _cccc_oooo_nnnn_nnnn_eeee_cccc_tttt A value greater than or equal to zero specifies the maximum amount of data that may be associated with connection establishment functions; a value of -1 specifies that there is no limit on the amount of data sent during connection establishment; and a value of -2 specifies that the transport provider does not allow data to be sent with connection establishment functions. _dddd_iiii_ssss_cccc_oooo_nnnn A value greater than or equal to zero specifies the maximum amount of data that may be associated with the _tttt______ssss_nnnn_dddd_dddd_iiii_ssss and _tttt______rrrr_cccc_vvvv_dddd_iiii_ssss functions; a value of -1 specifies that there is no limit on the amount of data sent with these abortive release functions; and a value of -2 specifies that the transport provider does not allow data to be sent with the abortive release functions. _ssss_eeee_rrrr_vvvv_tttt_yyyy_pppp_eeee This field specifies the service type supported by the transport provider, as described below. PPPPaaaaggggeeee 2222 tttt____ooooppppeeeennnn((((3333NNNN)))) tttt____ooooppppeeeennnn((((3333NNNN)))) _ffff_llll_aaaa_gggg_ssss If ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE is defined, then this structure element will exist. This is a bit field used to specify other information about the transport provider. If the T_SENDZERO bit is set in _ffff_llll_aaaa_gggg_ssss, this indicates that the underlying transport provider supports the sending of zero-length TSDUs. Following is a dicussion of the separate issue of zero-length fragments within a _TTTT_SSSS_DDDD_UUUU. Sending data of zero octets: The transport service definition, both in connection- oriented mode and in connectionless mode, does not permit sending a _TTTT_SSSS_DDDD_UUUU of zero octets. So, in connectionless mode, if the _llll_eeee_nnnn parameter is set to zero, the _tttt______ssss_nnnn_dddd_uuuu_dddd_aaaa_tttt_aaaa() call will always return unsuccessfully with _----_1111 and _tttt______eeee_rrrr_rrrr_nnnn_oooo set to _TTTT_BBBB_AAAA_DDDD_DDDD_AAAA_TTTT_AAAA. In connection-oriented mode, if the _nnnn_bbbb_yyyy_tttt_eeee_ssss parameter is set to zero, the _tttt______ssss_nnnn_dddd() call will return with _----_1111 and _tttt______eeee_rrrr_rrrr_nnnn_oooo set to _TTTT_BBBB_AAAA_DDDD_DDDD_AAAA_TTTT_AAAA if either the T_MORE flag is set or the T_MORE flag is not set and the preceding _tttt______ssss_nnnn_dddd() call completed a _TTTT_SSSS_DDDD_UUUU or _EEEE_TTTT_SSSS_DDDD_UUUU (that is, the call has requested sending a zero byte _TTTT_SSSS_DDDD_UUUU or _EEEE_TTTT_SSSS_DDDD_UUUU. If a transport user is concerned with protocol independence, the above sizes may be accessed to determine how large the buffers must be to hold each piece of information. Alternatively, the _tttt______aaaa_llll_llll_oooo_cccc function may be used to allocate these buffers. An error will result if a transport user exceeds the allowed data size on any function. The _ssss_eeee_rrrr_vvvv_tttt_yyyy_pppp_eeee field of _iiii_nnnn_ffff_oooo may specify one of the following values on return: _TTTT______CCCC_OOOO_TTTT_SSSS The transport provider supports a connection-mode service but does not support the optional orderly release facility. _TTTT______CCCC_OOOO_TTTT_SSSS______OOOO_RRRR_DDDD The transport provider supports a connection-mode service with the optional orderly release facility. _TTTT______CCCC_LLLL_TTTT_SSSS The transport provider supports a connectionless-mode service. For this service type, _tttt______oooo_pppp_eeee_nnnn will return -2 for _eeee_tttt_ssss_dddd_uuuu, _cccc_oooo_nnnn_nnnn_eeee_cccc_tttt, and _dddd_iiii_ssss_cccc_oooo_nnnn. A single transport endpoint may support only one of the above services at one time. If _iiii_nnnn_ffff_oooo is set to _NNNN_UUUU_LLLL_LLLL by the transport user, no protocol information is returned by _tttt______oooo_pppp_eeee_nnnn. This function resides within both the X/Open compliant _llll_iiii_bbbb_xxxx_nnnn_eeee_tttt and the SVR4 compliant _llll_iiii_bbbb_nnnn_ssss_llll Network Services libraries. Network Services applications which require X/Open compliance must link-load with _----_llll_xxxx_nnnn_eeee_tttt. Network Services applications which require SVR4 compliance must link- load with _----_llll_nnnn_ssss_llll. PPPPaaaaggggeeee 3333 tttt____ooooppppeeeennnn((((3333NNNN)))) tttt____ooooppppeeeennnn((((3333NNNN)))) On failure, _tttt______eeee_rrrr_rrrr_nnnn_oooo may be set to the following: _TTTT_SSSS_YYYY_SSSS_EEEE_RRRR_RRRR A system error has occurred during execution of this function. _TTTT_BBBB_AAAA_DDDD_FFFF_LLLL_AAAA_GGGG An invalid flag is specified. _TTTT_BBBB_AAAA_DDDD_NNNN_AAAA_MMMM_EEEE If ______XXXX_OOOO_PPPP_EEEE_NNNN______SSSS_OOOO_UUUU_RRRR_CCCC_EEEE is defined, then when an invalid transport provider name is encountered, this value is returned within _tttt______eeee_rrrr_rrrr_nnnn_oooo. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS _tttt______oooo_pppp_eeee_nnnn returns a valid file descriptor on success and -1 on failure and _tttt______eeee_rrrr_rrrr_nnnn_oooo is set to indicate the error. NNNNOOOOTTTTEEEESSSS If _tttt______oooo_pppp_eeee_nnnn is used on a non-TLI-conforming STREAMS device, unpredictable events may occur. SSSSEEEEEEEE AAAALLLLSSSSOOOO _oooo_pppp_eeee_nnnn(2) PPPPaaaaggggeeee 4444