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

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

?? ixethaccmac.c

?? 友善mini2440嵌入式
?? C
?? 第 1 頁 / 共 5 頁
字號:
/** * @file IxEthAccMac.c * * @author Intel Corporation * @date * * @brief  MAC control functions * * Design Notes: * * @par * IXP400 SW Release version 2.0 * * -- Copyright Notice -- * * @par * Copyright 2001-2005, Intel Corporation. * All rights reserved. * * @par * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * @par * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @par * -- End of Copyright Notice -- */#include "IxOsal.h"#include "IxNpeMh.h"#ifdef CONFIG_IXP425_COMPONENT_ETHDB#include "IxEthDB.h"#endif#include "IxEthDBPortDefs.h"#include "IxEthNpe.h"#include "IxEthAcc.h"#include "IxEthAccDataPlane_p.h"#include "IxEthAcc_p.h"#include "IxEthAccMac_p.h"/* Maximum number of retries during ixEthAccPortDisable, which * is approximately 10 seconds*/#define IX_ETH_ACC_MAX_RETRY 500/* Maximum number of retries during ixEthAccPortDisable when expecting * timeout */#define IX_ETH_ACC_MAX_RETRY_TIMEOUT 5#define IX_ETH_ACC_VALIDATE_PORT_ID(portId) \    do                                                           \    {                                                            \        if(!IX_ETH_ACC_IS_PORT_VALID(portId))   \        {                                                        \	    return IX_ETH_ACC_INVALID_PORT;                      \        }                                                        \    } while(0)PUBLIC IxEthAccMacState ixEthAccMacState[IX_ETH_ACC_NUMBER_OF_PORTS];PRIVATE UINT32 ixEthAccMacBase[IX_ETH_ACC_NUMBER_OF_PORTS];/*Forward function declarations*/PRIVATE voidixEthAccPortDisableRx (IxEthAccPortId portId,		       IX_OSAL_MBUF * mBufPtr,		       BOOL useMultiBufferCallback);PRIVATE voidixEthAccPortDisableRxAndReplenish (IxEthAccPortId portId,				   IX_OSAL_MBUF * mBufPtr,				   BOOL useMultiBufferCallback);PRIVATE voidixEthAccPortDisableTxDone (UINT32 cbTag,			   IX_OSAL_MBUF *mbuf);PRIVATE voidixEthAccPortDisableTxDoneAndSubmit (UINT32 cbTag,				    IX_OSAL_MBUF *mbuf);PRIVATE voidixEthAccPortDisableRxCallback (UINT32 cbTag,			       IX_OSAL_MBUF * mBufPtr,			       UINT32 learnedPortId);PRIVATE voidixEthAccPortDisableMultiBufferRxCallback (UINT32 cbTag,					  IX_OSAL_MBUF **mBufPtr);PRIVATE IxEthAccStatusixEthAccPortDisableTryTransmit(UINT32 portId);PRIVATE IxEthAccStatusixEthAccPortDisableTryReplenish(UINT32 portId);PRIVATE IxEthAccStatusixEthAccPortMulticastMacAddressGet (IxEthAccPortId portId,				    IxEthAccMacAddr *macAddr);PRIVATE IxEthAccStatusixEthAccPortMulticastMacFilterGet (IxEthAccPortId portId,				   IxEthAccMacAddr *macAddr);PRIVATE voidixEthAccMacNpeStatsMessageCallback (IxNpeMhNpeId npeId,				    IxNpeMhMessage msg);PRIVATE voidixEthAccMacNpeStatsResetMessageCallback (IxNpeMhNpeId npeId,					 IxNpeMhMessage msg);PRIVATE voidixEthAccNpeLoopbackMessageCallback (IxNpeMhNpeId npeId,				    IxNpeMhMessage msg);PRIVATE voidixEthAccMulticastAddressSet(IxEthAccPortId portId);PRIVATE BOOLixEthAccMacEqual(IxEthAccMacAddr *macAddr1,		 IxEthAccMacAddr *macAddr2);PRIVATE voidixEthAccMacPrint(IxEthAccMacAddr *m);PRIVATE voidixEthAccMacStateUpdate(IxEthAccPortId portId);IxEthAccStatusixEthAccMacMemInit(void){    ixEthAccMacBase[IX_ETH_PORT_1] =	(UINT32) IX_OSAL_MEM_MAP(IX_ETH_ACC_MAC_0_BASE,				 IX_OSAL_IXP400_ETHA_MAP_SIZE);    ixEthAccMacBase[IX_ETH_PORT_2] =	(UINT32) IX_OSAL_MEM_MAP(IX_ETH_ACC_MAC_1_BASE,				 IX_OSAL_IXP400_ETHB_MAP_SIZE);#ifdef __ixp46X    ixEthAccMacBase[IX_ETH_PORT_3] =	(UINT32) IX_OSAL_MEM_MAP(IX_ETH_ACC_MAC_2_BASE,				 IX_OSAL_IXP400_ETH_NPEA_MAP_SIZE);    if (ixEthAccMacBase[IX_ETH_PORT_3] == 0)    {	ixOsalLog(IX_OSAL_LOG_LVL_FATAL,		  IX_OSAL_LOG_DEV_STDOUT,		  "EthAcc: Could not map MAC I/O memory\n",		  0, 0, 0, 0, 0 ,0);	return IX_ETH_ACC_FAIL;    }#endif    if (ixEthAccMacBase[IX_ETH_PORT_1] == 0	|| ixEthAccMacBase[IX_ETH_PORT_2] == 0)    {	ixOsalLog(IX_OSAL_LOG_LVL_FATAL,		  IX_OSAL_LOG_DEV_STDOUT,		  "EthAcc: Could not map MAC I/O memory\n",		  0, 0, 0, 0, 0 ,0);	return IX_ETH_ACC_FAIL;    }    return IX_ETH_ACC_SUCCESS;}voidixEthAccMacUnload(void){    IX_OSAL_MEM_UNMAP(ixEthAccMacBase[IX_ETH_PORT_1]);    IX_OSAL_MEM_UNMAP(ixEthAccMacBase[IX_ETH_PORT_2]);#ifdef __ixp46X    IX_OSAL_MEM_UNMAP(ixEthAccMacBase[IX_ETH_PORT_3]);    ixEthAccMacBase[IX_ETH_PORT_3] = 0;#endif    ixEthAccMacBase[IX_ETH_PORT_2] = 0;    ixEthAccMacBase[IX_ETH_PORT_1] = 0;}IxEthAccStatusixEthAccPortEnablePriv(IxEthAccPortId portId){    IX_ETH_ACC_VALIDATE_PORT_ID(portId);    if (IX_ETH_ACC_SUCCESS != ixEthAccSingleEthNpeCheck(portId))    {        IX_ETH_ACC_WARNING_LOG("EthAcc: Unavailable Eth %d: Cannot enable port.\n",(INT32)portId,0,0,0,0,0);        return IX_ETH_ACC_SUCCESS ;    }    if (!IX_ETH_IS_PORT_INITIALIZED(portId))    {        printf("EthAcc: (Mac) cannot enable port %d, port not initialized\n", portId);	return (IX_ETH_ACC_PORT_UNINITIALIZED);    }    if (ixEthAccPortData[portId].ixEthAccTxData.txBufferDoneCallbackFn == NULL)    {        /* TxDone callback not registered */        printf("EthAcc: (Mac) cannot enable port %d, TxDone callback not registered\n", portId);	return (IX_ETH_ACC_PORT_UNINITIALIZED);    }    if ((ixEthAccPortData[portId].ixEthAccRxData.rxCallbackFn == NULL)	&& (ixEthAccPortData[portId].ixEthAccRxData.rxMultiBufferCallbackFn == NULL))    {        /* Receive callback not registered */        printf("EthAcc: (Mac) cannot enable port %d, Rx callback not registered\n", portId);	return (IX_ETH_ACC_PORT_UNINITIALIZED);    }    if(!ixEthAccMacState[portId].initDone)    {        printf("EthAcc: (Mac) cannot enable port %d, MAC address not set\n", portId);	return (IX_ETH_ACC_MAC_UNINITIALIZED);    }    /* if the state is being set to what it is already at, do nothing*/    if (ixEthAccMacState[portId].enabled)    {        return IX_ETH_ACC_SUCCESS;    }#ifdef CONFIG_IXP425_COMPONENT_ETHDB    /* enable ethernet database for this port */    if (ixEthDBPortEnable(portId) != IX_ETH_DB_SUCCESS)    {        printf("EthAcc: (Mac) cannot enable port %d, EthDB failure\n", portId);        return IX_ETH_ACC_FAIL;    }#endif    /* set the MAC core registers */    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_TX_CNTRL2,	      IX_ETH_ACC_TX_CNTRL2_RETRIES_MASK);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_RANDOM_SEED,	      IX_ETH_ACC_RANDOM_SEED_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_THRESH_P_EMPTY,	      IX_ETH_ACC_MAC_THRESH_P_EMPTY_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_THRESH_P_FULL,	      IX_ETH_ACC_MAC_THRESH_P_FULL_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_TX_DEFER,	      IX_ETH_ACC_MAC_TX_DEFER_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_TX_TWO_DEFER_1,	      IX_ETH_ACC_MAC_TX_TWO_DEFER_1_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_TX_TWO_DEFER_2,	      IX_ETH_ACC_MAC_TX_TWO_DEFER_2_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_SLOT_TIME,	      IX_ETH_ACC_MAC_SLOT_TIME_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_INT_CLK_THRESH,	      IX_ETH_ACC_MAC_INT_CLK_THRESH_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_BUF_SIZE_TX,	      IX_ETH_ACC_MAC_BUF_SIZE_TX_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_TX_CNTRL1,	      IX_ETH_ACC_TX_CNTRL1_DEFAULT);    REG_WRITE(ixEthAccMacBase[portId],	      IX_ETH_ACC_MAC_RX_CNTRL1,	      IX_ETH_ACC_RX_CNTRL1_DEFAULT);    /* set the global state */    ixEthAccMacState[portId].portDisableState = ACTIVE;    ixEthAccMacState[portId].enabled = TRUE;    /* rewrite the setup (including mac filtering) depending     * on current options     */    ixEthAccMacStateUpdate(portId);    return IX_ETH_ACC_SUCCESS;}/* * PortDisable local variables. They contain the intermediate steps * while the port is being disabled and the buffers being drained out * of the NPE. */typedef void (*IxEthAccPortDisableRx)(IxEthAccPortId portId,				      IX_OSAL_MBUF * mBufPtr,				      BOOL useMultiBufferCallback);static IxEthAccPortRxCallbackixEthAccPortDisableFn[IX_ETH_ACC_NUMBER_OF_PORTS];static IxEthAccPortMultiBufferRxCallbackixEthAccPortDisableMultiBufferFn[IX_ETH_ACC_NUMBER_OF_PORTS];static IxEthAccPortDisableRxixEthAccPortDisableRxTable[IX_ETH_ACC_NUMBER_OF_PORTS];static UINT32ixEthAccPortDisableCbTag[IX_ETH_ACC_NUMBER_OF_PORTS];static UINT32ixEthAccPortDisableMultiBufferCbTag[IX_ETH_ACC_NUMBER_OF_PORTS];static IxEthAccPortTxDoneCallbackixEthAccPortDisableTxDoneFn[IX_ETH_ACC_NUMBER_OF_PORTS];static UINT32ixEthAccPortDisableTxDoneCbTag[IX_ETH_ACC_NUMBER_OF_PORTS];static UINT32ixEthAccPortDisableUserBufferCount[IX_ETH_ACC_NUMBER_OF_PORTS];/* * PortDisable private callbacks functions. They handle the user * traffic, and the special buffers (one for tx, one for rx) used * in portDisable. */PRIVATE voidixEthAccPortDisableTxDone(UINT32 cbTag,			  IX_OSAL_MBUF *mbuf){    IxEthAccPortId portId = (IxEthAccPortId)cbTag;    volatile IxEthAccPortDisableState *txState = &ixEthAccMacState[portId].txState;    /* check for the special mbuf used in portDisable */    if (mbuf == ixEthAccMacState[portId].portDisableTxMbufPtr)    {        *txState = TRANSMIT_DONE;    }    else    {	/* increment the count of user traffic during portDisable */	ixEthAccPortDisableUserBufferCount[portId]++;       /* call client TxDone function */        ixEthAccPortDisableTxDoneFn[portId](ixEthAccPortDisableTxDoneCbTag[portId], mbuf);    }}PRIVATE IxEthAccStatusixEthAccPortDisableTryTransmit(UINT32 portId){    int key;    IxEthAccStatus status = IX_ETH_ACC_SUCCESS;    volatile IxEthAccPortDisableState *txState = &ixEthAccMacState[portId].txState;    /* transmit the special buffer again if it is transmitted     * and update the txState     * This section is protected because the portDisable context     * run an identical code, so the system keeps transmitting at the     * maximum rate.     */    key = ixOsalIrqLock();    if (*txState == TRANSMIT_DONE)    {	IX_OSAL_MBUF *mbufTxPtr = ixEthAccMacState[portId].portDisableTxMbufPtr;	*txState = TRANSMIT;	status = ixEthAccPortTxFrameSubmit(portId,					   mbufTxPtr,					   IX_ETH_ACC_TX_DEFAULT_PRIORITY);    }    ixOsalIrqUnlock(key);    return status;}PRIVATE voidixEthAccPortDisableTxDoneAndSubmit(UINT32 cbTag,				   IX_OSAL_MBUF *mbuf){    IxEthAccPortId portId = (IxEthAccPortId)cbTag;    /* call the callback which forwards the traffic to the client */    ixEthAccPortDisableTxDone(cbTag, mbuf);    /* try to transmit the buffer used in portDisable     * if seen in TxDone     */    ixEthAccPortDisableTryTransmit(portId);}PRIVATE voidixEthAccPortDisableRx (IxEthAccPortId portId,		       IX_OSAL_MBUF * mBufPtr,		       BOOL useMultiBufferCallback){    volatile IxEthAccPortDisableState *rxState = &ixEthAccMacState[portId].rxState;    IX_OSAL_MBUF *mNextPtr;    while (mBufPtr)    {	mNextPtr = IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR(mBufPtr);	IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR(mBufPtr) = NULL;	/* check for the special mbuf used in portDisable */	if (mBufPtr == ixEthAccMacState[portId].portDisableRxMbufPtr)	{            *rxState = RECEIVE;	}	else	{	    /* increment the count of user traffic during portDisable */	    ixEthAccPortDisableUserBufferCount[portId]++;	    /* reset the received payload length during portDisable */	    IX_OSAL_MBUF_MLEN(mBufPtr)    = 0;	    IX_OSAL_MBUF_PKT_LEN(mBufPtr) = 0;	    if (useMultiBufferCallback)	    {		/* call the user callback with one unchained		 * buffer, without payload. A small array is built		 * to be used as a parameter (the user callback expects		 * to receive an array ended by a NULL pointer.		 */		IX_OSAL_MBUF *mBufPtrArray[2];		mBufPtrArray[0] = mBufPtr;		mBufPtrArray[1] = NULL;		ixEthAccPortDisableMultiBufferFn[portId](			 ixEthAccPortDisableMultiBufferCbTag[portId],			 mBufPtrArray);	    }	    else	    {		/* call the user callback with a unchained

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区在线播放| 99久久婷婷国产综合精品电影| 久久精品视频一区二区| 欧美一区二区在线不卡| 欧美三区在线观看| 91麻豆精品91久久久久同性| 欧美在线短视频| 欧美日韩国产大片| 91精品国产91久久久久久最新毛片| 91国产成人在线| 欧美日韩日日骚| 欧美人xxxx| 久久综合五月天婷婷伊人| 精品国产一区二区三区av性色| 久久综合资源网| 国产精品女人毛片| 亚洲精品日韩综合观看成人91| 亚洲一区二区三区激情| 日日夜夜精品免费视频| 激情综合五月天| 成人av电影在线网| 欧美日韩中文字幕精品| 91精品国产麻豆国产自产在线| 日韩一级在线观看| 久久天天做天天爱综合色| 中文在线一区二区| 亚洲图片欧美视频| 美国精品在线观看| 91小视频在线免费看| 欧美日韩一级片网站| 久久久久国产成人精品亚洲午夜| 国产精品久久一级| 奇米777欧美一区二区| 国产精品亚洲一区二区三区妖精| 99久久精品情趣| 日韩欧美亚洲国产另类| 亚洲视频香蕉人妖| 精品写真视频在线观看| 色播五月激情综合网| 久久久噜噜噜久噜久久综合| 亚洲精品你懂的| 国产成人三级在线观看| 欧美精品成人一区二区三区四区| 久久婷婷国产综合精品青草| 天堂影院一区二区| 99久久精品国产毛片| 日韩视频在线你懂得| 亚洲欧美另类小说视频| 麻豆国产一区二区| 欧美日韩国产综合久久| 亚洲欧美一区二区在线观看| 狠狠色综合色综合网络| 欧美夫妻性生活| 中文字幕亚洲在| 国产成人夜色高潮福利影视| 欧美精品日韩一区| 亚洲成人免费视频| 91美女片黄在线| 国产精品色一区二区三区| 麻豆国产欧美日韩综合精品二区| 91极品美女在线| 亚洲欧洲www| 成人精品视频一区| 中文字幕免费不卡| 福利视频网站一区二区三区| 91精品国产综合久久久蜜臀图片| 一区二区不卡在线视频 午夜欧美不卡在 | 久久久精品国产99久久精品芒果 | 毛片av中文字幕一区二区| 91丨九色porny丨蝌蚪| 国产女主播一区| 国产精品综合久久| 久久你懂得1024| 国产成人免费高清| 亚洲国产精品成人久久综合一区| 国产最新精品精品你懂的| 日韩视频免费直播| 韩国精品主播一区二区在线观看| 久久综合九色综合欧美就去吻| 麻豆成人91精品二区三区| 欧美成人精品二区三区99精品| 日韩中文字幕1| 欧美成人艳星乳罩| 国产成人免费xxxxxxxx| 国产精品国产三级国产a | 欧美日韩电影一区| 亚洲最新在线观看| 欧美高清性hdvideosex| 日韩二区在线观看| 26uuu另类欧美亚洲曰本| 国产白丝网站精品污在线入口| 久久久91精品国产一区二区精品 | 2023国产精品自拍| 国产成a人亚洲| 悠悠色在线精品| 日韩精品综合一本久道在线视频| 九九国产精品视频| 国产精品久久久久影院亚瑟 | 一区二区高清视频在线观看| 欧美一区日本一区韩国一区| 国产一区二区久久| 亚洲人成电影网站色mp4| 欧美综合久久久| 激情五月婷婷综合网| 国产精品女同一区二区三区| 91免费版在线看| 久久99精品久久久久婷婷| 国产精品区一区二区三区| 欧美视频第二页| 激情国产一区二区| 国产精品福利电影一区二区三区四区| 在线一区二区三区四区五区| 激情综合色综合久久综合| 亚洲免费在线电影| 久久久久久久综合日本| 色综合网站在线| 久久99精品国产| 亚洲黄色性网站| 国产亚洲欧美在线| 欧美日韩dvd在线观看| 成人美女视频在线看| 日本三级亚洲精品| 一区二区国产视频| 日本一区二区三区视频视频| 日韩欧美三级在线| 欧美羞羞免费网站| 成人av免费在线播放| 久久激情综合网| 亚洲大型综合色站| 最新热久久免费视频| 2020国产精品| 精品少妇一区二区三区日产乱码| 91高清视频在线| 在线观看亚洲精品| www.爱久久.com| 成人久久18免费网站麻豆| 极品销魂美女一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 国产精品久久久久aaaa| 国产日韩欧美制服另类| 日韩视频永久免费| 日韩亚洲欧美在线| 日韩丝袜美女视频| 日韩小视频在线观看专区| 欧美亚洲国产一区在线观看网站 | 精品国产乱码久久久久久影片| 在线观看av不卡| 91国偷自产一区二区三区观看| 不卡高清视频专区| 成人综合婷婷国产精品久久| 免费不卡在线观看| 美女www一区二区| 韩国在线一区二区| 国产成人av网站| 粉嫩欧美一区二区三区高清影视 | 一本大道久久精品懂色aⅴ| 成人激情图片网| 99国产精品一区| 99re成人精品视频| 欧美三级午夜理伦三级中视频| 欧美色成人综合| 538prom精品视频线放| 日韩欧美中文字幕制服| 久久综合国产精品| 欧美激情一区不卡| 自拍偷拍欧美精品| 午夜视频在线观看一区二区| 日韩激情中文字幕| 激情欧美一区二区| 99麻豆久久久国产精品免费优播| av一区二区三区黑人| 一本久久综合亚洲鲁鲁五月天| 91久久精品一区二区三| 日韩午夜在线观看视频| 国产午夜精品一区二区 | 亚洲国产人成综合网站| 久久精品国产免费看久久精品| 久久99九九99精品| 91在线小视频| 欧美久久久久久久久中文字幕| 2020国产精品自拍| 一区二区在线观看不卡| 日本不卡视频一二三区| 成人免费毛片片v| 在线播放91灌醉迷j高跟美女| 久久这里只有精品首页| 亚洲女性喷水在线观看一区| 日韩av二区在线播放| eeuss影院一区二区三区| 欧美日韩另类国产亚洲欧美一级| 久久精品一级爱片| 亚洲国产va精品久久久不卡综合| 国产一区在线观看麻豆| 色狠狠一区二区| 久久久久久电影| 亚洲精品一区二区三区影院| 中文字幕欧美三区| 欧美精品一区二区不卡| 亚洲一区二区三区四区在线观看 | 色诱视频网站一区|