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

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

?? ne2000end.c

?? 菲利普22系列 vxworks bsp 可以用來可以和其他版本的ARM vxworks bsp(特別是7內核的進行比較)進行比較可以加深對BSP的理解和掌握
?? C
?? 第 1 頁 / 共 5 頁
字號:
    {
    UCHAR	rxFilter;		/* receiver configuration */
#ifdef DEBUG
    static buf [256];
#endif

    ENDLOGMSG (("ne2000Config: enter (intEnable=%d)\n",
		intEnable, 0, 0, 0, 0, 0));

    /* Disable device interrupts */

    pDrvCtrl->imask = 0;
    SYS_OUT_CHAR (pDrvCtrl, ENE_INTMASK, pDrvCtrl->imask);

    /* Set up address filter for multicasting. */

    if (END_MULTI_LST_CNT(&pDrvCtrl->endObj) > 0)
	ne2000AddrFilterSet (pDrvCtrl);

    /* preserve END_POLLING and OVERWRITE flags */
    pDrvCtrl->flags &= (END_POLLING | END_OVERWRITE | END_OVERWRITE2);

    /* 1. program Command Register for page 0 and for no DMA */

    SYS_OUT_CHAR (pDrvCtrl, ENE_CMD, CMD_NODMA | CMD_PAGE0 | CMD_STOP);

    /* 2. initialize Data Configuration Register:
     *    16-bit bus, burst mode, 8-deep FIFO.
     * or
     *    8-bit bus, burst mode, 8-deep FIFO.
     */

    if (pDrvCtrl->byteAccess)
	SYS_OUT_CHAR (pDrvCtrl, ENE_DCON, DCON_BSIZE1 | DCON_BUS_8 
			| DCON_LOOPBK_OFF);
    else
	SYS_OUT_CHAR (pDrvCtrl, ENE_DCON, DCON_BSIZE1 | DCON_BUS16 
			| DCON_LOOPBK_OFF);

    SYS_ENET_ADDR_GET (pDrvCtrl);

    /* 3. clear Remote Byte Count Register */

    SYS_OUT_CHAR (pDrvCtrl, ENE_RBCR0, 0x00);
    SYS_OUT_CHAR (pDrvCtrl, ENE_RBCR1, 0x00);

    /* 4. initialize Receive Configuration Register */

    /* Always accept broadcast packets. */

    rxFilter = RCON_BROAD;

    /* Set multicast mode if it's asked for. */

    if (END_MULTI_LST_CNT(&pDrvCtrl->endObj) > 0)
	{
	rxFilter |= RCON_GROUP;
	}
    ENDLOGMSG (("\tMulticast mode %s\n",
	    (rxFilter & RCON_GROUP) ? "on" : "off",
	    0, 0, 0, 0, 0));

    /* Set promiscuous mode if it's asked for. */

    if (END_FLAGS_GET(&pDrvCtrl->endObj) & IFF_PROMISC)
	{
	rxFilter |= RCON_PROM;
	}
    ENDLOGMSG (("\tPromiscuous mode %s\n",
	    (rxFilter & RCON_PROM) ? "on" : "off",
	    0, 0, 0, 0, 0));

    ENDLOGMSG (("\tsetting rxFilter = 0x%x\n", rxFilter,2,3,4,5,6));

    SYS_OUT_CHAR (pDrvCtrl, ENE_RCON, rxFilter);

    /* 5. place the ENE in LOOPBACK mode 1 or 2 */

    SYS_OUT_CHAR (pDrvCtrl, ENE_TCON, TCON_LB1);

    /* 6. initialize Receive Buffer Ring */

    SYS_OUT_CHAR (pDrvCtrl, ENE_RSTART, NE2000_PSTART);
    SYS_OUT_CHAR (pDrvCtrl, ENE_RSTOP, NE2000_PSTOP);
    SYS_OUT_CHAR (pDrvCtrl, ENE_BOUND, NE2000_PSTART);

    /* 7. clear Interrupt Status Register */

    SYS_OUT_CHAR (pDrvCtrl, ENE_INTSTAT, (char)0xff);

    /* 8. initialize Interrupt Mask Register */

    pDrvCtrl->imask = 0;
    SYS_OUT_CHAR (pDrvCtrl, ENE_INTMASK, pDrvCtrl->imask);

    /* 9. program Command Register for page 1 */

    SYS_OUT_CHAR (pDrvCtrl, ENE_CMD, CMD_PAGE1 | CMD_STOP);

    /* i) initialize physical address registers */

    SYS_OUT_CHAR (pDrvCtrl, ENE_STA0, pDrvCtrl->enetAddr[0]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_STA1, pDrvCtrl->enetAddr[1]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_STA2, pDrvCtrl->enetAddr[2]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_STA3, pDrvCtrl->enetAddr[3]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_STA4, pDrvCtrl->enetAddr[4]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_STA5, pDrvCtrl->enetAddr[5]);

    ENDLOGMSG (("enet addr %02x:%02x:%02x:%02x:%02x:%02x\n",
		pDrvCtrl->enetAddr[0] & 0xff,
		pDrvCtrl->enetAddr[1] & 0xff,
		pDrvCtrl->enetAddr[2] & 0xff,
		pDrvCtrl->enetAddr[3] & 0xff,
		pDrvCtrl->enetAddr[4] & 0xff,
		pDrvCtrl->enetAddr[5] & 0xff));

    /* ii) initialize multicast address registers */

    ne2000AddrFilterSet (pDrvCtrl);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR0, pDrvCtrl->mcastFilter[0]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR1, pDrvCtrl->mcastFilter[1]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR2, pDrvCtrl->mcastFilter[2]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR3, pDrvCtrl->mcastFilter[3]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR4, pDrvCtrl->mcastFilter[4]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR5, pDrvCtrl->mcastFilter[5]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR6, pDrvCtrl->mcastFilter[6]);
    SYS_OUT_CHAR (pDrvCtrl, ENE_MAR7, pDrvCtrl->mcastFilter[7]);


#ifdef DEBUG
   ENDLOGMSG ((("Setting multicast addresses to:\n"),1,2,3,4,5,6));
    sprintf(buf, "enet mcast %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n",
	    pDrvCtrl->mcastFilter[0] & 0xff,
	    pDrvCtrl->mcastFilter[1] & 0xff,
	    pDrvCtrl->mcastFilter[2] & 0xff,
	    pDrvCtrl->mcastFilter[3] & 0xff,
	    pDrvCtrl->mcastFilter[4] & 0xff,
	    pDrvCtrl->mcastFilter[5] & 0xff,
	    pDrvCtrl->mcastFilter[6] & 0xff,
	    pDrvCtrl->mcastFilter[7] & 0xff);
    ENDLOGMSG (((buf),1,2,3,4,5,6));
#endif /* DEBUG */

    /* iii) initialize current page pointer */

    SYS_OUT_CHAR (pDrvCtrl, ENE_CURR, NE2000_PSTART + 1);
    pDrvCtrl->nextPacket = NE2000_PSTART + 1;

    /* set memory parameters */

    SYS_OUT_CHAR (pDrvCtrl, ENE_CMD, CMD_NODMA | CMD_PAGE2 | CMD_STOP);

    /*
     * HELP: DP 83905 manual says thas ENE_ENH is address counter lower,
     * ENE_BLOCK is address counter upper.  not wait states, or anything
     * else. What is with these comments?
     */

    SYS_OUT_CHAR (pDrvCtrl, ENE_ENH, 0x00);       /* 0 wait states */
    SYS_OUT_CHAR (pDrvCtrl, ENE_BLOCK, 0x00);     /* 0x00xxxx */

    /* 10. put the ENE in START mode */

    SYS_OUT_CHAR (pDrvCtrl, ENE_CMD, CMD_NODMA | CMD_PAGE0 | CMD_START);

    /* 11. initialize Transmit Configuration Register */

    SYS_OUT_CHAR (pDrvCtrl, ENE_TCON, TCON_NORMAL);

    ENDLOGMSG (("ne2000Config: done\n", 0, 0, 0, 0, 0, 0));

    pDrvCtrl->imask = ((pDrvCtrl->flags & END_POLLING) ? 0 : NE2000_ALL_INTS);

    /* Only actually enable interrupts if not polling */
    if (intEnable)
	SYS_OUT_CHAR (pDrvCtrl, ENE_INTMASK, pDrvCtrl->imask);
    }

/*******************************************************************************
*
* ne2000OverwriteRecover - recover from receive buffer ring overflow
*
* This procedure is mandated by National Semiconductor as the only safe
* way to recover from an Overwrite Warning Error.  The first two steps
* of their procedure, reading the Command Register and stopping the NIC,
* were accomplished in the interrupt handler.  The rest occurs here.
*
* This routine is scheduled to run in the net task since it must delay
* to allow the STOP command to take effect.
*/

LOCAL void ne2000OverwriteRecover
    (
    NE2000END_DEVICE  *pDrvCtrl,
    UCHAR cmdStatus
    )
    {
    UCHAR stat;
    BOOL  reSend;

    ENDLOGMSG (("ne2000OverwriteRecover: enter (flags=%x, imask=%x)\n",
		pDrvCtrl->flags,pDrvCtrl->imask,0,0,0,0));

    /* We shouldn't get here without the OVERWRITE flags set */
    if (!(pDrvCtrl->flags & END_OVERWRITE2))
	{
	ENDLOGMSG (("ne2000OverwriteRecover: bad flags\n",
		    0,0,0,0,0,0));
#ifdef DEBUG
	SYS_OUT_CHAR (pDrvCtrl, ENE_INTMASK, 0);
	taskSuspend (0);
#else
	return;
#endif
	}

    /* 1. read the TXP bit in the command register (already in cmdStatus) */

    /* 2. issue the STOP command (done in the interrupt handler) */

    /* 3. delay at least 1.6 milliseconds (1/625 second) */

    taskDelay ((sysClkRateGet() + 624)/ 625);

    /* we are now supposedly sure the NIC is stopped */

    /* 4. clear Remote Byte Count Register */

    SYS_OUT_CHAR (pDrvCtrl, ENE_RBCR0, 0x00);
    SYS_OUT_CHAR (pDrvCtrl, ENE_RBCR1, 0x00);

    /* 5. read the stored value of the TXP bit (in cmdStatus) */

    if ((cmdStatus & CMD_TXP) == 0)
        reSend = FALSE;
    else
        {
	SYS_IN_CHAR (pDrvCtrl, ENE_INTSTAT, &stat);
        if ((stat & (ISTAT_PTX | ISTAT_TXE)) == 0)
	    {
	    /* transmit was in progress but probably deferring */
            reSend = TRUE;
	    }
        else
	    {
            /* transmit was completed (probably), don't repeat it */
            reSend = FALSE;
	    }
        }

    /* 6. place the NIC in loopback mode */

    SYS_OUT_CHAR (pDrvCtrl, ENE_TCON, TCON_LB1);

    /* 7. issue the START command to the NIC */

    SYS_OUT_CHAR (pDrvCtrl, ENE_CMD, CMD_NODMA | CMD_PAGE0 | CMD_START);

    /* 8. remove one or more packets from the receive buffer ring */

    /* clear overwrite flag */
    pDrvCtrl->flags &= ~END_OVERWRITE;
    pDrvCtrl->current = ne2000GetCurr (pDrvCtrl);
    ne2000HandleRcvInt (pDrvCtrl);

    /* 9. reset the overwrite warning bit in the ISR */

    /* reset all active interrupt conditions */

    SYS_IN_CHAR (pDrvCtrl, ENE_INTSTAT, &stat);
    SYS_OUT_CHAR (pDrvCtrl, ENE_INTSTAT, stat);

    /* 10. take the NIC out of loopback */

    SYS_OUT_CHAR (pDrvCtrl, ENE_TCON, 0x00);

    /* 10a. re-enable all device interrupts */

    pDrvCtrl->imask = NE2000_ALL_INTS;
    SYS_OUT_CHAR (pDrvCtrl, ENE_INTMASK, pDrvCtrl->imask);

    /* 11. if need to resend, do so, otherwise if anything queued, send that */

    pDrvCtrl->flags &= ~END_OVERWRITE2;
    if (reSend)
        SYS_OUT_CHAR (pDrvCtrl, ENE_CMD, CMD_TXP);
    else
	muxTxRestart (&pDrvCtrl->endObj);
    ENDLOGMSG (("ne2000OverwriteRecover: done (flags=%x, imask=%x)\n",
		pDrvCtrl->flags,pDrvCtrl->imask,0,0,0,0));
    }

/*******************************************************************************
*
* ne2000Int - handle controller interrupt
*
* This routine is called at interrupt level in response to an interrupt from
* the controller.
*
* RETURNS: N/A.
*/

LOCAL void ne2000Int
    (
    NE2000END_DEVICE  *pDrvCtrl
    )
    {
    UCHAR val;
    UCHAR intStat;
    UCHAR txStat;
    UCHAR rxStat;

    pDrvCtrl->stats.interrupts++;

    /* Read status and Acknowlegde interrupt */

    SYS_IN_CHAR (pDrvCtrl, ENE_INTSTAT, &intStat);
    intStat &= pDrvCtrl->imask;
    SYS_OUT_CHAR (pDrvCtrl, ENE_INTSTAT, intStat);

    /* Get TX and RX status */

    SYS_IN_CHAR (pDrvCtrl, ENE_TSTAT, &txStat);
    SYS_IN_CHAR (pDrvCtrl, ENE_RSTAT, &rxStat);

    ENDLOGMSG (("ne2000Int: intStat=%02x imask=%02x txStat=%02x rxStat=%02x\n",
		intStat, pDrvCtrl->imask, txStat, rxStat, 0, 0));

    /* Update count registers */
    SYS_IN_CHAR (pDrvCtrl, ENE_COLCNT, &val);
    pDrvCtrl->stats.collisions += val;
    SYS_IN_CHAR (pDrvCtrl, ENE_ALICNT, &val);
    pDrvCtrl->stats.aligns += val;
    SYS_IN_CHAR (pDrvCtrl, ENE_CRCCNT, &val);
    pDrvCtrl->stats.crcs += val;
    SYS_IN_CHAR (pDrvCtrl, ENE_MPCNT, &val);
    pDrvCtrl->stats.missed += val;

    /*
     * enable interrupts, clear receive and/or transmit interrupts, and clear
     * any errors that may be set.
     */

    /* Check for errors */

    if (intStat & ISTAT_OVW) /* Overwrite */
        {
	UCHAR cmdStat;

	END_ERR_ADD (&pDrvCtrl->endObj, MIB2_IN_ERRS, +1);
	if (!(pDrvCtrl->flags & END_OVERWRITE2))
	    {
	    pDrvCtrl->flags |= (END_OVERWRITE | END_OVERWRITE2);
	    pDrvCtrl->lastError.errCode = END_ERR_WARN;
	    pDrvCtrl->lastError.pMesg = "Overwrite";
	    netJobAdd ((FUNCPTR) muxError, (int) &pDrvCtrl->endObj,
		       (int) &pDrvCtrl->lastError,
		       0, 0, 0);
	    pDrvCtrl->stats.overwrite++;
	    SYS_IN_CHAR (pDrvCtrl, ENE_COLCNT, &cmdStat);
	    SYS_OUT_CHAR (pDrvCtrl, ENE_CMD, CMD_NODMA | CMD_PAGE0 | CMD_STOP);
	    ENDLOGMSG (("ne2000Int: overwrite detected\n",
			0, 0, 0, 0, 0, 0));
	    netJobAdd ((FUNCPTR) ne2000OverwriteRecover, (int) pDrvCtrl,
			      cmdStat, 0, 0, 0);
	    }
	/* no further interrupt processing */
	pDrvCtrl->imask = 0;
	SYS_OUT_CHAR (pDrvCtrl, ENE_INTMASK, pDrvCtrl->imask);
	return;
        }

    /* Receive handling */

    if (intStat & ISTAT_RXE) /* Receive-error */
        {
	if (!pDrvCtrl->lastIntError)
	    {
	    END_ERR_ADD (&pDrvCtrl->endObj, MIB2_IN_ERRS, +1);
	    pDrvCtrl->lastError.errCode = END_ERR_WARN;
	    pDrvCtrl->lastError.pMesg = "receive error";
	    netJobAdd ((FUNCPTR) muxError, (int) &pDrvCtrl->endObj,
		       (int) &pDrvCtrl->lastError,
		       0, 0, 0);
	    }
	++pDrvCtrl->lastIntError;
        pDrvCtrl->stats.rerror++;
        if (rxStat & RSTAT_OVER)
            pDrvCtrl->stats.overruns++;
        if (rxStat & RSTAT_DIS)
            pDrvCtrl->stats.disabled++;
        if (rxStat & RSTAT_DFR)
            pDrvCtrl->stats.deferring++;
        }
    if (intStat & ISTAT_TXE)    /* Transmit error-packet not sent */
        {
	if (!pDrvCtrl->lastIntError)
	    {
	    END_ERR_ADD (&pDrvCtrl->endObj, MIB2_OUT_ERRS,  +1);
	    END_ERR_ADD (&pDrvCtrl->endObj, MIB2_OUT_UCAST, -1);
	    pDrvCtrl->lastError.errCode = END_ERR_WARN;
	    pDrvCtrl->lastError.pMesg = "transmit error";
	    netJobAdd ((FUNCPTR) muxError, (int) &pDrvCtrl->endObj,
		       (int) &pDrvCtrl->lastError,
		       0, 0, 0);
	    }
	++pDrvCtrl->lastIntError;
        pDrvCtrl->stats.terror++;
        if (txStat & TSTAT_ABORT)
            {
            pDrvCtrl->stats.aborts++;
            pDrvCtrl->stats.collisions += 16;
            }
        if (txStat & TSTAT_UNDER)
            pDrvCtrl->stats.underruns++;
        }

    /* Transmit handling */

    if (intStat & ISTAT_PTX)    /* Transmit-packet sent */
        {
	END_ERR_ADD (&pDrvCtrl->endObj, MIB2_OUT_ERRS, +1);
        if (txStat & TSTAT_CDH)
            pDrvCtrl->stats.heartbeats++;
        if (txStat & TSTAT_OWC)
            pDrvCtrl->stats.outofwindow++;
        if (txStat & TSTAT_PTX)
            pDrvCtrl->stats.tnoerror++;
        }

    /* Check for lack of errors */
    if (!(intStat & (ISTAT_RXE | ISTAT_TXE)))
	pDrvCtrl->lastIntError = 0;

    /* Have netTask handle any input packets */

    if (intStat & ISTAT_PRX)
        {
        pDrvCtrl->current = ne2000GetCurr (pDrvCtrl);
	ENDLOGMSG(("ne2000Int: input packet (flags=%x, current=%d)\n",
		   pDrvCtrl->flags, pDrvCtrl->current, 0, 0, 0, 0));
        if (!(pDrvCtrl->flags & END_RECV_HANDLING_FLAG))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产系列| 日韩国产一区二| 午夜精品久久久久久久99水蜜桃| 蜜臀久久99精品久久久久宅男| aaa亚洲精品| 久久综合一区二区| 日韩不卡手机在线v区| 99精品黄色片免费大全| 久久婷婷综合激情| 日本aⅴ亚洲精品中文乱码| 97se亚洲国产综合在线| 精品国产乱码久久久久久久久| 亚洲欧美日韩电影| www.av亚洲| 欧美激情一区三区| 国产成人亚洲精品狼色在线| 欧美一区二区视频网站| 亚洲电影第三页| 色综合久久综合中文综合网| 欧美极品另类videosde| 美女性感视频久久| 欧美高清性hdvideosex| 亚洲狠狠爱一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃| 国产三级精品三级| 国产麻豆午夜三级精品| 精品国产91久久久久久久妲己 | 欧洲视频一区二区| 国产精品丝袜一区| 成人一级黄色片| 久久久91精品国产一区二区精品 | 欧美大片一区二区| 日韩中文字幕1| 91精品国产综合久久国产大片| 亚洲国产aⅴ天堂久久| 欧美视频一区二区三区在线观看| 亚洲综合视频网| 欧美体内she精视频| 亚洲成人一区二区在线观看| 精品视频在线看| 日日夜夜免费精品| 日韩欧美一二三四区| 国产在线看一区| 国产亚洲欧美中文| av不卡免费电影| 亚洲成人一区二区在线观看| 欧美一区二区三区思思人| 亚洲小少妇裸体bbw| 欧美精品 日韩| 国产美女精品在线| 中文字幕一区二区三区四区 | 日韩精品中文字幕在线不卡尤物 | 亚洲图片一区二区| 日韩精品一区二区三区在线观看| 韩国精品在线观看| 亚洲天堂成人在线观看| 欧美精品一二三区| 国产精品一色哟哟哟| 国产精品久久久久久久久果冻传媒| 91视频一区二区三区| 亚洲国产精品天堂| 26uuu精品一区二区| 91丝袜国产在线播放| 日本视频一区二区| 国产精品美女久久久久高潮| 91久久国产综合久久| 麻豆精品视频在线观看免费| 国产精品网站导航| 欧美日韩一级黄| 国产传媒欧美日韩成人| 亚洲高清中文字幕| 久久精品视频一区二区| 欧美色中文字幕| 成人免费看的视频| 日韩精品一区第一页| 国产精品国产三级国产专播品爱网| 欧美色图天堂网| 国产成人综合在线| 日韩1区2区3区| 亚洲欧美激情插| 欧美一区二区三区在线观看| 91视频在线观看免费| 国产成人一区二区精品非洲| 日韩中文字幕一区二区三区| 亚洲欧美在线高清| 久久久久久久久久久久久夜| 欧美日韩国产首页| 日本韩国视频一区二区| 成人午夜私人影院| 激情五月激情综合网| 视频一区中文字幕国产| 亚洲人成精品久久久久久| 久久久噜噜噜久久中文字幕色伊伊| 欧美色倩网站大全免费| 91欧美一区二区| 成人午夜视频在线观看| 国产精品系列在线观看| 蜜桃av一区二区三区| 丝瓜av网站精品一区二区| 一区二区三区高清在线| 亚洲天堂中文字幕| 亚洲欧洲av色图| 国产精品久久久久久福利一牛影视 | 日韩va欧美va亚洲va久久| 亚洲成人av在线电影| 亚洲永久精品大片| 亚洲精品视频免费观看| 亚洲视频一区在线观看| 综合激情网...| 成人欧美一区二区三区黑人麻豆 | 精品福利av导航| 欧美mv日韩mv亚洲| 日韩美女天天操| 欧美精品一区二区三区四区| 91精品国产综合久久久久久久久久| 欧美日韩亚洲综合在线| 正在播放一区二区| 欧美成人性福生活免费看| 日韩欧美国产1| 精品乱人伦一区二区三区| 日韩精品专区在线| 久久精品人人做人人综合| 久久精品欧美日韩| 国产精品成人免费在线| ㊣最新国产の精品bt伙计久久| 国产精品久久久久久久久快鸭| 国产精品初高中害羞小美女文| 中文字幕一区三区| 亚洲美女淫视频| 亚州成人在线电影| 蜜桃视频一区二区三区在线观看 | 色综合久久久久网| 欧美三级一区二区| 日韩一级高清毛片| 国产亚洲一本大道中文在线| 国产精品毛片无遮挡高清| 一区二区三区欧美视频| 日韩激情视频在线观看| 狠狠色综合播放一区二区| 成人精品gif动图一区| 欧美在线综合视频| 日韩欧美国产1| 亚洲色图清纯唯美| 视频一区二区三区在线| 国内精品伊人久久久久av一坑| 国产盗摄一区二区| 欧美色中文字幕| 国产午夜精品理论片a级大结局 | 3atv在线一区二区三区| 久久精品欧美一区二区三区不卡| 亚洲精品欧美专区| 九九**精品视频免费播放| 成人午夜精品在线| 制服丝袜激情欧洲亚洲| 欧美国产国产综合| 青青青爽久久午夜综合久久午夜| 国产精品一区二区三区四区| 欧美主播一区二区三区| 久久精品人人爽人人爽| 日韩av二区在线播放| 99久久久久久| 国产亚洲欧美日韩日本| 天堂午夜影视日韩欧美一区二区| 高清不卡在线观看| 日韩三级高清在线| 亚洲一区中文日韩| 国产成人综合自拍| 精品久久国产老人久久综合| 有坂深雪av一区二区精品| 国产精品资源在线看| 在线观看91av| 亚洲主播在线播放| zzijzzij亚洲日本少妇熟睡| 日韩欧美电影在线| 亚洲国产日韩综合久久精品| gogo大胆日本视频一区| 久久久久久亚洲综合影院红桃| 亚洲va韩国va欧美va精品 | 亚洲综合色视频| av在线不卡网| 国产三级精品三级在线专区| 精品一区二区影视| 91精品久久久久久久91蜜桃| 亚洲永久免费av| 在线观看中文字幕不卡| 最新国产精品久久精品| 国产a视频精品免费观看| 26uuu亚洲| 精品亚洲成av人在线观看| 欧美一区二区三区免费| 亚洲成av人在线观看| 色婷婷久久久综合中文字幕 | 欧美日韩精品欧美日韩精品一 | 国产精品剧情在线亚洲| 国产一区二区三区高清播放| 欧美一二三四在线| 久久国产麻豆精品| 精品成人一区二区三区四区| 精品一区精品二区高清| 久久这里都是精品|