亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? zbufsocklib.c

?? vxwork源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* zbufSockLib.c - zbuf socket interface library *//* Copyright 1984 - 2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01l,07may02,kbw  man page edits01k,15oct01,rae  merge from truestack ver 01l, base 01j (cleanup)01j,18oct00,zhu  check NULL for sockFdtosockFunc01i,29apr99,pul  Upgraded NPT phase3 code to tor2.0.001h,14mar99,jdi  doc: removed refs to config.h and/or configAll.h (SPR 25663).01h,02feb99,sgv  Added checks for zbuf support in the underlying backend in		 zbufSockSend,zbufSockSendto,zbufSockBufSend, zbufSockBufSendto,		 zbufSockRecv, zbufSockRecvfrom calls.01g,26oct95,rhp  doc: mention values for <flags> params in socket                 calls (SPR#4423)01f,10mar95,jdi  doc addn to zbufSockRecv(), zbufSockRecvfrom() as per dana.01e,11feb95,jdi  fixed doc style for `errno'.01d,23jan95,jdi  more doc tweaks.01c,12nov94,rhp  doc tweaks.01b,09nov94,rhp  library man page added, subroutine man pages edited.01a,08nov94,dzb  written.*//*DESCRIPTIONThis library contains routines that communicate over BSD sockets usingthe.I "zbuf interface"described in the zbufLib manual page.  These zbufsocket calls communicate over BSD sockets in a similar manner to thesocket routines in sockLib, but they avoid copying data unnecessarilybetween application buffers and network buffers.VXWORKS AE PROTECTION DOMAINSUnder VxWorks AE, this feature is accessible from the kernel protection domain only.  This restriction does not apply under non-AE versions of VxWorks.  To use this feature, include the INCLUDE_ZBUF_SOCK component.SEE ALSOzbufLib, sockLib *//* includes */#include "vxWorks.h"#include "zbufSockLib.h"#include "mbufSockLib.h"#include "sys/socket.h"#include "sockFunc.h"#include "netLib.h"/* locals */LOCAL ZBUF_SOCK_FUNC	zbufSockFuncNull =	/* null funcs for unconnected */    {    NULL,					/* zbufLibInit()	*/    NULL,					/* zbufSockSend()	*/    NULL,					/* zbufSockSendto()	*/    NULL,					/* zbufSockBufSend()	*/    NULL,					/* zbufSockBufSendto()	*/    NULL,					/* zbufSockRecv()	*/    NULL					/* zbufSockRecvfrom()	*/    };LOCAL ZBUF_SOCK_FUNC *	pZbufSockFunc = &zbufSockFuncNull;/* forward declarations */IMPORT SOCK_FUNC * sockFdtosockFunc (int s);/********************************************************************************* zbufSockLibInit - initialize the zbuf socket interface library** This routine initializes the zbuf socket interface* library.  It must be called before any zbuf socket routines are used.* It is called automatically when INCLUDE_ZBUF_SOCK is defined.** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS:* OK, or ERROR if the zbuf socket interface could not be initialized.*/STATUS zbufSockLibInit (void)    {    ZBUF_SOCK_FUNC *	pZbufSockFuncTemp;    /* call the back-end initialization routine */    if ((pZbufSockFuncTemp = _mbufSockLibInit()) == NULL)	return (ERROR);        pZbufSockFunc = pZbufSockFuncTemp;	/* connect socket back-end func table */    return (zbufLibInit (pZbufSockFunc->libInitRtn));    }/********************************************************************************* zbufSockSend - send zbuf data to a TCP socket** This routine transmits all of the data in <zbufId> to a previously* established connection-based (stream) socket.** The <zbufLen> parameter is used only for determining the amount of space* needed from the socket write buffer.  <zbufLen> has no effect on how many* bytes are sent; the entire zbuf is always transmitted.  If the length of* <zbufId> is not known, the caller must first determine it by calling* zbufLength().** This routine transfers ownership of the zbuf from the user application* to the VxWorks network stack.  The zbuf ID, <zbufId>, is deleted by this* routine, and should not be used after the routine is called, even if* an ERROR status is returned.  (Exceptions:  when the routine* fails because the zbuf socket interface library was not initialized or an* invalid zbuf ID was passed in, in which case there is no zbuf to delete.* Moreover, if the call fails during a non-blocking I/O socket write* with an `errno' of EWOULDBLOCK, then <zbufId> is not deleted; thus the* caller may send it again at a later time.)** You may OR the following values into the <flags> parameter with this* operation:** .iP "MSG_OOB (0x1)" 26* Out-of-band data.* * .iP "MSG_DONTROUTE (0x4)"* Send without using routing tables.* .LP* * VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS* The number of bytes sent, or ERROR if the call fails.** SEE ALSO: zbufLength(), zbufSockBufSend(), send()*/int zbufSockSend    (    int			s,		/* socket to send to */    ZBUF_ID		zbufId,		/* zbuf to transmit */    int			zbufLen,	/* length of entire zbuf */    int			flags		/* flags to underlying protocols */    )    {    SOCK_FUNC * pSockFunc = sockFdtosockFunc(s);    if (pSockFunc == NULL || pSockFunc->zbufRtn == NULL ||	(pSockFunc->zbufRtn)() == FALSE)	{	netErrnoSet (ENOTSUP);	return (ERROR);	}    return ((pZbufSockFunc->sendRtn == NULL) ? ERROR :	(pZbufSockFunc->sendRtn) (s, zbufId, zbufLen, flags));    }/********************************************************************************* zbufSockSendto - send a zbuf message to a UDP socket** This routine sends the entire message in <zbufId> to the datagram socket* named by <to>.  The socket <s> is the sending socket.** The <zbufLen> parameter is used only for determining the amount of space* needed from the socket write buffer.  <zbufLen> has no effect on how many* bytes are sent; the entire zbuf is always transmitted.  If the length of* <zbufId> is not known, the caller must first determine it by calling* zbufLength().** This routine transfers ownership of the zbuf from the user application* to the VxWorks network stack.  The zbuf ID <zbufId> is deleted by this* routine, and should not be used after the routine is called, even if* an ERROR status is returned.  (Exceptions:  when the routine* fails because the zbuf socket interface library was not initialized or an* invalid zbuf ID was passed in, in which case there is no zbuf to delete.* Moreover, if the call fails during a non-blocking I/O socket write* with an `errno' of EWOULDBLOCK, then <zbufId> is not deleted; thus the* caller may send it again at a later time.)** You may OR the following values into the <flags> parameter with this* operation:** .iP "MSG_OOB (0x1)" 26* Out-of-band data.* * .iP "MSG_DONTROUTE (0x4)"* Send without using routing tables.* .LP* * VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS* The number of bytes sent, or ERROR if the call fails.** SEE ALSO: zbufLength(), zbufSockBufSendto(), sendto()*/int zbufSockSendto    (    int			s,		/* socket to send to */    ZBUF_ID		zbufId,		/* zbuf to transmit */    int			zbufLen,	/* length of entire zbuf */    int			flags,		/* flags to underlying protocols */    struct sockaddr *	to,		/* recipient's address */    int			tolen		/* length of <to> socket addr */    )    {    SOCK_FUNC * pSockFunc = sockFdtosockFunc(s);        if (pSockFunc == NULL) 	{	netErrnoSet (ENOTSUP);	return (ERROR);	}    if ((pSockFunc->zbufRtn == NULL) || ((pSockFunc->zbufRtn)() == FALSE))	{	netErrnoSet (ENOTSUP);	return (ERROR);	}    return ((pZbufSockFunc->sendtoRtn == NULL) ? ERROR :	(pZbufSockFunc->sendtoRtn) (s, zbufId, zbufLen, flags, to, tolen));    }/********************************************************************************* zbufSockBufSend - create a zbuf from user data and send it to a TCP socket** This routine creates a zbuf from the user buffer <buf>, and transmits* it to a previously established connection-based (stream) socket.** The user-provided free routine callback at <freeRtn> is called when <buf>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品销魂美女一区二区三区| 欧美一区二区三区男人的天堂| 国产亚洲综合性久久久影院| 国模娜娜一区二区三区| 久久久久久亚洲综合影院红桃| 狠狠色丁香婷婷综合久久片| 日本一区二区三区国色天香| 成人精品gif动图一区| 亚洲免费观看高清完整版在线观看熊 | 国产高清久久久久| 中文字幕国产一区二区| 97久久精品人人澡人人爽| 亚洲精品免费在线播放| 欧美精品丝袜久久久中文字幕| 爽爽淫人综合网网站| 精品国产欧美一区二区| 成人美女在线视频| 亚洲午夜私人影院| 日韩欧美久久久| 成人av影视在线观看| 亚洲小说欧美激情另类| 欧美xxxxxxxxx| 波多野结衣91| 午夜精彩视频在线观看不卡| 精品国产一区二区三区久久久蜜月| 粉嫩13p一区二区三区| 亚洲一区中文日韩| 欧美成人乱码一区二区三区| 不卡的av电影在线观看| 天天免费综合色| 中文字幕va一区二区三区| 欧美日韩aaaaa| 成人手机在线视频| 五月激情综合网| 国产精品理论片| 欧美一级一级性生活免费录像| 国产**成人网毛片九色 | 亚洲va欧美va天堂v国产综合| 精品国产自在久精品国产| 色悠悠久久综合| 国产麻豆日韩欧美久久| 亚洲国产婷婷综合在线精品| 国产欧美日韩在线视频| 欧美精品色综合| 91麻豆福利精品推荐| 国产一区三区三区| 亚洲aⅴ怡春院| 亚洲欧洲三级电影| www一区二区| 欧美一区二区久久久| 91麻豆swag| 国产精品一区二区无线| 日韩成人精品在线| 亚洲影视资源网| 亚洲视频资源在线| 国产精品午夜免费| 欧美激情一区二区三区不卡| 欧美成人一区二区| 88在线观看91蜜桃国自产| 色婷婷久久久综合中文字幕| 国产激情一区二区三区四区| 麻豆成人久久精品二区三区小说| 一二三区精品视频| 亚洲天天做日日做天天谢日日欢 | 国产精品久久久久久久蜜臀| 精品久久五月天| 欧美一区二区日韩一区二区| 欧美日韩精品一区二区三区 | 狠狠狠色丁香婷婷综合久久五月| 亚洲亚洲精品在线观看| 亚洲综合一二三区| 国产精品黄色在线观看| 欧美高清一级片在线观看| 久久综合色婷婷| 久久综合狠狠综合| 日韩视频在线观看一区二区| 欧美一区二区在线播放| 3751色影院一区二区三区| 欧美久久久久久久久中文字幕| 色8久久精品久久久久久蜜| 色综合久久99| 在线亚洲一区二区| 欧美体内she精高潮| 欧美视频一区二区三区| 欧美精品三级日韩久久| 欧美一级日韩一级| 精品国产一区二区亚洲人成毛片| 2017欧美狠狠色| 国产无人区一区二区三区| 国产欧美综合色| 亚洲区小说区图片区qvod| 一区二区三区欧美在线观看| 亚洲最大成人网4388xx| 日韩av高清在线观看| 美女视频网站久久| 国产自产2019最新不卡| 国产69精品久久777的优势| 91视频在线观看| 欧美性淫爽ww久久久久无| 91麻豆精品国产91久久久更新时间| 欧美一区2区视频在线观看| 精品免费日韩av| 中文字幕亚洲一区二区va在线| 自拍av一区二区三区| 午夜精品久久久久久久久久久| 青青国产91久久久久久| 国产精品一二三四| 91福利资源站| 精品日韩一区二区三区免费视频| 欧美经典一区二区| 亚洲h在线观看| 国产激情精品久久久第一区二区| 色综合天天天天做夜夜夜夜做| 欧美精品第1页| 国产精品剧情在线亚洲| 视频一区国产视频| 国产999精品久久| 欧美酷刑日本凌虐凌虐| 欧美激情一区二区三区不卡| 亚洲国产精品一区二区www在线 | 欧美高清在线一区| 日韩国产欧美在线视频| 成人成人成人在线视频| 欧美一级二级在线观看| 亚洲素人一区二区| 国产一区二区成人久久免费影院 | 亚洲欧美韩国综合色| 日韩av在线发布| 91蜜桃婷婷狠狠久久综合9色| 精品国产乱码久久久久久影片| 亚洲人精品午夜| 国产精品456| 日韩一区二区免费电影| 亚洲一区在线观看免费 | 亚洲国产精品一区二区久久| 大胆亚洲人体视频| 日韩一卡二卡三卡国产欧美| 亚洲摸摸操操av| 国产91综合网| 欧美v国产在线一区二区三区| 亚洲综合在线五月| 99久久综合狠狠综合久久| 久久亚洲私人国产精品va媚药| 国产精品一二三区| 欧美一区二区久久久| 一区二区三区波多野结衣在线观看 | 久久99国产精品久久| 欧洲一区二区三区在线| 亚洲欧洲综合另类| 99综合影院在线| 亚洲国产成人私人影院tom| 国产在线精品一区二区夜色| 精品视频一区 二区 三区| 亚洲人成人一区二区在线观看 | 蜜臂av日日欢夜夜爽一区| 欧美日韩国产高清一区二区三区| 伊人开心综合网| 91麻豆123| 一区二区三区四区激情| 91小宝寻花一区二区三区| 国产精品色在线观看| 国产.欧美.日韩| 欧美国产精品劲爆| 国产成人午夜视频| 国产日本欧洲亚洲| 懂色av噜噜一区二区三区av| 国产欧美一区二区三区沐欲| 国产精品资源网| 久久一留热品黄| 高清不卡在线观看| 国产精品女同一区二区三区| www.色综合.com| 亚洲另类中文字| 欧美日本国产视频| 日本午夜精品一区二区三区电影| 欧美日韩在线不卡| 美女在线视频一区| 久久久久9999亚洲精品| 不卡的电影网站| 一区二区成人在线| 51精品视频一区二区三区| 久久99精品久久久| 久久久久久一二三区| 99re热这里只有精品免费视频| 亚洲精品乱码久久久久| 欧美日韩国产综合一区二区三区| 首页国产丝袜综合| 精品国产乱码久久久久久图片| 国产精品一区二区三区网站| 亚洲欧洲三级电影| 欧美乱妇一区二区三区不卡视频| 久久不见久久见中文字幕免费| 欧美韩日一区二区三区四区| 96av麻豆蜜桃一区二区| 天天综合色天天综合色h| 久久久亚洲高清| 91视视频在线直接观看在线看网页在线看 | 精品一区免费av| 亚洲色图20p| 日韩写真欧美这视频|