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

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

?? zbufsocklib.c

?? vxworks的完整的源代碼
?? 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一区二区三区免费野_久草精品视频
天天影视涩香欲综合网| 婷婷国产v国产偷v亚洲高清| 精品视频1区2区| 国产成人在线视频网站| 偷窥少妇高潮呻吟av久久免费| 久久综合九色综合97婷婷| 91成人免费在线视频| 国产精品主播直播| 蜜桃精品视频在线| 亚洲一区二区三区四区在线| 国产喷白浆一区二区三区| 一区二区三区在线观看欧美| 东方欧美亚洲色图在线| 国产精品视频你懂的| 国产伦理精品不卡| 国产日本一区二区| av一区二区三区在线| 日韩二区三区在线观看| 欧美性一区二区| 午夜电影一区二区三区| 国产女主播视频一区二区| 国产黄色精品网站| 日韩理论片在线| 国产三级一区二区| 久久综合九色综合欧美亚洲| 欧美高清视频一二三区 | 亚洲日本韩国一区| 国产日韩在线不卡| 久久久亚洲精品石原莉奈 | 亚洲精品视频在线| 国产精品白丝在线| 国产精品久久福利| 国产精品成人免费在线| 欧美激情综合五月色丁香小说| 精品1区2区在线观看| 欧美一区二区三区系列电影| 欧美美女视频在线观看| 欧美日韩一级二级三级| 欧美日韩一区三区四区| 欧美日韩视频一区二区| 欧美天天综合网| 欧美美女bb生活片| 日韩一区二区三区在线| 日韩欧美在线网站| 精品国产乱码久久久久久图片| 精品久久久久久久久久久久久久久| 日韩欧美二区三区| 久久精品一区二区三区av| 国产精品天干天干在线综合| 国产精品伦理在线| 一区二区三区加勒比av| 午夜影视日本亚洲欧洲精品| 视频在线在亚洲| 久久狠狠亚洲综合| 国产精品亚洲视频| jiyouzz国产精品久久| 欧美中文字幕一区| 日韩欧美另类在线| 国产亚洲污的网站| 亚洲精品免费播放| 三级一区在线视频先锋 | 在线观看国产日韩| 成人午夜在线视频| 成人app软件下载大全免费| 国产成人亚洲综合色影视| 成人国产亚洲欧美成人综合网 | 久久久久久久久岛国免费| 欧美视频一区二区三区在线观看 | 7799精品视频| 日韩欧美综合在线| 日本一区二区三区久久久久久久久不| 国产精品天干天干在观线| 亚洲黄色片在线观看| 日本vs亚洲vs韩国一区三区| 国模冰冰炮一区二区| 一本到高清视频免费精品| 91麻豆精品国产91久久久资源速度 | 久久精品国产99| 成人性生交大片免费看视频在线 | 国产一区二区0| 色婷婷久久久亚洲一区二区三区| 欧美一区二区三区免费| 中文字幕av资源一区| 五月天激情综合| 国产激情视频一区二区三区欧美 | 一级特黄大欧美久久久| 毛片基地黄久久久久久天堂| 北条麻妃一区二区三区| 91精品欧美久久久久久动漫| 国产精品久线观看视频| 美日韩黄色大片| 色哟哟一区二区| 久久久久国产精品人| 亚洲成人精品在线观看| 丁香一区二区三区| 日韩欧美国产小视频| 一区二区在线观看视频 | a4yy欧美一区二区三区| 精品国产91洋老外米糕| 亚洲午夜精品在线| 成人h动漫精品一区二| 日韩精品在线一区二区| 亚洲大片免费看| av色综合久久天堂av综合| 久久婷婷国产综合精品青草| 亚洲国产精品久久人人爱蜜臀| 成人精品视频一区| 久久综合狠狠综合久久激情| 午夜激情一区二区| 91精彩视频在线观看| 国产精品伦理在线| 国产精品影视天天线| 日韩一级大片在线| 亚洲18影院在线观看| 91免费观看视频在线| 国产精品区一区二区三区| 国产一区三区三区| 日韩精品一区在线观看| 青娱乐精品在线视频| 欧美日韩精品福利| 亚洲香肠在线观看| 欧美在线影院一区二区| 中文字幕在线一区免费| 成人免费视频播放| 日本一区二区电影| 国产成人精品影视| 久久久影视传媒| 国产成人无遮挡在线视频| 久久婷婷国产综合国色天香| 国内精品免费**视频| 久久久久久日产精品| 韩国在线一区二区| 精品理论电影在线| 国产一区二区伦理片| 久久综合999| 国产福利精品一区二区| 国产色综合久久| 成人听书哪个软件好| 国产欧美日韩综合精品一区二区| 国产精品一二三| 国产精品美女久久久久高潮| 成年人网站91| 中文字幕一区二区在线观看| 99re在线精品| 亚洲一区二区三区中文字幕| 欧美日韩视频在线一区二区| 日本欧美肥老太交大片| 欧美成人精品高清在线播放| 国产精品99久| 中文字幕日韩av资源站| 色猫猫国产区一区二在线视频| 亚洲国产精品一区二区久久恐怖片| 欧美理论片在线| 久久国产成人午夜av影院| 久久久久久免费网| 99国产精品久久久久久久久久| 亚洲欧美偷拍另类a∨色屁股| 91久久一区二区| 男人的天堂亚洲一区| 久久综合九色综合97婷婷 | 欧美日韩一区三区四区| 奇米精品一区二区三区在线观看一 | 亚洲自拍偷拍图区| 日韩欧美在线影院| 成人av网站在线观看免费| 亚洲一区视频在线观看视频| 日韩视频一区二区三区| 波多野结衣亚洲一区| 欧美日韩国产高清一区| 在线一区二区观看| 欧美精品三级日韩久久| 日韩亚洲欧美中文三级| 欧美美女一区二区三区| 欧美高清hd18日本| 欧美伦理影视网| 欧美日韩激情一区二区三区| 色香蕉成人二区免费| 欧美日韩中文国产| 精品美女一区二区三区| 精品国产乱码久久久久久影片| 日韩视频免费观看高清完整版在线观看 | 日韩无一区二区| 国产精品亚洲一区二区三区妖精 | 蜜桃视频第一区免费观看| 国产精品成人免费在线| 欧美一区二区在线免费播放| 高清不卡一二三区| 午夜欧美电影在线观看| 欧美国产精品v| 3d成人h动漫网站入口| 成人国产免费视频| 狠狠狠色丁香婷婷综合激情| 亚洲夂夂婷婷色拍ww47| 久久久久久免费毛片精品| 欧美色图免费看| 99精品在线观看视频| 国产精品综合网| 蜜臀va亚洲va欧美va天堂| 亚洲愉拍自拍另类高清精品| 欧美国产亚洲另类动漫|