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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? s3c2510eth.c

?? 三星vxworks的S3C2410 的BSP
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
    UINT32 status;

    /* Read and clear interrupt status. */
    status = (UINT32)*S3C2510_BMTXSTAT(unit);
    *S3C2510_BMTXSTAT(unit) |= status; /* jwchoi */
   
    if (status & S3C2510_BMTXSTAT_MCOMP)                    /* MAC Tx Completion */
    {
        if ((!pDrvCtrl->bPolling) && (!pDrvCtrl->bTxHandler))
        {
            pDrvCtrl->bTxHandler = TRUE;

            netJobAdd((FUNCPTR)s3c2510EthTxHandler, (int)pDrvCtrl, 0, 0, 0, 0);
        }
    }

    if (status & S3C2510_BMTXSTAT_BNO)                      /* BDMA Tx Not Owner */
    {
        /* Up-date statistics. */
        pDrvCtrl->bmTxStatBno++;
    }

    if (status & S3C2510_BMTXSTAT_BEMPTY)                   /* BDMA Tx Buffer Empty */
    {
        /* Up-date statistics. */
        pDrvCtrl->bmTxStatBempty++;
    }
}

/*******************************************************************************
*
* s3c2510EthRbdProcess - porcess a RBD
*
* RETURNS : N/A
*/

void s3c2510EthRbdProcess(
    ETH_DRV_CTRL *pDrvCtrl,                                 /* pointer to driver structure */
    PETHRBD pRbd                                            /* pointer to the RBD */
    )
{
    ULONG length;

    length = s3c2510EthRbdCheck(pDrvCtrl, pRbd);

    if (length == 0)
    {
        /* Up-date statistics. */
        pDrvCtrl->MIB2TBL.ifInErrors++;
    }
    else
    {
#ifdef  DEBUG_TRACE
        s3c2510EthHexDump((UCHAR *)(pRbd->pBuf + SIZE_ETH_WA), length);
#endif  /* DEBUG_TRACE */

        /* Up-date statistics. */
        pDrvCtrl->MIB2TBL.ifInOctets += length;
        if (((UINT8 *)(pRbd->pBuf + SIZE_ETH_WA))[0] & 0x01)
        {
            pDrvCtrl->MIB2TBL.ifInNUcastPkts += 1;
        }
        else
        {
            pDrvCtrl->MIB2TBL.ifInUcastPkts += 1;
        }

        if (pDrvCtrl->pClPool)
        {
            M_BLK_ID pMblk;
            CL_BLK_ID pClBlk;
            char *pBuf;

            if (pDrvCtrl->pClPool->clNumFree > (NUM_TBD_ETH / 8))
            {
                pMblk   = netMblkGet(pDrvCtrl->endObj.pNetPool, M_DONTWAIT, MT_DATA);
                pClBlk  = netClBlkGet(pDrvCtrl->endObj.pNetPool, M_DONTWAIT);
                END_TX_SEM_TAKE(&pDrvCtrl->endObj, WAIT_FOREVER);
                pBuf    = netClusterGet(pDrvCtrl->endObj.pNetPool, pDrvCtrl->pClPool);
                END_TX_SEM_GIVE(&pDrvCtrl->endObj);
            }
            else
            {
#ifdef  DEBUG_TRACE
                printf("s3c2510Eth%d Error: no cluster buffer for the Rx\n", pDrvCtrl->unit);
#endif  /* DEBUG_TRACE */

                pMblk   = NULL;
                pClBlk  = NULL;
                pBuf    = NULL;
            }

            if ((!pMblk) || (!pClBlk) || (!pBuf))
            {
                /* Up-date statistics. */
                pDrvCtrl->MIB2TBL.ifInDiscards++;

                if (pMblk)
                {
                    netMblkFree(pDrvCtrl->endObj.pNetPool, pMblk);
                }
#ifdef  DEBUG_TRACE
                else
                {
                    printf("s3c2510Eth%d Error: failed to allocate M_BLK\n", pDrvCtrl->unit);
                }
#endif  /* DEBUG_TRACE */
                if (pClBlk)
                {
                    netClBlkFree(pDrvCtrl->endObj.pNetPool, pClBlk);
                }
#ifdef  DEBUG_TRACE
                else
                {
                    printf("s3c2510Eth%d Error: failed to allocate CL_BLK\n", pDrvCtrl->unit);
                }
#endif  /* DEBUG_TRACE */
                if (pBuf)
                {
                    netClFree(pDrvCtrl->endObj.pNetPool, pBuf);
                }
#ifdef  DEBUG_TRACE
                else
                {
                    printf("s3c2510Eth%d Error: failed to allocate cluster buffer\n", pDrvCtrl->unit);
                }
#endif  /* DEBUG_TRACE */
            }
            else
            {
                netClBlkJoin(pClBlk, (char *)(pRbd->pBuf - (SIZE_ETH_FB_HDR - 4)), SIZE_ETH_MDMA, NULL, 0, 0, 0);
                netMblkClJoin(pMblk, pClBlk);

                /* Set up the mBlk properly. */
                pMblk->mBlkHdr.mFlags  |= M_PKTHDR;
                pMblk->mBlkHdr.mData    = (char *)(pRbd->pBuf + SIZE_ETH_WA);
                pMblk->mBlkHdr.mLen     = length;
                pMblk->mBlkPktHdr.len   = length;

#if 0 /* One time 3DES Run */
                s3c2510DesRun(
                        (UCHAR *)(pRbd->pBuf + SIZE_ETH_WA + SIZE_ETH_HDR),
                        (UCHAR *)(FB_END),
#ifdef  DES_4WORD
                        ((length - SIZE_ETH_HDR + 31) / 32) * 32,
#else   /* DES_4WORD */
                        ((length - SIZE_ETH_HDR + 7) / 8) * 8,
#endif  /* DES_4WORD */
                        1, 1, 1, 1, 1, 1, 1, 1,
                        TRUE
                        );
#endif
#if 0 /* Two time 3DES Run */
                s3c2510DesRun(
                        (UCHAR *)(pRbd->pBuf + SIZE_ETH_WA + SIZE_ETH_HDR),
                        (UCHAR *)(pRbd->pBuf + SIZE_ETH_WA + SIZE_ETH_HDR),
#ifdef  DES_4WORD
                        ((length - SIZE_ETH_HDR + 31) / 32) * 32,
#else   /* DES_4WORD */
                        ((length - SIZE_ETH_HDR + 7) / 8) * 8,
#endif  /* DES_4WORD */
                        1, 1, 1, 1, 1, 1, 1, 1,
                        TRUE
                        );
                s3c2510DesRun(
                        (UCHAR *)(pRbd->pBuf + SIZE_ETH_WA + SIZE_ETH_HDR),
                        (UCHAR *)(pRbd->pBuf + SIZE_ETH_WA + SIZE_ETH_HDR),
#ifdef  DES_4WORD
                        ((length - SIZE_ETH_HDR + 31) / 32) * 32,
#else   /* DES_4WORD */
                        ((length - SIZE_ETH_HDR + 7) / 8) * 8,
#endif  /* DES_4WORD */
                        1, 1, 1, 1, 1, 1, 1, 1,
                        FALSE
                        );
#endif

                /* Swap the buffer. */
                pRbd->pBuf = (UINT32)(pBuf + (SIZE_ETH_FB_HDR - 4));

                /* Call END receive routine. */
                END_RCV_RTN_CALL(&pDrvCtrl->endObj, pMblk);
            }
        }
        else if (pDrvCtrl->receiveRtn)
        {
            pDrvCtrl->receiveRtn(pDrvCtrl, (char *)(pRbd->pBuf + SIZE_ETH_WA), length);
        }
    }

    /* Free the used RBD. */
    s3c2510EthRbdFree(pDrvCtrl, pRbd);
}

/*******************************************************************************
*
* s3c2510EthTbdProcess - porcess a TBD
*
* RETURNS : N/A
*/

void s3c2510EthTbdProcess(
    ETH_DRV_CTRL *pDrvCtrl,                                 /* pointer to driver structure */
    PETHTBD pTbd                                            /* pointer to the TBD */
    )
{
    if (s3c2510EthTbdCheck(pDrvCtrl, pTbd) == ERROR)
    {
        /* Up-date statistics. */
        pDrvCtrl->MIB2TBL.ifOutErrors++;
    }
    else
    {
        /* Up-date statistics. */
        pDrvCtrl->MIB2TBL.ifOutOctets += (ULONG)pTbd->length;
        if (((UINT8 *)(pTbd->pBuf + SIZE_ETH_WA))[0] & 0x01)
        {
            pDrvCtrl->MIB2TBL.ifOutNUcastPkts += 1;
        }
        else
        {
            pDrvCtrl->MIB2TBL.ifOutUcastPkts += 1;
        }
    }

    END_TX_SEM_TAKE(&pDrvCtrl->endObj, WAIT_FOREVER);

    /* Free the used TBD. */
    s3c2510EthTbdFree(pDrvCtrl, pTbd);

    END_TX_SEM_GIVE(&pDrvCtrl->endObj);
}

/*******************************************************************************
*
* s3c2510EthRxHandler - Rx interrupt handler
*
* RETURNS : N/A
*/

void s3c2510EthRxHandler(
    ETH_DRV_CTRL *pDrvCtrl                                  /* pointer to driver structure */
    )
{
    int unit = pDrvCtrl->unit;
    UINT32 count;
    PETHRBD pRbd;

#ifdef  DEBUG_TRACE
    printf("s3c2510Eth%d RxHandler\n", unit);
#endif  /* DEBUG_TRACE */

    pDrvCtrl->bRxHandler = FALSE;

    count = *S3C2510_BRXBDCNT(unit);

    do
    {
        /* Get the first available RBD. */
        pRbd = s3c2510EthRbdGet(pDrvCtrl);

        if (pRbd == NULL)
        {
            break;
        }

        s3c2510EthRbdProcess(pDrvCtrl, pRbd);

    } while (count != pDrvCtrl->rbdIndex);

    /* Enable MAC Rx. */
    *S3C2510_MRXCON(unit) |= S3C2510_MRXCON_EN;             /* Receive Enable */

    /* Enable BDMA Rx. */
    *S3C2510_BRXCON(unit) |= S3C2510_BRXCON_EN;             /* BDMA Rx Block Enable */
}

/*******************************************************************************
*
* s3c2510EthTxHandler - Tx interrupt handler
*
* RETURNS : N/A
*/

void s3c2510EthTxHandler(
    ETH_DRV_CTRL *pDrvCtrl                                  /* pointer to driver structure */
    )
{
    int unit = pDrvCtrl->unit;
    UINT32 count;
    PETHTBD pTbd;

#ifdef  DEBUG_TRACE
    printf("s3c2510Eth%d TxHandler\n", pDrvCtrl->unit);
#endif  /* DEBUG_TRACE */

    pDrvCtrl->bTxHandler = FALSE;

    count = *S3C2510_BTXBDCNT(unit);

    do
    {
        /* Get the first completed TBD. */
        pTbd = (PETHTBD)(pDrvCtrl->tbdBase + pDrvCtrl->tbdIndex * SIZE_BD);

        if ((pTbd->status & S3C2510_ETH_TBD_O) || (pTbd->length == 0))
        {
            break;
        }

        END_TX_SEM_TAKE(&pDrvCtrl->endObj, WAIT_FOREVER);

        s3c2510EthTbdProcess(pDrvCtrl, pTbd);

        END_TX_SEM_GIVE(&pDrvCtrl->endObj);

    } while (count != pDrvCtrl->tbdIndex);

    /* Restart Tx if it was blocked. */
    if (pDrvCtrl->bTxBlocked)
    {
#ifdef  DEBUG_TRACE
        printf("s3c2510Eth%d Restart Tx\n", pDrvCtrl->unit);
#endif  /* DEBUG_TRACE */

        muxTxRestart(&pDrvCtrl->endObj);

        pDrvCtrl->bTxBlocked = FALSE;
    }
}

/*******************************************************************************
*
* s3c2510EthShow - display driver statstics.
*
* RETURNS : N/A
*/

STATUS s3c2510EthShow(int unit)
{
    ETH_DRV_CTRL *pDrvCtrl = (ETH_DRV_CTRL *)endFindByName(ETH_DEV_NAME, unit);

    if (!pDrvCtrl)
    {
        return -1;
    }

    if (pDrvCtrl->endObj.pNetPool)
    {
        printf("pNetPool(0x%08X)\n", (UINT32)pDrvCtrl->endObj.pNetPool);
        printf("    mBlkCnt:        %d\n", pDrvCtrl->endObj.pNetPool->mBlkCnt);
        printf("    mBlkFree:       %d\n", pDrvCtrl->endObj.pNetPool->mBlkFree);
    }
    if (pDrvCtrl->pClPool)
    {
        printf("pClPool(0x%08X)\n", (UINT32)pDrvCtrl->pClPool);
        printf("    clSize:         %d\n", pDrvCtrl->pClPool->clSize);
        printf("    clNum:          %d\n", pDrvCtrl->pClPool->clNum);
        printf("    clNumFree:      %d\n", pDrvCtrl->pClPool->clNumFree);
    }
    printf("RBD(0x%08X)\n", pDrvCtrl->rbdBase);
    printf("    rbdIndex:       %d\n", pDrvCtrl->rbdIndex);
    printf("    BRXBDCNT:       %d\n", *S3C2510_BRXBDCNT(unit));
    printf("TBD(0x%08X)\n", pDrvCtrl->tbdBase);
    printf("    tbdIndex:       %d\n", pDrvCtrl->tbdIndex);
    printf("    tbdFree:        %d\n", pDrvCtrl->tbdFree);
    printf("    BTXBDCNT:       %d\n", *S3C2510_BTXBDCNT(unit));
    printf("Rx statistics%s\n", (!((*S3C2510_BRXCON(unit)) & S3C2510_BRXCON_EN)) ? ", stopped" : "");
    printf("    bmRxStatBfull:  %d\n", pDrvCtrl->bmRxStatBfull);
    printf("    bmRxStatBno:    %d\n", pDrvCtrl->bmRxStatBno);
    printf("    bRxMso:         %d\n", pDrvCtrl->bRxMso);
    printf("    mRxHalted:      %d\n", pDrvCtrl->mRxHalted);
    printf("    mRxParErr:      %d\n", pDrvCtrl->mRxParErr);
    printf("    mRxLongErr:     %d\n", pDrvCtrl->mRxLongErr);
    printf("    mRxOverflow:    %d\n", pDrvCtrl->mRxOverflow);
    printf("    mRxCrcErr:      %d\n", pDrvCtrl->mRxCrcErr);
    printf("    mRxAlignErr:    %d\n", pDrvCtrl->mRxAlignErr);
    printf("Tx statistics%s\n", (!((*S3C2510_BTXCON(unit)) & S3C2510_BTXCON_EN)) ? ", stopped" : "");
    printf("    bmTxStatBempty: %d\n", pDrvCtrl->bmTxStatBempty);
    printf("    bmTxStatBno:    %d\n", pDrvCtrl->bmTxStatBno);
    printf("    mTxPaused:      %d\n", pDrvCtrl->mTxPaused);
    printf("    mTxHalted:      %d\n", pDrvCtrl->mTxHalted);
    printf("    mTxSqeErr:      %d\n", pDrvCtrl->mTxSqeErr);
    printf("    mTxParErr:      %d\n", pDrvCtrl->mTxParErr);
    printf("    mTxLateColl:    %d\n", pDrvCtrl->mTxLateColl);
    printf("    mTxNocarr:      %d\n", pDrvCtrl->mTxNocarr);
    printf("    mTxDeferErr:    %d\n", pDrvCtrl->mTxDeferErr);
    printf("    mTxUnderflow:   %d\n", pDrvCtrl->mTxUnderflow);
    printf("    mTxExColl:      %d\n", pDrvCtrl->mTxExColl);
    printf("    mTxDefer:       %d\n", pDrvCtrl->mTxDefer);
    printf("    mTxExColl:      %d\n", pDrvCtrl->mTxExColl);
    printf("    bTxBlocked:     %d\n", pDrvCtrl->bTxBlocked);

    return OK;
}

/*******************************************************************************
*
* s3c2510EthMiiShow - display MII registers.
*
* RETURNS : N/A
*/

STATUS s3c2510EthMiiShow(int unit)
{
    ETH_DRV_CTRL *pDrvCtrl = (ETH_DRV_CTRL *)endFindByName(ETH_DEV_NAME, unit);
    UINT8 phyAddr;

    if (!pDrvCtrl)
    {
        return -1;
    }

    phyAddr = pDrvCtrl->phyInfo.phyAddr;

    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_CTRL_REG,      &pDrvCtrl->PHYREGS.phyCtrl);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_STAT_REG,      &pDrvCtrl->PHYREGS.phyStatus);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_PHY_ID1_REG,   &pDrvCtrl->PHYREGS.phyId1);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_PHY_ID2_REG,   &pDrvCtrl->PHYREGS.phyId2);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_AN_ADS_REG,    &pDrvCtrl->PHYREGS.phyAds);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_AN_PRTN_REG,   &pDrvCtrl->PHYREGS.phyPrtn);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_AN_EXP_REG,    &pDrvCtrl->PHYREGS.phyExp);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, MII_AN_NEXT_REG,   &pDrvCtrl->PHYREGS.phyNext);
    s3c2510EthMiiRead(pDrvCtrl, phyAddr, L80225_STAT_REG,   &pDrvCtrl->l80225Status);

    printf("Standard MII register\n");
    printf("    MII_CTRL_REG:       0x%04X\n", pDrvCtrl->PHYREGS.phyCtrl);
    prin

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线播放| 国产美女精品人人做人人爽| 亚洲精品一区二区三区香蕉| 91丨porny丨首页| 青青草视频一区| 亚洲精品国产无天堂网2021 | 国产传媒久久文化传媒| 亚洲大片免费看| 日韩理论电影院| 久久久影视传媒| 91精品免费在线观看| 91精品1区2区| 成人av影院在线| 国产大片一区二区| 精品综合免费视频观看| 日韩精品乱码av一区二区| 亚洲精品日韩一| 国产精品亲子伦对白| 日韩欧美中文一区| 欧美老女人第四色| 在线视频国内自拍亚洲视频| 成人爱爱电影网址| 国产酒店精品激情| 国产一区二区在线看| 开心九九激情九九欧美日韩精美视频电影| 亚洲综合一二三区| 亚洲自拍欧美精品| 亚洲欧美另类久久久精品2019| 欧美激情艳妇裸体舞| 久久婷婷国产综合精品青草| 欧美videossexotv100| 日韩欧美国产一区在线观看| 91精品久久久久久久91蜜桃| 91精品国产综合久久香蕉的特点| 欧美久久久久久久久| 欧美日本一区二区在线观看| 欧美三级日韩三级| 欧美日韩视频第一区| 欧美日韩电影一区| 欧美一区二区三区在线视频| 7777精品伊人久久久大香线蕉超级流畅| 欧美四级电影网| 欧美日韩精品系列| 日韩一级片网址| 欧美成人激情免费网| 久久婷婷国产综合国色天香| 国产精品无码永久免费888| 国产精品久久免费看| 亚洲三级久久久| 一区二区三区色| 日韩精彩视频在线观看| 美女爽到高潮91| 国产精品综合网| 不卡一二三区首页| 色老综合老女人久久久| 精品视频免费在线| 日韩免费高清av| 国产亚洲va综合人人澡精品| 中文字幕av一区二区三区免费看 | 日韩在线观看一区二区| 捆绑紧缚一区二区三区视频| 国产精品一区二区男女羞羞无遮挡 | 欧美一级高清片| 久久免费午夜影院| 亚洲婷婷在线视频| 日韩成人精品视频| 国产精品一区二区三区网站| 一本到高清视频免费精品| 欧美精品久久一区二区三区| 久久久影院官网| 亚洲综合区在线| 狠狠色丁香久久婷婷综合丁香| 成人免费视频视频在线观看免费| 色噜噜偷拍精品综合在线| 欧美丰满高潮xxxx喷水动漫| 国产女同性恋一区二区| 亚洲午夜久久久久久久久久久| 美女网站在线免费欧美精品| 91丨九色丨黑人外教| 91麻豆精品国产91久久久使用方法 | 中文字幕国产一区| 亚洲小说欧美激情另类| 国产精品主播直播| 欧美日韩中文另类| 国产日韩三级在线| 一个色妞综合视频在线观看| 久久丁香综合五月国产三级网站| av中文字幕不卡| 正在播放一区二区| 一区在线观看免费| 韩国女主播一区| 欧美三级乱人伦电影| 国产精品国产三级国产普通话三级| 日韩av一二三| 91福利视频久久久久| 久久精品男人天堂av| 日韩综合一区二区| 在线免费亚洲电影| 国产精品久久久久国产精品日日| 免费人成网站在线观看欧美高清| 色一情一伦一子一伦一区| 国产亚洲成av人在线观看导航| 欧美aa在线视频| 欧洲一区二区三区免费视频| 国产精品青草久久| 国产在线精品一区二区| 91精品国产一区二区三区蜜臀| 亚洲激情一二三区| 成人黄色一级视频| 久久精品一区二区三区不卡| 美腿丝袜亚洲色图| 欧美性猛片aaaaaaa做受| 最新久久zyz资源站| 丁香激情综合国产| 26uuuu精品一区二区| 日本成人在线网站| 欧美日韩久久一区二区| 亚洲激情中文1区| 91一区一区三区| 中文字幕亚洲成人| 国产 欧美在线| 国产色婷婷亚洲99精品小说| 久久99国产精品免费| 3d成人动漫网站| 天堂一区二区在线| 欧美日本国产一区| 五月综合激情网| 欧美日本一道本在线视频| 一区二区国产盗摄色噜噜| 日本精品视频一区二区三区| 一区二区三区精品在线| 日本乱码高清不卡字幕| 亚洲国产人成综合网站| 欧美三级电影在线看| 亚洲成人免费视频| 欧美精品乱人伦久久久久久| 视频一区二区三区中文字幕| 欧美日高清视频| 毛片av一区二区三区| 久久综合视频网| 国产传媒欧美日韩成人| 国产精品久久久久天堂| 99re这里只有精品视频首页| 一区二区三区在线观看国产| 欧美亚洲综合在线| 亚洲成人av资源| 日韩你懂的电影在线观看| 国产乱码精品一区二区三区忘忧草| 久久天天做天天爱综合色| 成人午夜电影久久影院| 亚洲三级在线免费| 欧美日韩成人综合| 黑人巨大精品欧美黑白配亚洲| 欧美极品xxx| 色婷婷精品久久二区二区蜜臂av| 亚洲综合一区二区三区| 91精品国产综合久久久蜜臀图片| 韩国av一区二区三区四区| 国产精品污网站| 欧美日韩一区不卡| 全国精品久久少妇| 欧美国产日韩a欧美在线观看| 91毛片在线观看| 免费在线观看一区| 国产精品毛片久久久久久久| 91成人看片片| 久久99精品久久久久婷婷| 国产精品免费视频一区| 欧美日韩一级片在线观看| 国产在线一区观看| 亚洲品质自拍视频| 日韩午夜激情免费电影| 成人激情免费电影网址| 日韩主播视频在线| 中文字幕色av一区二区三区| 欧美乱妇23p| av成人免费在线观看| 日韩经典一区二区| 成人免费小视频| 日韩小视频在线观看专区| 色综合久久综合网欧美综合网| 日韩va欧美va亚洲va久久| 国产精品网站在线观看| 日韩一区二区在线观看视频播放| 风间由美一区二区av101| 午夜激情久久久| 国产精品麻豆久久久| 欧美一区二区日韩一区二区| 99麻豆久久久国产精品免费| 日韩1区2区日韩1区2区| 亚洲欧美日韩系列| 久久精品日产第一区二区三区高清版| 欧美性一级生活| 成人app在线| 精品一区精品二区高清| 亚洲不卡av一区二区三区| 欧美国产成人在线| 精品欧美乱码久久久久久 | 欧美福利电影网| 色综合天天综合给合国产|