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

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

?? pppsioadapter.c

?? 這是全套的PPP協議的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	{        if (pfwParameterAdd ((PFW_PLUGIN_OBJ *)pComponent,			sioAdptrParams[i].name, sioAdptrParams[i].handler)			== ERROR)	    {	    logMsg ("sioAdptrCreate - Parameter %s could not be added\n",	    (int)sioAdptrParams[i].name,2,3,4,5,6);	    return (ERROR);	    }	}    /* allocate an array for the number of channels specified */     if ((pComponent->channelMap = (PFW_PLUGIN_OBJ_STATE **) pfwMalloc		(pfw,numSioChannels * sizeof(PFW_PLUGIN_OBJ_STATE *))) == NULL)	return ERROR;    bzero ((void *)pComponent->channelMap, 		numSioChannels * sizeof(PFW_PLUGIN_OBJ_STATE *));    return OK;    }/******************************************************************************** sioAdapterDelete - delete the SIO adapter component from the framework** The SIO_ADAPTER plug-in component object allocated by sioAdapterCreate() is * freed if there are no references to this object from a * Stack or Profile object in the framework.** RETURNS: OK or ERROR*/STATUS sioAdapterDelete    (    PFW_OBJ * pfw        	/* framework */    )    {    PFW_COMPONENT_OBJ *pComponent;    SIO_ADPTR_COMPONENT * sioComponent;    pComponent = pfwComponentObjGetByName(pfw,"SIO_ADAPTER");    if (pComponent == NULL)	return ERROR;    if (pfwComponentDelete(pComponent) != OK)	return ERROR;    sioComponent = (SIO_ADPTR_COMPONENT *)pComponent;    pfwFree(sioComponent->channelMap);    semDelete(sioComponent->sioAdptrMutex);    pfwFree(pComponent);    return OK;    }/******************************************************************************** sioAdptrProfileDataConstruct - initialize SIO adapter profile data***/LOCAL STATUS sioAdptrProfileDataConstruct    (    PFW_OBJ * pfw,    void    * pData	/* reference to profile data */    )    {    bzero(pData, sizeof (SIO_ADPTR_PROFILE_DATA));    /* default minimum baud rate */    ((SIO_ADPTR_PROFILE_DATA *)pData)->baudRate = 9600;    ((SIO_ADPTR_PROFILE_DATA *)pData)->maxSendQSize = SIO_SEND_Q_DEFAULT_SIZE;    return OK;    }/******************************************************************************** sioAdptrStackDataConstruct - initialize SIO adapter Stack data***/LOCAL STATUS sioAdptrStackDataConstruct    (    PFW_OBJ * pfw,    void    * stackData,	/* reference to stack data */    void * profileData	/* reference to profile data */    )    {    SIO_ADPTR_STACK_DATA * pStackData = (SIO_ADPTR_STACK_DATA *)stackData;    bzero((void *)pStackData, sizeof (SIO_ADPTR_PROFILE_DATA));    if ((pStackData->netPoolId = pfwNetPoolIdGet(pfw)) == NULL)	{	printf("SIO: MUST have a valid NetPoolId; See pfwCreate()\n");	return ERROR;	}    pStackData->collectPppAttributesEvent = NULL;    pStackData->channelState = SIO_CHANNEL_DOWN;    pStackData->sendQHead = NULL;    pStackData->sendQTail = NULL;    pStackData->sendQSize = 0;    pStackData->sendQFull = FALSE;    pStackData->sendMblk = NULL;    pStackData->receiveChain = NULL;    pStackData->receiveMblk = NULL;    pStackData->localMru = SIO_DEFAULT_MAX_MRU;    pStackData->nextSendIndex = 0;    pStackData->nextReceiveIndex = 0;    pStackData->inputOctets = 0;    pStackData->outputOctets = 0;    pStackData->inputPackets = 0;    pStackData->outputPackets = 0;    pStackData->txBlockedEvent = NULL;    pStackData->txUnblockedEvent = NULL;    pStackData->lcpIsOpen = FALSE;    pStackData->reTransmitClientString = 0x1;    return OK;    }/******************************************************************************** sioAdptrStackDataDestruct - clean up SIO adapter Stack data***/LOCAL STATUS sioAdptrStackDataDestruct    (    PFW_OBJ * pfw,    void *    stackData,	/* reference to stack data */    void *    profileData	/* reference to profile data */    )    {    return OK;    }/******************************************************************************** sioAdptrStackAdd - initialize a connection via the configured interface***/LOCAL STATUS sioAdptrStackAdd    (    PFW_PLUGIN_OBJ_STATE * pComponentState,    PFW_PLUGIN_OBJ_CALLBACKS * callbacks    )    {    SIO_ADPTR_PROFILE_DATA * pProfileData = 		    (SIO_ADPTR_PROFILE_DATA * )pComponentState->profileData;    SIO_ADPTR_STACK_DATA * pStackData = 		    (SIO_ADPTR_STACK_DATA * )pComponentState->stackData;    SIO_ADPTR_COMPONENT * pSioComponent = 		    (SIO_ADPTR_COMPONENT * )pComponentState->pluginObj;    SIO_CHAN *pSioChan = NULL;    int id;    /* check if channel is already taken */    if (semTake(pSioComponent->sioAdptrMutex,WAIT_FOREVER) != OK)	{	return ERROR;	}    if (pStackData->collectPppAttributesEvent == NULL)	{	if ((pStackData->collectPppAttributesEvent =	    pfwEventObjGet(pComponentState->pluginObj->pfwObj,	    "COLLECT_PPP_ATTRIBUTES_EVENT")) != NULL)            {            pfwEventStackSubscribe(pComponentState,pStackData->collectPppAttributesEvent, sioChannelIDConnectSpeedEventHandler);	    }        }    if (pProfileData->peerType == SIO_PEER_MODEM)	{	MODEM_DATA	* pModemData = NULL;	PFW_OBJ * pfw = pComponentState->pluginObj->pfwObj;	if ((pModemData = pfwMalloc (pfw, sizeof (MODEM_DATA))) 	    == NULL)	    return (ERROR);	pStackData->pModemData = pModemData;	pStackData->pModemData->modemFlags = 0;	pStackData->pModemData->inBufCount = 0;	pStackData->pModemData->outBufCount = 0;	pStackData->pModemData->rspBufCount = 0;    pStackData->pModemData->rspBufOffset = 0;	MODEM_READ_SEM_CREATE;	}    if (pSioComponent->channelMap[pProfileData->channelNum] != NULL)	{	printf ("Sio Adapter: Channel Number %d in use by Stack ID %d\n",	    pProfileData->channelNum, 	    pfwStackIdGet(pSioComponent->channelMap[pProfileData->channelNum]->stackObj));	semGive(pSioComponent->sioAdptrMutex);	return ERROR;	}    else	{	/* get channel */	if ((pSioChan = sysSerialChanGet(pProfileData->channelNum)) <= 	    (SIO_CHAN *)NULL)	    {	    semGive (pSioComponent->sioAdptrMutex);	    return ERROR;	    }	if ((pStackData->channelSem = semBCreate(SEM_Q_PRIORITY,SEM_EMPTY)) 	    == NULL)	    {	    semGive (pSioComponent->sioAdptrMutex);	    return ERROR;	    }	pStackData->pSioChan = pSioChan;	pStackData->channelNum = pProfileData->channelNum;	pStackData->callbacks = callbacks;	pSioComponent->channelMap[pProfileData->channelNum] = pComponentState;	}    /* got channel */    semGive(pSioComponent->sioAdptrMutex);    /* install send and receive callbacks and set baudRate */    if (sioCallbackInstall(pSioChan,SIO_CALLBACK_GET_TX_CHAR,			(SIO_FUNCPTR) sioAdptrSendOctet, pComponentState) != OK)	{	printf ("sioAdapter: Failed to install SIO_CALLBACK_GET_TX_CHAR \n");	return ERROR;	}    if (sioCallbackInstall(pSioChan,SIO_CALLBACK_PUT_RCV_CHAR,	    (SIO_FUNCPTR) sioAdptrReceiveOctet, pComponentState) != OK)	{	printf ("sioAdapter: Failed to install SIO_CALLBACK_PUT_RCV_CHAR \n");	return ERROR;	}    if (sioIoctl(pSioChan,SIO_BAUD_SET,(void *)pProfileData->baudRate) != OK)	{	printf ("sioAdapter: Failed to set baud rate %d\n",		pProfileData->baudRate);	return ERROR;	}    /* setting the device to interrupt mode essentially starts the device */    if (sioIoctl(pSioChan,SIO_MODE_SET, (void *)SIO_MODE_INT) != OK)	{	printf ("sioAdapter: Failed to set Interrupt mode \n");	return ERROR;	}    /* get PPP administrative open event object and subcribe to it*/    if ((pStackData->lcpOpen = 	    pfwEventObjGet(pComponentState->pluginObj->pfwObj,"LCP_OPEN_EVENT"))	!= NULL)	{	pfwEventStackSubscribe(pComponentState,pStackData->lcpOpen,						    lcpOpenHandler);	}    else	return ERROR;    /* get PPP close event object and subcribe to it*/    if ((pStackData->lcpDown = 	pfwEventObjGet(pComponentState->pluginObj->pfwObj,"LCP_DOWN_EVENT"))	!= NULL)	{	pfwEventStackSubscribe(pComponentState,pStackData->lcpDown,						    lcpDownHandler);	}    else	return ERROR;    /* get PPP administrative close event object and subcribe to it */    if ((pStackData->lcpClose =        pfwEventObjGet(pComponentState->pluginObj->pfwObj,"LCP_CLOSE_EVENT"))        != NULL)        {        pfwEventStackSubscribe(pComponentState,pStackData->lcpClose,                                                    lcpCloseHandler);        }    else        return ERROR;    /* get LCP UP event object and subcribe to it*/    if ((pStackData->lcpUpEvent = 	    pfwEventObjGet(pComponentState->pluginObj->pfwObj,"LCP_UP_EVENT"))	!= NULL)	{	pfwEventStackSubscribe(pComponentState,pStackData->lcpUpEvent,							    lcpUpEventHandler);	}    else	return ERROR;    /* get BLOCKED and UNBLOCKED events */    if ((pStackData->txBlockedEvent = 			pfwEventObjGet(pComponentState->pluginObj->pfwObj,					"PPP_SUB_LAYER_TX_BLOCKED")) == NULL)	{	logMsg("SIO_ADAPTER: Failed to get PPP_SUB_LAYER_TX_BLOCKED event\n",	    1,2,3,4,5,6);	}    if ((pStackData->txUnblockedEvent = 			pfwEventObjGet(pComponentState->pluginObj->pfwObj,					"PPP_SUB_LAYER_TX_UNBLOCKED")) == NULL)	{	logMsg("SIO_ADAPTER: Failed to get PPP_SUB_LAYER_TX_UNBLOCKED event\n",	    1,2,3,4,5,6);	}    /* get LCP interfaces */    if ((id = pfwInterfaceIdGet(pComponentState->pluginObj->pfwObj,			"PPP_LINK_STATUS_ENTRY_INTERFACE")) > 0)	{	if (pfwInterfaceObjAndStateGetViaStackObj(pComponentState->stackObj,				id, &pStackData->pppLinkStatusInterface) != OK)	    return ERROR;	}    else	return ERROR;    /* if we are a peer to a regular(non NT machine) we are done */    if (pProfileData->peerType == SIO_PEER_REGULAR)	{	sioAdptrChannelAvailable (pComponentState);	}    /* Get pfwRFC2233CountPair and set pfwRFC2233CountTest */    RFC2233_COUNT_PAIR_GET(pComponentState,                            pStackData->pfwAuxIfId,                            pStackData->pfwRFC2233CountPair, 			   pStackData->pfwRFC2233CountTest);    /* DONE processing stack add request */    if (pStackData->callbacks && pStackData->callbacks->stackAddComplete)	{	(*pStackData->callbacks->stackAddComplete)(pStackData->callbacks,							    pComponentState);	}    return OK;    }/******************************************************************************** sioStackDel - terminate a connection via the configured interface***/LOCAL STATUS sioAdptrStackDel    (    PFW_PLUGIN_OBJ_STATE * pComponentState    )    {    SIO_ADPTR_COMPONENT * pSioComponent = 		    (SIO_ADPTR_COMPONENT * )pComponentState->pluginObj;    SIO_ADPTR_STACK_DATA * pStackData = 		    (SIO_ADPTR_STACK_DATA * )pComponentState->stackData;     SIO_ADPTR_PROFILE_DATA * pProfileData = (SIO_ADPTR_PROFILE_DATA *) 					     pComponentState->profileData;    /* wait for channel to become available */    #if 0    if (semTake(pStackData->channelSem, WAIT_FOREVER) != OK)	return ERROR;    #endif    while((pStackData->channelState != SIO_CHANNEL_DOWN) &&	  (semTake(pStackData->channelSem, NO_WAIT) != OK))	  ;    if (pStackData->sendMblk != NULL)	{	semGive(pStackData->channelSem);	return ERROR;	}    if (semTake(pSioComponent->sioAdptrMutex,WAIT_FOREVER) != OK)	{	semGive(pStackData->channelSem);	return ERROR;	}    /* free captured receive buffer */    if (pStackData->receiveChain != NULL )	{	SIO_FREE_PKT_CHAIN(pStackData->receiveChain);	pStackData->receiveChain = NULL;	}    /* setting the device to POLL mode essentially disables the device */    sioIoctl (pStackData->pSioChan, SIO_MODE_SET, (void *)SIO_MODE_POLL);    /*     * install our callbacks again with NULL callback args to handle spurious     * interrupts      */    sioCallbackInstall(pStackData->pSioChan,SIO_CALLBACK_GET_TX_CHAR,		    (SIO_FUNCPTR) sioAdptrSendOctet, NULL);    sioCallbackInstall(pStackData->pSioChan,SIO_CALLBACK_PUT_RCV_CHAR,		    (SIO_FUNCPTR) sioAdptrReceiveOctet, NULL);    /* infree resources allocated for the modem, if appropriate */    if (pProfileData->peerType == SIO_PEER_MODEM)	{	MODEM_DATA	* pModemData = pStackData->pModemData;	MODEM_READ_SEM_DELETE;	if (pStackData->pModemData != NULL)	    pfwFree (pStackData->pModemData);	}    /* mark channel available for others */    pSioComponent->channelMap[pStackData->channelNum] = NULL;    semGive(pSioComponent->sioAdptrMutex);    /* kill channel sem */    semDelete(pStackData->channelSem);    pfwInterfaceReferenceDelete(pStackData->pppLinkStatusInterface.interfaceObj);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费一区二区三区在线观看| 精品福利一二区| 国产ts人妖一区二区| 日韩成人一级大片| 日韩成人一级大片| 免费观看成人鲁鲁鲁鲁鲁视频| 午夜一区二区三区在线观看| 一区二区三区四区五区视频在线观看 | 黑人精品欧美一区二区蜜桃| 日本女优在线视频一区二区| 日韩高清在线观看| 久久精工是国产品牌吗| 久久99久久久久| 久久99国产乱子伦精品免费| 国产一区二区三区香蕉| 国产成人aaa| 日本国产一区二区| 欧美日韩精品欧美日韩精品| 日韩欧美一二三四区| 久久免费的精品国产v∧| 国产精品入口麻豆原神| 亚洲美女视频在线观看| 日韩国产欧美三级| 国内不卡的二区三区中文字幕| 懂色av一区二区夜夜嗨| av午夜精品一区二区三区| 欧美怡红院视频| 26uuu欧美| 亚洲婷婷国产精品电影人久久| 亚洲不卡在线观看| 国产精品一区二区无线| 99久久国产综合精品色伊| 欧美美女网站色| 日本一区二区视频在线观看| 一区二区三区精品| 国产在线播放一区| 欧美日韩另类一区| 久久久久久久免费视频了| 亚洲欧美日韩精品久久久久| 奇米影视7777精品一区二区| 不卡的av网站| 欧美一级二级在线观看| 成人免费在线视频观看| 蜜臀久久99精品久久久久久9| www.日韩大片| 精品国产电影一区二区| 亚洲午夜精品一区二区三区他趣| 色婷婷av久久久久久久| 欧美精品乱人伦久久久久久| 中文字幕高清一区| 欧美aⅴ一区二区三区视频| 色悠悠久久综合| 中文字幕免费观看一区| 日韩综合一区二区| 欧美中文一区二区三区| 国产精品高清亚洲| 国产高清精品在线| 精品动漫一区二区三区在线观看| 性做久久久久久久免费看| 99久久精品国产麻豆演员表| 精品久久久久av影院| 丝袜亚洲另类欧美综合| 日本韩国欧美一区二区三区| 国产丝袜美腿一区二区三区| 捆绑紧缚一区二区三区视频| 欧美三级三级三级| 亚洲精品欧美激情| 在线区一区二视频| 亚洲精品国产视频| 91免费看片在线观看| 国产日韩欧美一区二区三区综合 | 日日夜夜一区二区| 在线看国产一区二区| 中文字幕一区在线| 色综合天天综合| 亚洲日本一区二区三区| 91尤物视频在线观看| 亚洲人吸女人奶水| 日本道免费精品一区二区三区| 中文字幕亚洲区| 一本到不卡免费一区二区| 一区二区三区日本| 欧美日韩在线播| 日本亚洲最大的色成网站www| 91精品国产综合久久久久久 | 26uuu色噜噜精品一区二区| 久久精品国产99国产精品| 国产精品欧美久久久久无广告| 国产剧情在线观看一区二区| 日本一区二区三区久久久久久久久不| 国产69精品一区二区亚洲孕妇 | 日本高清无吗v一区| 亚洲成人免费电影| 欧美一区二区三区视频在线观看| 九色综合狠狠综合久久| 久久久精品综合| 色婷婷综合久久久中文字幕| 亚洲综合一二三区| 91精品国产一区二区三区| 喷水一区二区三区| 日本一区二区三区四区| 欧美在线观看一二区| 久久av老司机精品网站导航| 欧美国产精品一区二区| 91久久久免费一区二区| 麻豆精品一二三| 亚洲欧美怡红院| 91精品国产日韩91久久久久久| 国产高清视频一区| 五月婷婷综合在线| 国产欧美一区二区精品性| 欧美三级三级三级| 高清不卡一区二区在线| 亚洲国产精品久久一线不卡| 久久综合久久综合久久综合| 日韩欧美国产小视频| 风间由美一区二区三区在线观看 | 激情欧美日韩一区二区| 国产精品欧美综合在线| 91精品国产欧美一区二区| www.亚洲免费av| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品麻豆视频| 欧美一卡二卡三卡| 在线观看国产91| 国产91精品入口| 极品尤物av久久免费看| 一二三区精品视频| 国产精品入口麻豆九色| 欧美xxxxx牲另类人与| 色综合久久久久久久| 高清在线不卡av| 精一区二区三区| 全国精品久久少妇| 亚洲尤物在线视频观看| 国产精品视频九色porn| 久久综合九色综合97婷婷| 91精品一区二区三区久久久久久| 91亚洲国产成人精品一区二三| 国内久久婷婷综合| 久久精品国产77777蜜臀| 午夜电影一区二区三区| 亚洲国产成人精品视频| 亚洲美女一区二区三区| 亚洲久草在线视频| 一区av在线播放| 亚洲一区二区视频在线| 亚洲人成精品久久久久| 中文字幕一区二区三区精华液 | 精品亚洲免费视频| 蜜桃一区二区三区在线观看| 亚洲线精品一区二区三区八戒| 秋霞午夜av一区二区三区| 午夜精品久久久久久久99水蜜桃| 亚洲精品国产品国语在线app| 国产精品国产a级| 亚洲女人的天堂| 亚洲精品国产一区二区三区四区在线 | 麻豆中文一区二区| 男女男精品网站| 久久不见久久见免费视频1| 久久激情五月激情| 国产馆精品极品| 成人丝袜18视频在线观看| 国产成人鲁色资源国产91色综 | 欧美一区二区三区免费视频 | 色狠狠一区二区| 91久久精品一区二区二区| 在线免费观看日韩欧美| 欧美色精品在线视频| 7777精品伊人久久久大香线蕉的 | 久久久精品免费网站| 国产日韩精品视频一区| 亚洲男人都懂的| 日韩av电影天堂| 国产一区欧美日韩| 成人激情黄色小说| 欧美日韩免费一区二区三区| 日韩欧美国产综合| 亚洲三级电影全部在线观看高清| 亚洲二区在线观看| 国产伦精品一区二区三区在线观看| 成人性生交大片免费看在线播放| 91精品91久久久中77777| 欧美一级片在线| 中文字幕制服丝袜成人av| 亚洲小少妇裸体bbw| 国产综合色在线| 色婷婷综合久久久久中文| 日韩欧美电影在线| 亚洲天堂精品视频| 六月丁香婷婷色狠狠久久| 99在线精品视频| 日韩视频在线你懂得| 中文字幕av资源一区| 日本午夜一本久久久综合| av综合在线播放| 久久综合丝袜日本网| 午夜欧美大尺度福利影院在线看| 国产精品亚洲视频|