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

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

?? pppsioadapter.c

?? 這是全套的PPP協議的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* pppSioAdapter.c - PPP over raw serial *//* Copyright 2003 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02g,14may03,ijm fixed diab compiler warning02f,07apr03,ijm fix for SPR#71047, pppSioAdapterModemRead response input buffer                index not incremented; removed double free of pModemData in                sioStackDel; in sioAdptrChannelAvailable get buffer only if                receiveChain is NULL02e,03mar03,ijm SPR#86148, free packet if pfwReceive returns ERROR02d,09dec02,ijm fix for SPR#84845, cannot reconnect to Windows client/server 02c,14nov02,ijm add check for SIO_PEER_MODEM in ntSerialClientStringSetup,                fix for SPR#8416202b,01nov02,ijm removed redundant RFC2233 counter update in sioAdptrModemSend()02a,29oct02,ijm added WIN_SERVER AND WIN_CLIENT parameters01z,28may02,rvr fixed build warnings 01y,13feb02,ijm corrected unused variables compiler warning in lcpDownHandler01x,29oct01,ijm Fixed SPR#70122: after authentication failure, link                cannot re-establish serial connection to NT.01w,07mar01,ijm pComponent should be freed with pfwFree, if ERROR, in                sioAdapterCreate01v,02mar01,ijm added LCP_CLOSE_EVENT handler                deleted sioAdptrMutex when component is deleted01u,20feb01,ijm added check for NULL sendQHead in lcpDownHandler 01t,17dec00,ihw initialize mBlk Headers thoroughly upon netTupleGet + misc fixes01s,16nov00,sj  Queue packets on send path01r,26oct00,sj  on failure of SIO_GET_FIRST_RCV_BUF set stack->receiveMblk = NULL01q,29sep00,sj  Merging in and reorganizing RFC2233 instrumentation01p,29sep00,sj  merging with TOR2_0-WINDNET_PPP-CUM_PATCH_201o,08sep00,sj  free received frame if pfwDataJobAdd fails01n,10aug00,adb  fixed NT client dial-up01m,02aug00,adb  Merging in LAC modifications01l,01aug00,adb  Merging with openstack view except RFC 223301k,28jul00,md  sets ppp attributes to a default value01j,18jul00,bsn  Added Statistics and Port Interface01i,29jun00,md  subscribed COLLECT_PPP_ATTRIBUTES_EVENT01h,20apr00,cn  added support for PPP_MODEM_INTERFACE.01g,20mar00,sj  free held buffer on CHANNEL DOWN01f,02mar00,sj  always accept frames of size less than or equal to 2 x 150001e,29feb00,sj  set receiveChain nextMblk to NULL after dropping frame01d,16dec99,sj  call sioChannelAvailable in interrupt context01c,13dec99,sj  fixing NT client/server mode; listen for LCP OPEN/DOWN events01b,09nov99,sj  adding use of LCP interface to get MRU01a,02sep99,sj 	created*//*DESCRIPTIONThis component enables PPP sessions over serial devices using WRS SIO driverINCLUDE FILES:  sioLib.h SEE ALSO*//* includes */#include "vxWorks.h"#include "logLib.h"#include "stdio.h"#include "stdlib.h"#include "string.h"#include "ctype.h"#include "memLib.h"#include "semLib.h"#include "sysLib.h"#include "intLib.h"#include "net/mbuf.h"#include "netBufLib.h"#include "pfw/pfw.h"#include "pfw/pfwStack.h"#include "pfw/pfwLayer.h"#include "pfw/pfwEvent.h"#include "pfw/pfwInterface.h"#include "pfw/pfwMemory.h"#include "ppp/kppp.h"#include "ppp/pppLacStructures.h"#include "pfw/pfwComponent.h"#include "ppp/pppSioAdapter.h"#include "ppp/interfaces/lcpInterfaces.h"#include "ppp/interfaces/pppModemInterface.h"#include "ppp/interfaces/pppInterfacesGroupInterfaces.h"#include "ppp/interfaces/adapterComponentInterfaces.h"#include "limits.h"#include "tickLib.h"/* defines */#define MODEM_MAX_RX_STR_LEN    256     /* max rx string lenght */#define MODEM_MAX_TX_STR_LEN    256     /* max tx string lenght */#define SIO_FREE_PKT_CHAIN netMblkClChainFree#define SIO_FREE_PKT netMblkClFree#define SIO_CLUSTER_SIZE 2048#define SIO_DEFAULT_MAX_MRU 1500#define SIO_MIN_FRAME_LEN 5 /* 0x7E + compressed protocol + 2 byte CRC + 0x7E */#define SIO_CHANNEL_DOWN 0x0#define SIO_CHANNEL_UP 0x1#define SIO_PEER_REGULAR   0x0	/* other end is a regular(NON NT) machine */#define SIO_PEER_NT_SERVER 0x1	/* other end is a NT server */#define SIO_PEER_NT_CLIENT 0x2	/* other end is a NT client */#define SIO_PEER_MODEM	   0x4	/* other end is a modem */#define SIO_FRAME_FLAG 0x7e#define SIO_NT_CLIENT_STRING "CLIENT"#define SIO_NT_CLIENTSERVER_STRING "CLIENTSERVER"#define SIZEOF_CLIENT_STRING 6#define SIZEOF_CLIENTSERVER_STRING 12#define SIO_SEND_Q_DEFAULT_SIZE 15 /* arbitrarily chosen */#define SIO_SEND_Q_TWO_THIRDS_FULL(n) ((n << 1)/3)#define SIO_DROP_RCV_FRAME(stack) \	{\	/* drop the frame; free all mBufs except the first one in the chain */\	\	if (stack->receiveChain != NULL )\	    {\	    stack->receiveChain->mBlkHdr.mLen = 1;\	    stack->nextReceiveIndex = 1;\	    \	    if (stack->receiveChain->mBlkHdr.mNext != NULL) \		{\		SIO_FREE_PKT_CHAIN(stack->receiveChain->mBlkHdr.mNext);\		stack->receiveChain->mBlkHdr.mNext = NULL; \		stack->receiveChain->mBlkHdr.mFlags &= ~M_PKTHDR;\		stack->receiveChain->mBlkPktHdr.len = 0;\		}\	    }\	    stack->receiveMblk = stack->receiveChain;\	    stack->receiveMblk->mBlkHdr.mData[0] = SIO_FRAME_FLAG;\	}#define SIO_GET_FIRST_RCV_BUF(stack) \	{\	if ((stack->receiveChain = netTupleGet(stack->netPoolId,\					SIO_CLUSTER_SIZE,\					M_DONTWAIT, MT_DATA,TRUE)) == NULL)\	    {\	    stack->receiveMblk = NULL;\	    logMsg("sioAdptr:Failed to get receive buffer for channel Id %d\n",\		    stack->channelNum,2,3,4,5,6);\	    }\	else\	    {\	    stack->receiveMblk = stack->receiveChain;\	    stack->receiveMblk->mBlkHdr.mData[0] = SIO_FRAME_FLAG;\	    stack->receiveMblk->mBlkHdr.mLen = 1;\	    stack->receiveMblk->mBlkHdr.mFlags &= ~M_PKTHDR;\	    stack->receiveMblk->mBlkPktHdr.len = 1;\	    }\	}#define SIO_SEND_NT_CLIENTSERVER_STRING(stack)\	{\	/* setup the string to send */\	\	bzero (stack->channelBuf, sizeof(stack->channelBuf));\	strcpy(stack->channelBuf, SIO_NT_CLIENTSERVER_STRING);\	\	/* start transmission */\	\	stack->nextSendIndex = 0;\	sioTxStartup(stack->pSioChan);\	}#define MODEM_READ_SEM_CREATE                                           \    if ((pModemData->modemReadSyncSem = semBCreate (SEM_Q_FIFO, SEM_EMPTY))\        == NULL)                                                        \        return (ERROR) #define MODEM_READ_SEM_DELETE                                           \    if ((pModemData->modemReadSyncSem) != NULL)                         \        semDelete (pModemData->modemReadSyncSem) #define MODEM_READ_SEM_GIVE                                             \    (semGive (pModemData->modemReadSyncSem)) /* typedefs */typedef struct sioAdptrParams    {    char * name;    PFW_PARAMETER_HANDLER handler;    } SIO_ADPTR_PARAMS;typedef struct sioProfileData    {    UINT32 channelNum;	/* serial channel number */    UINT32 baudRate;	/* baud rate to use on this channel */    UINT32 maxSendQSize;/* max outbound packets that we will queue */    UINT32 peerType;    /* WIN_SERVER, WIN_CLIENT, REGULAR */    }SIO_ADPTR_PROFILE_DATA;typedef struct modemData    {    char                        inBuf [MODEM_MAX_RX_STR_LEN];    char                        rspBuf [MODEM_MAX_RX_STR_LEN];    UINT                        inBufCount;    UINT                        rspBufCount;    UINT                        rspBufOffset;    char                        outBuf [MODEM_MAX_TX_STR_LEN];    UINT                        outBufCount;    UINT                        outBufLen;    SEM_ID                      modemReadSyncSem;    int				modemFlags;    } MODEM_DATA;typedef struct sioStackData    {    UINT32 channelNum;	  /* serial channel number */    SEM_ID channelSem;    /* channel access control */     UINT32 channelState;  /* state of channel */    UINT32 localMru;      /* receive MRU */    UINT32 remoteMru;     /* MTU */    UINT32 nextSendIndex; /* index to next octet to send */    UINT32 nextReceiveIndex;/* index to next octet to receive */    UINT   inputOctets;    /* octets received */    UINT   outputOctets;   /* octets sent     */    UINT   inputPackets;   /* packets received */    UINT   outputPackets;  /* packets sent */    char   channelBuf[16]; /* buffer for WinNT CLIENTSERVER string */    NET_POOL_ID netPoolId; /* netPool from which to allocate frames */    M_BLK_ID sendQHead;    /* Head of send Queue */    M_BLK_ID sendQTail;    /* Tail of send Queue */    UINT32   sendQSize;    /* Number of packets on send Queue */    BOOL     sendQFull;    /* when TRUE no packets are queued */    M_BLK_ID sendMblk;    /* current Mblk that we are sending */    M_BLK_ID receiveChain;/* head mBuf of frame we are currently receiving */    M_BLK_ID receiveMblk; /* mbuf in to which we are currenty receiving */    SIO_CHAN * pSioChan;  /* channel control structure */	    PFW_EVENT_OBJ * lcpUpEvent;     PFW_EVENT_OBJ * lcpOpen;  /* PPP connection open initiated */    PFW_EVENT_OBJ * lcpDown; /* PPP connection closed */    PFW_EVENT_OBJ * lcpClose; /* PPP administrative close */    PFW_EVENT_OBJ * txBlockedEvent;     PFW_EVENT_OBJ * txUnblockedEvent;     PFW_INTERFACE_STATE_PAIR pppLinkStatusInterface;    PFW_PLUGIN_OBJ_CALLBACKS * callbacks;/* framework add and delete callbacks*/    PFW_EVENT_OBJ *collectPppAttributesEvent;    MODEM_DATA	* pModemData;	/* modem data */    BOOL    lcpIsOpen;    UINT32  reTransmitClientString;    /* auxiliary variables aiding RFC 2233 counters's implementation */    int      pfwAuxIfId;    PFW_INTERFACE_STATE_PAIR pfwRFC2233CountPair;    BOOL     pfwRFC2233CountTest;    }SIO_ADPTR_STACK_DATA;typedef struct sioComponent    {    PFW_COMPONENT_OBJ component;     	/* SIO framework component */    SEM_ID sioAdptrMutex;         	/* channel Map access control */    PFW_PLUGIN_OBJ_STATE ** channelMap;	/* map of available/used channels */    PPP_MODEM_INTERFACE                             pppModemInterface;    ADAPTER_COMPONENT_STATISTICS_INTERFACE statisticsInterface;    PHY_PORT_INTERFACE phyPortInterface;    }SIO_ADPTR_COMPONENT;typedef STATUS (*SIO_FUNCPTR) (void *,...); /* for sioLib */LOCAL STATUS sioAdptrModemSend (PFW_PLUGIN_OBJ_STATE * state,                                SIO_ADPTR_STACK_DATA * pStackData,				UINT8 * pOctet);LOCAL STATUS sioAdptrModemReceive (SIO_ADPTR_STACK_DATA	* pStackData,				   UINT8 octet);LOCAL STATUS pppSioAdapterModemIoctl (PFW_PLUGIN_OBJ_STATE * pSioState, 				      int cmd, 				      int arg);LOCAL STATUS pppSioAdapterModemClose (PFW_PLUGIN_OBJ_STATE * pSioState);LOCAL STATUS pppSioAdapterModemOpen (PFW_PLUGIN_OBJ_STATE * pSioState);LOCAL STATUS sioAdapterModemFlush (PFW_PLUGIN_OBJ_STATE	* pSioState);LOCAL STATUS sioAdapterModemBringDown (PFW_PLUGIN_OBJ_STATE * pSioState);LOCAL STATUS sioAdapterModemBringUp (PFW_PLUGIN_OBJ_STATE * pSioState);LOCAL STATUS pppSioAdapterModemRead (PFW_PLUGIN_OBJ_STATE * pSioState, 				     char * rsp, 				     UINT rspLen, 				     UINT timeout);LOCAL STATUS pppSioAdapterModemWrite (PFW_PLUGIN_OBJ_STATE * pSioState, 				      char * cmd, 				      UINT cmdLen);LOCAL void sioAdapterInterfacesInit (SIO_ADPTR_COMPONENT * sioComponent);LOCAL STATUS sioInterfaceBind (PFW_PLUGIN_OBJ * pluginObj);typedef struct sioReceiveJob    {    PFW_PLUGIN_OBJ_STATE * state;    M_BLK_ID pMblk;    }SIO_RECEIVE_JOB;/* forward declarations */    /* parameter handlers */LOCAL STATUS sio_channelNum (PFW_OBJ *, PFW_PARAMETER_OPERATION_TYPE,void *,									char *);LOCAL STATUS sio_baudRate (PFW_OBJ *, PFW_PARAMETER_OPERATION_TYPE,void *,									char *);LOCAL STATUS sio_maxSendQSize (PFW_OBJ *, PFW_PARAMETER_OPERATION_TYPE,void *,									char *);LOCAL STATUS sio_peerType (PFW_OBJ *, PFW_PARAMETER_OPERATION_TYPE,void *,									char *);    /* component interfaces */LOCAL STATUS sioAdptrProfileDataConstruct (PFW_OBJ * ,void *);LOCAL STATUS sioAdptrStackDataConstruct (PFW_OBJ * ,void *stackData,						    void * profileData);LOCAL STATUS sioAdptrStackDataDestruct  (PFW_OBJ * ,void *stackData,						    void * profileData);LOCAL STATUS sioAdptrStackAdd(PFW_PLUGIN_OBJ_STATE *,PFW_PLUGIN_OBJ_CALLBACKS*);LOCAL STATUS sioAdptrStackDel(PFW_PLUGIN_OBJ_STATE *);LOCAL STATUS sioAdptrSend (PFW_PLUGIN_OBJ_STATE *, M_BLK_ID *);LOCAL STATUS sioAdptrStackDataShow (PFW_PLUGIN_OBJ_STATE *);    /* SIO callbacks */LOCAL STATUS sioAdptrSendOctet (void * state, char * octetBuf);LOCAL STATUS sioAdptrReceiveOctet (void * state, UINT8 data);    /* Event handler */LOCAL STATUS lcpOpenHandler (PFW_PLUGIN_OBJ_STATE *, void *eventData); LOCAL STATUS lcpDownHandler (PFW_PLUGIN_OBJ_STATE *, void *eventData); LOCAL STATUS lcpCloseHandler (PFW_PLUGIN_OBJ_STATE *, void *eventData);LOCAL STATUS lcpUpEventHandler (PFW_PLUGIN_OBJ_STATE *, void *eventData); LOCAL STATUS sioChannelIDConnectSpeedEventHandler    (    PFW_PLUGIN_OBJ_STATE * state,    void *eventData    );    /* misc */LOCAL void sioAdptrChannelAvailable (PFW_PLUGIN_OBJ_STATE *);LOCAL void sioAdptrFrameReceive (void *);LOCAL void sioAdptrRaiseTxUnblockedEvent (void *);LOCAL void sioAdptrStatisticsGet (PFW_PLUGIN_OBJ_STATE *,                                  UINT *, UINT *, UINT *, UINT *);LOCAL UINT sioAdptrPortNumberGet (PFW_PLUGIN_OBJ_STATE *);LOCAL UINT sioAdptrPortTypeGet  (PFW_PLUGIN_OBJ_STATE *);LOCAL void flushSioTransmitQueue (PFW_PLUGIN_OBJ_STATE *, void *eventData);LOCAL STATUS ntSerialClientStringSetup (PFW_PLUGIN_OBJ_STATE *,                                        void *eventData);/* locals *//* component configuration parameters */LOCAL SIO_ADPTR_PARAMS sioAdptrParams[]={{"sio_channelNum",sio_channelNum},					 {"sio_baudRate", sio_baudRate},					 {"sio_maxSendQSize", sio_maxSendQSize},					 {"sio_peerType", sio_peerType}};LOCAL int numSioAdptrParams = NELEMENTS (sioAdptrParams);/******************************************************************************** sioAdapterCreate - initialize and add the SIO adapter to the framework** This component faciliates PPP over SIO model serial drivers. The parameter* numSioChannels specifies the number of serial channel IDs that may be * obtained using sysSerialChanGet().*/STATUS sioAdapterCreate    (    PFW_OBJ * pfw,        	/* framework */    UINT32 numSioChannels    	/* number of channels */    )    {    int i = 0;    SIO_ADPTR_COMPONENT *pComponent;    PFW_PLUGIN_OBJ * sioAdptrPluginObj = NULL;    if (pfw == NULL || numSioChannels <= 0)	{	return ERROR;	}    /* allocate the component object */    if ( (pComponent = pfwMalloc(pfw,sizeof(SIO_ADPTR_COMPONENT))) == NULL)	return ERROR;    bzero((void *)pComponent,sizeof(SIO_ADPTR_COMPONENT));    if ((pComponent->sioAdptrMutex = semMCreate(SEM_Q_PRIORITY)) == NULL)	{	pfwFree(pComponent);	}    sioAdptrPluginObj = (PFW_PLUGIN_OBJ *)&(pComponent->component);    /* initialize our component object */    bzero(sioAdptrPluginObj->name, PFW_MAX_NAME_LENGTH);    strncpy(sioAdptrPluginObj->name,"SIO_ADAPTER",	    (PFW_MAX_NAME_LENGTH -1));    sioAdptrPluginObj->pfwObj = pfw;    sioAdptrPluginObj->profileDataSize = sizeof (SIO_ADPTR_PROFILE_DATA);    sioAdptrPluginObj->stackDataSize = sizeof (SIO_ADPTR_STACK_DATA);    sioAdptrPluginObj->profileDataConstruct = sioAdptrProfileDataConstruct;    sioAdptrPluginObj->profileDataCopy = NULL;    sioAdptrPluginObj->profileDataDestruct = NULL;    sioAdptrPluginObj->stackDataConstruct = sioAdptrStackDataConstruct;    sioAdptrPluginObj->stackDataDestruct = sioAdptrStackDataDestruct;    sioAdptrPluginObj->receive = NULL;    sioAdptrPluginObj->send = sioAdptrSend;    sioAdptrPluginObj->stackAdd = sioAdptrStackAdd;    sioAdptrPluginObj->stackDelete = sioAdptrStackDel;    sioAdptrPluginObj->stackDataShow = sioAdptrStackDataShow;    sioAdptrPluginObj->interfaceBind = sioInterfaceBind;    pComponent->component.protocol = 0;    pComponent->component.layerObj = pfwLayerObjGet(pfw, "ADAPTER_LAYER");    /* register this component with the framework */    if (pfwComponentAdd (&pComponent->component) == ERROR)        {        logMsg ("sioAdpterCreate: Could not add SIO ADAPTER component\n",                 1,2,3,4,5,6);        semDelete (pComponent->sioAdptrMutex);        pfwFree (pComponent);        return (ERROR);        }    /* add our parameters to the framework */    for (i = 0; i < numSioAdptrParams ; i++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费成人av在线| 欧美视频一区二区三区| 国产麻豆视频一区| 精品一区二区三区香蕉蜜桃| 免费美女久久99| 美女任你摸久久| 另类欧美日韩国产在线| 蜜桃av一区二区| 青青草国产精品97视觉盛宴| 日本亚洲视频在线| 免费成人深夜小野草| 狠狠色丁香婷婷综合久久片| 国模娜娜一区二区三区| 国产一区二区免费在线| 国产99精品在线观看| 99热国产精品| 91国偷自产一区二区三区成为亚洲经典| 91行情网站电视在线观看高清版| 欧美亚一区二区| 91精品欧美福利在线观看| 日韩女优毛片在线| 国产免费观看久久| 亚洲伦在线观看| 亚洲一区二区三区精品在线| 污片在线观看一区二区| 久久精品国产成人一区二区三区| 精品中文字幕一区二区小辣椒| 国产精品资源在线观看| 成人一区二区视频| 日本高清不卡视频| 欧美一级黄色片| 国产人成一区二区三区影院| 亚洲欧美日韩小说| 视频精品一区二区| 国产乱淫av一区二区三区| 不卡av免费在线观看| 欧美日韩色一区| 欧美mv日韩mv国产| 成人免费在线播放视频| 亚洲v中文字幕| 国精产品一区一区三区mba桃花| 成人午夜av电影| 欧美日韩一区二区三区在线| 精品国产乱码久久久久久免费 | xf在线a精品一区二区视频网站| 中文乱码免费一区二区| 亚洲成人动漫一区| 风间由美中文字幕在线看视频国产欧美| 色婷婷精品久久二区二区蜜臀av| 日韩欧美第一区| 亚洲人成网站在线| 久久99久久99| 色综合色狠狠综合色| 日韩久久久久久| 亚洲精品少妇30p| 黄一区二区三区| 在线观看91视频| 久久久99久久| 五月天中文字幕一区二区| 国产寡妇亲子伦一区二区| 欧美日韩国产123区| 国产亚洲精品资源在线26u| 亚洲午夜视频在线观看| 国产jizzjizz一区二区| 91精品国产综合久久婷婷香蕉| 中文字幕视频一区| 狠狠色丁香久久婷婷综| 精品视频色一区| 国产精品久久久一本精品| 美女脱光内衣内裤视频久久网站| 97精品电影院| 久久伊人蜜桃av一区二区| 性做久久久久久| 成人久久18免费网站麻豆| 日韩欧美一区电影| 午夜不卡av在线| 色综合久久99| 欧美国产乱子伦| 久久成人麻豆午夜电影| 69堂精品视频| 亚洲在线成人精品| gogo大胆日本视频一区| 久久久亚洲高清| 麻豆成人在线观看| 欧美日韩成人高清| 亚洲自拍另类综合| 一本大道久久精品懂色aⅴ| 亚洲国产高清不卡| 国产一区二区三区久久悠悠色av| 欧美一区二区免费观在线| 亚洲第一电影网| 欧美吻胸吃奶大尺度电影| 亚洲精品国产一区二区精华液 | 欧美精品九九99久久| 成人免费在线播放视频| 成人午夜视频福利| 欧美国产一区在线| 成人黄色小视频| 欧美高清在线视频| 成人美女视频在线看| 国产精品午夜在线观看| 成人网在线免费视频| 欧美韩日一区二区三区| 国产成人一级电影| 国产三级欧美三级| 国产成人免费网站| 国产精品入口麻豆原神| 国产69精品久久久久777| 久久久99免费| 国产99一区视频免费| 国产精品素人一区二区| 成人免费看黄yyy456| 中文字幕亚洲电影| 91国产免费看| 亚洲国产日韩一区二区| 91精品国产综合久久小美女| 免费成人av在线| 久久精品一区二区三区不卡 | 男女男精品网站| 精品欧美乱码久久久久久| 国产一区二区三区久久久| 国产亚洲综合在线| 北条麻妃国产九九精品视频| 最新中文字幕一区二区三区| 日本久久精品电影| 丝袜诱惑制服诱惑色一区在线观看| 6080午夜不卡| 韩国v欧美v日本v亚洲v| 国产嫩草影院久久久久| 色播五月激情综合网| 日韩二区在线观看| 久久精品夜色噜噜亚洲a∨| 成人aa视频在线观看| 亚洲第一二三四区| 久久亚洲精精品中文字幕早川悠里| 国产99久久久国产精品| 一区二区久久久久久| 日韩欧美一区中文| 成人国产亚洲欧美成人综合网| 一区二区三区免费在线观看| 欧美一区二区三区四区视频| 久久国产成人午夜av影院| 中文字幕一区二区三区四区不卡 | 国产精品麻豆视频| 欧美性猛交一区二区三区精品| 久久91精品国产91久久小草| 国产精品理论片| 7777精品伊人久久久大香线蕉完整版| 国产一区二区三区日韩| 综合久久综合久久| 日韩欧美在线网站| 91亚洲精品乱码久久久久久蜜桃| 日韩av午夜在线观看| 国产精品欧美精品| 欧美精品乱码久久久久久按摩| 国产成人精品影视| 午夜视频久久久久久| 久久久99精品久久| 欧美精品久久久久久久多人混战| 国产99久久久精品| 日韩av一区二区在线影视| 国产精品乱码妇女bbbb| 日韩欧美中文一区| 91黄色激情网站| 懂色av中文字幕一区二区三区| 亚洲图片欧美视频| 国产女主播一区| 5858s免费视频成人| av不卡免费在线观看| 九一九一国产精品| 亚洲福利一区二区| 国产精品不卡一区二区三区| 精品国产乱码久久久久久老虎| 在线观看免费成人| 成人午夜看片网址| 韩国av一区二区三区| 日韩激情一区二区| 亚洲青青青在线视频| 久久久久久99久久久精品网站| 777亚洲妇女| 欧美性一区二区| 91在线观看地址| 国产精品一区久久久久| 男人的j进女人的j一区| 亚洲丶国产丶欧美一区二区三区| 成人免费一区二区三区视频| 国产无人区一区二区三区| 精品日韩99亚洲| 日韩三级在线观看| 在线成人av网站| 欧美三级电影一区| 在线亚洲+欧美+日本专区| www.一区二区| 成人午夜免费视频| 成人一区二区三区| 国产高清精品网站| 国产伦精品一区二区三区免费迷 | 日韩在线播放一区二区| 亚洲制服丝袜一区| 亚洲精品久久7777|