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

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

?? main.c

?? 6410BSP3
?? C
?? 第 1 頁 / 共 4 頁
字號:
        switch(KeySelect)
        {
        case '0':           // Change IP address.
            SetIP(pBootCfg);
            pBootCfg->ConfigFlags &= ~CONFIG_FLAGS_DHCP;   // clear DHCP flag
            bConfigChanged = TRUE;
            break;
        case '1':           // Change subnet mask.
            SetMask(pBootCfg);
            bConfigChanged = TRUE;
            break;
        case '2':           // Toggle static/DHCP mode.
            pBootCfg->ConfigFlags = (pBootCfg->ConfigFlags ^ CONFIG_FLAGS_DHCP);
            bConfigChanged = TRUE;
            break;
        case '3':           // Change autoboot delay.
            SetDelay(pBootCfg);
            bConfigChanged = TRUE;
            break;
        case '4':           // Reset the bootloader configuration to defaults.
            OALMSG(TRUE, (TEXT("Resetting default TOC...\r\n")));
            TOC_Init(DEFAULT_IMAGE_DESCRIPTOR, (IMAGE_TYPE_RAMIMAGE|IMAGE_TYPE_BINFS), 0, 0, 0);
            if ( !TOC_Write() ) {
                OALMSG(OAL_WARN, (TEXT("TOC_Write Failed!\r\n")));
            }
            OALMSG(TRUE, (TEXT("...TOC complete\r\n")));
            break;
        case '5':           // Toggle download/launch status.
            pBootCfg->ConfigFlags = (pBootCfg->ConfigFlags ^ BOOT_TYPE_DIRECT);
            bConfigChanged = TRUE;
            break;
        case '6':           // Toggle image storage to Smart Media.
            pBootCfg->ConfigFlags = (pBootCfg->ConfigFlags ^ TARGET_TYPE_NAND);
            bConfigChanged = TRUE;
            break;
        case '7':           // Configure Crystal CS8900 MAC address.
            SetCS8900MACAddress(pBootCfg);
            bConfigChanged = TRUE;
            break;
        case '8':           // Toggle KD
            pBootCfg->ConfigFlags = (pBootCfg->ConfigFlags ^ CONFIG_FLAGS_KITL);
            g_bWaitForConnect = (pBootCfg->ConfigFlags & CONFIG_FLAGS_KITL) ? TRUE : FALSE;
            bConfigChanged = TRUE;
            continue;
            break;
#if 0
        case '9':
            // format the boot media for BinFS
            // N.B: this does not destroy our OEM reserved sections (TOC, bootloaders, etc)
            if ( !g_bBootMediaExist ) {
				OALMSG(OAL_ERROR, (TEXT("ERROR: BootMonitor: boot media does not exist.\r\n")));
                continue;
            }
            // N.B: format offset by # of reserved blocks,
            // decrease the ttl # blocks available by that amount.
            if ( !BP_LowLevelFormat( g_dwImageStartBlock,
                                     wNUM_BLOCKS - g_dwImageStartBlock,
                                     FORMAT_SKIP_BLOCK_CHECK) )
            {
                OALMSG(OAL_ERROR, (TEXT("ERROR: BootMonitor: Low-level boot media format failed.\r\n")));
                continue;
            }
            break;
#endif
	case 'A' :
	case 'a' :
		{
			OALMSG(TRUE, (TEXT(" ++Format FIL (Erase All Blocks)\r\n")));

			if (VFL_Close() != VFL_SUCCESS)
			{
				OALMSG(TRUE, (TEXT("[ERR] VFL_Close() Failure\r\n")));
				break;
			}

			if (WMR_Format_FIL() == FALSE32)
			{
				OALMSG(TRUE, (TEXT("[ERR] WMR_Format_FIL() Failure\r\n")));
				break;
			}

			OALMSG(TRUE, (TEXT("[INF] You can not use VFL before Format VFL\r\n")));

			OALMSG(TRUE, (TEXT(" --Format FIL (Erase All Blocks)\r\n")));
		}
		break;
	case 'B' :
	case 'b' :
		{
			OALMSG(TRUE, (TEXT(" ++Format VFL (Format FIL + VFL Format)\r\n")));

			if (VFL_Close() != VFL_SUCCESS)
			{
				OALMSG(TRUE, (TEXT("[ERR] VFL_Close() Failure\r\n")));
				break;
			}

			if (WMR_Format_VFL() == FALSE32)
			{
				OALMSG(TRUE, (TEXT("[ERR] WMR_Format_VFL() Failure\r\n")));
				break;
			}

			if (VFL_Open() != VFL_SUCCESS)
			{
				OALMSG(TRUE, (TEXT("[ERR] VFL_Open() Failure\r\n")));
				break;
			}

			OALMSG(TRUE, (TEXT(" --Format VFL (Format FIL + VFL Format)\r\n")));
		}
		break;
	case 'C' :
	case 'c' :
		{
			OALMSG(TRUE, (TEXT(" ++Format FTL (Erase FTL Area + FTL Format)\r\n")));

			if (WMR_Format_FTL() == FALSE32)
			{
				OALMSG(TRUE, (TEXT("[ERR] WMR_Format_FTL() Failure\r\n")));
				break;
			}

			if (FTL_Close() != FTL_SUCCESS)
			{
				OALMSG(TRUE, (TEXT("[ERR] FTL_Close() Failure\r\n")));
				break;
			}

			OALMSG(TRUE, (TEXT(" --Format FTL (Erase FTL Area + FTL Format)\r\n")));
		}
		break;
	case 'E' :
	case 'e' :
		{
			LowFuncTbl *pLowFuncTbl;

			OALMSG(TRUE, (TEXT(" ++Erase Physical Block 0\r\n")));

			pLowFuncTbl = FIL_GetFuncTbl();
			pLowFuncTbl->Erase(0, 0, enuBOTH_PLANE_BITMAP);
			if (pLowFuncTbl->Sync(0, &nSyncRet))
			{
				OALMSG(TRUE, (TEXT("[ERR] Erase Block 0 Error\r\n")));
			}

			OALMSG(TRUE, (TEXT(" --Erase Physical Block 0\r\n")));
		}
		break;
	case 'F' :
	case 'f' :
		{
			UINT32 nBlock, nPage;
//			UCHAR *pTemp = (UCHAR *)prayer16bpp;
			UCHAR *pTemp = (UCHAR *)InitialImage_rgb16_320x240;
			UCHAR pDBuf[8192];
			UCHAR pSBuf[256];
			LowFuncTbl *pLowFuncTbl;

			OALMSG(TRUE, (TEXT(" ++Make Initial Bad Block Information (Warning))\r\n")));

			pLowFuncTbl = FIL_GetFuncTbl();

			OALMSG(TRUE, (TEXT("Initial Bad Block Check\r\n")));

			for (nBlock=1; nBlock<SUBLKS_TOTAL; nBlock++)
			{
				IS_CHECK_SPARE_ECC = FALSE32;
				pLowFuncTbl->Read(0, nBlock*PAGES_PER_BLOCK+(PAGES_PER_BLOCK-1), 0x0, enuBOTH_PLANE_BITMAP, NULL, pSBuf, TRUE32, FALSE32);
				IS_CHECK_SPARE_ECC = TRUE32;

				if (pSBuf[0] != 0xff)
				{
					OALMSG(TRUE, (TEXT("Initial Bad Block @ %d Block\r\n"), nBlock));

#if	0
					pLowFuncTbl->Erase(0, nBlock, enuNONE_PLANE_BITMAP);
					pLowFuncTbl->Sync(0, &nSyncRet);

					memset((void *)pSBuf, 0x00, BYTES_PER_SPARE_PAGE);
					IS_CHECK_SPARE_ECC = FALSE32;
					pLowFuncTbl->Write(0, nBlock*PAGES_PER_BLOCK+(PAGES_PER_BLOCK-1), 0x0, enuNONE_PLANE_BITMAP, NULL, pSBuf);
					IS_CHECK_SPARE_ECC = TRUE32;
					if (pLowFuncTbl->Sync(0, &nSyncRet))	// Write Error
					{
						OALMSG(TRUE, (TEXT("Bad marking Write Error @ %d Block\r\n"), nBlock));
					}
#endif
				}
#if	1
				else
				{
					pLowFuncTbl->Erase(0, nBlock, enuNONE_PLANE_BITMAP);
					if (pLowFuncTbl->Sync(0, &nSyncRet))	// Erase Error
					{
						OALMSG(TRUE, (TEXT("Erase Error @ %d Block -> Bad Marking\r\n"), nBlock));

						memset((void *)pSBuf, 0x00, BYTES_PER_SPARE_PAGE);
						IS_CHECK_SPARE_ECC = FALSE32;
						pLowFuncTbl->Write(0, nBlock*PAGES_PER_BLOCK+(PAGES_PER_BLOCK-1), 0x0, enuNONE_PLANE_BITMAP, NULL, pSBuf);
						IS_CHECK_SPARE_ECC = TRUE32;
						if (pLowFuncTbl->Sync(0, &nSyncRet))	// Write Error
						{
							OALMSG(TRUE, (TEXT("Bad marking Write Error @ %d Block\r\n"), nBlock));
						}
					}
					else
					{
						for (nPage=0; nPage<PAGES_PER_BLOCK; nPage++)		// Write and Read Test
						{
							// Write Page
							memset((void *)pSBuf, 0xff, BYTES_PER_SPARE_PAGE);
							pLowFuncTbl->Write(0, nBlock*PAGES_PER_BLOCK+nPage, LEFT_SECTOR_BITMAP_PAGE, enuNONE_PLANE_BITMAP, pTemp, pSBuf);
							if (pLowFuncTbl->Sync(0, &nSyncRet))	// Write Error
							{
								OALMSG(TRUE, (TEXT("Write Error @ %d Block %d Page -> Bad Marking\r\n"), nBlock, nPage));

								pLowFuncTbl->Erase(0, nBlock, enuNONE_PLANE_BITMAP);
								pLowFuncTbl->Sync(0, &nSyncRet);

								memset((void *)pSBuf, 0x00, BYTES_PER_SPARE_PAGE);
								IS_CHECK_SPARE_ECC = FALSE32;
								pLowFuncTbl->Write(0, nBlock*PAGES_PER_BLOCK+(PAGES_PER_BLOCK-1), 0x0, enuNONE_PLANE_BITMAP, NULL, pSBuf);
								IS_CHECK_SPARE_ECC = TRUE32;
								if (pLowFuncTbl->Sync(0, &nSyncRet))	// Write Error
								{
									OALMSG(TRUE, (TEXT("Bad marking Write Error @ %d Block\r\n"), nBlock));
								}
								break;	// Bad Block
							}

							// Read Page
							memset((void *)pSBuf, 0xff, BYTES_PER_SPARE_PAGE);
							if (pLowFuncTbl->Read(0, nBlock*PAGES_PER_BLOCK+nPage, LEFT_SECTOR_BITMAP_PAGE, enuNONE_PLANE_BITMAP, pDBuf, pSBuf, 0, 0))
							{
								OALMSG(TRUE, (TEXT("Read Error @ %d Block %d Page -> Bad Marking\r\n"), nBlock, nPage));

								pLowFuncTbl->Erase(0, nBlock, enuNONE_PLANE_BITMAP);
								pLowFuncTbl->Sync(0, &nSyncRet);

								memset((void *)pSBuf, 0x00, BYTES_PER_SPARE_PAGE);
								IS_CHECK_SPARE_ECC = FALSE32;
								pLowFuncTbl->Write(0, nBlock*PAGES_PER_BLOCK+(PAGES_PER_BLOCK-1), 0x0, enuNONE_PLANE_BITMAP, NULL, pSBuf);
								IS_CHECK_SPARE_ECC = TRUE32;
								if (pLowFuncTbl->Sync(0, &nSyncRet))	// Write Error
								{
									OALMSG(TRUE, (TEXT("Bad marking Write Error @ %d Block\r\n"), nBlock));
								}
								break;	// Bad Block
							}
						}
					}
				}
#endif
			OALMSG(TRUE, (TEXT(".")));

			}

			OALMSG(TRUE, (TEXT(" --Make Initial Bad Block Information (Warning)\r\n")));
		}
		break;
        case 'T':           // Download? Yes.
        case 't':
			MLC_LowLevelTest();
		break;
        case 'D':           // Download? Yes.
        case 'd':
            bDownload = TRUE;
            goto MENU_DONE;
        case 'L':           // Download? No.
        case 'l':
            bDownload = FALSE;
            goto MENU_DONE;
        case 'R':
        case 'r':
			TOC_Read();
			TOC_Print();
            // TODO
            break;
        case 'U':           // Download? No.
        case 'u':
            //bConfigChanged = TRUE;  // Write to NAND too frequently causes wearout
/*        if (!InitializeUSB())
			{
				DEBUGMSG(1, (TEXT("OEMPlatformInit: Failed to initialize USB.\r\n")));
				return(FALSE);
        }*/

			g_bUSBDownload = TRUE;
            bDownload = TRUE;
            goto MENU_DONE;
        case 'W':           // Configuration Write
        case 'w':
            if (!TOC_Write())
            {
                OALMSG(OAL_WARN, (TEXT("WARNING: MainMenu: Failed to store updated eboot configuration in flash.\r\n")));
            }
            else
            {
                OALMSG(OAL_INFO, (TEXT("Successfully Written\r\n")));
                bConfigChanged = FALSE;
            }
            break;
        default:
            break;
        }
    }

MENU_DONE:

    // If eboot settings were changed by user, save them to flash.
    //
    if (bConfigChanged && !TOC_Write())
    {
        OALMSG(OAL_WARN, (TEXT("WARNING: MainMenu: Failed to store updated bootloader configuration to flash.\r\n")));
    }

    return(bDownload);
}


/*
    @func   BOOL | OEMPlatformInit | Initialize the Samsung SMD6410 platform hardware.
    @rdesc  TRUE = Success, FALSE = Failure.
    @comm
    @xref
*/
BOOL OEMPlatformInit(void)
{
	ULONG BootDelay;
	UINT8 KeySelect;
	UINT32 dwStartTime, dwPrevTime, dwCurrTime;
	BOOL bResult = FALSE;
	FlashInfo flashInfo;

	OALMSG(OAL_FUNC, (TEXT("+OEMPlatformInit.\r\n")));

	// Check if Current ARM speed is not matched to Target Arm speed
	// then To get speed up, set Voltage
#if (APLL_CLK == CLK_1332MHz)
    LTC3714_Init();
    LTC3714_VoltageSet(1,1200,100);     // ARM
    LTC3714_VoltageSet(2,1300,100);     // INT
#endif
#if (TARGET_ARM_CLK == CLK_800MHz)
    LTC3714_Init();
    LTC3714_VoltageSet(1,1300,100);     // ARM
    LTC3714_VoltageSet(2,1200,100);     // INT
#endif

    EdbgOutputDebugString("Microsoft Windows CE Bootloader for the Samsung SMDK6410 Version %d.%d Built %s\r\n\r\n",
	EBOOT_VERSION_MAJOR, EBOOT_VERSION_MINOR, __DATE__);

	// Initialize the display.
	InitializeDisplay();

	// Initialize the BSP args structure.
	OALArgsInit(pBSPArgs);

	g_bCleanBootFlag = (BOOL*)OALArgsQuery(BSP_ARGS_QUERY_CLEANBOOT) ;
	g_KITLConfig = (OAL_KITL_ARGS *)OALArgsQuery(OAL_ARGS_QUERY_KITL);
	g_DevID = (UCHAR *)OALArgsQuery( OAL_ARGS_QUERY_DEVID);

	InitializeInterrupt();

	g_dwImageStartBlock = IMAGE_START_BLOCK;

	// Try to initialize the boot media block driver and BinFS partition.
	//
	///*
    OALMSG(TRUE, (TEXT("BP_Init\r\n")));
	if (!BP_Init((LPBYTE)BINFS_RAM_START, BINFS_RAM_LENGTH, NULL, NULL, NULL) )
	{
		OALMSG(OAL_WARN, (TEXT("WARNING: OEMPlatformInit failed to initialize Boot Media.\r\n")));
		g_bBootMediaExist = FALSE;
	}
	else
	{			
		g_bBootMediaExist = TRUE;
	}

	// Get flash info
	if (!FMD_GetInfo(&flashInfo))
	{
		OALMSG(OAL_ERROR, (L"ERROR: BLFlashDownload: FMD_GetInfo call failed\r\n"));
	}

	wNUM_BLOCKS = flashInfo.dwNumBlocks;
	RETAILMSG(1, (TEXT("wNUM_BLOCKS : %d(0x%x) \r\n"), wNUM_BLOCKS, wNUM_BLOCKS));
//	stDeviceInfo = GetNandInfo();

	// Try to retrieve TOC (and Boot config) from boot media
	if ( !TOC_Read( ) )
	{
		// use default settings
		TOC_Init(DEFAULT_IMAGE_DESCRIPTOR, (IMAGE_TYPE_RAMIMAGE), 0, 0, 0);
	}

	// Display boot message - user can halt the autoboot by pressing any key on the serial terminal emulator.
	BootDelay = g_pBootCfg->BootDelay;

	if (g_pBootCfg->ConfigFlags & BOOT_TYPE_DIRECT)
	{
		OALMSG(TRUE, (TEXT("Press [ENTER] to launch image stored on boot media, or [SPACE] to enter boot monitor.\r\n")));
		OALMSG(TRUE, (TEXT("\r\nInitiating image launch in %d seconds. "),BootDelay--));
	}
	else
	{
		OALMSG(TRUE, (TEXT("Press [ENTER] to download image stored on boot media, or [SPACE] to enter boot monitor.\r\n")));
		OALMSG(TRUE, (TEXT("\r\nInitiating image download in %d seconds. "),BootDelay--));
	}

	dwStartTime = OEMEthGetSecs();
	dwPrevTime  = dwStartTime;
	dwCurrTime  = dwStartTime;
	KeySelect   = 0;

        if (!InitializeUSB())
        {
            DEBUGMSG(1, (TEXT("OEMPlatformInit: Failed to initialize USB.\r\n")));
            return(FALSE);
        }

	// Allow the user to break into the bootloader menu.
	while((dwCurrTime - dwStartTime) < g_pBootCfg->BootDelay)
	{
		KeySelect = OEMReadDebugByte();

		if ((KeySelect == 0x20) || (KeySelect == 0x0d))
		{
			break;
		}

		dwCurrTime = OEMEthGetSecs();

		if (dwCurrTime > dwPrevTime)
		{
			int i, j;

			// 1 Second has elapsed - update the countdown timer.
			dwPrevTime = dwCurrTime;

            // for text alignment
			if (BootDelay < 9)
            {
				i = 11;
            }
			else if (BootDelay < 99)
            {
				i = 12;
            }
			else if (BootDelay < 999)
            {
				i = 13;
            }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成都精品91一区二区三| 精品久久久久久久久久久久包黑料 | 欧美日韩亚洲综合在线| 欧美xfplay| 亚洲精品国产第一综合99久久| 精品一区二区三区视频在线观看| 波多野结衣在线aⅴ中文字幕不卡| 这里只有精品视频在线观看| 亚洲人成7777| 国产精品自拍在线| 欧美日韩视频不卡| 中文字幕一区三区| 国产一区二区三区免费| 欧美一区二区视频观看视频| 一区在线播放视频| 丁香五精品蜜臀久久久久99网站| 911精品产国品一二三产区| 亚洲欧美日本韩国| 成人午夜av在线| 国产亚洲精品aa| 韩国成人福利片在线播放| 欧美精品久久99久久在免费线 | 国产精品自拍毛片| 日韩精品在线一区| 日本aⅴ免费视频一区二区三区 | 日韩一区二区电影在线| 亚洲午夜久久久久久久久电影院 | 国产精品看片你懂得| 国产一区二区免费看| 精品成人私密视频| 久久狠狠亚洲综合| 久久综合九色综合久久久精品综合| 亚洲国产精品久久不卡毛片 | 一级日本不卡的影视| 91一区一区三区| 最好看的中文字幕久久| 97久久精品人人做人人爽50路| 国产精品视频看| 国产成人午夜精品影院观看视频| 久久久噜噜噜久久人人看| 国产精品一区免费视频| 国产欧美日韩视频在线观看| 国产精品一区久久久久| 国产精品视频第一区| 99视频精品在线| 亚洲精品视频在线看| 欧美日韩精品一区二区在线播放 | 538在线一区二区精品国产| 性感美女久久精品| 欧美一区二区三区的| 国产一区二区三区av电影| 国产欧美日韩激情| 91在线免费看| 日韩电影免费一区| 久久久久99精品国产片| 成人国产精品免费| 亚洲综合一区二区三区| 91精品婷婷国产综合久久竹菊| 另类调教123区| 国产精品美女久久久久av爽李琼| 99久久国产综合精品女不卡| 午夜a成v人精品| 2017欧美狠狠色| 91在线观看高清| 日本不卡一二三区黄网| 久久九九影视网| 色婷婷av一区| 国产在线精品一区二区夜色| 国产精品超碰97尤物18| 欧美精品丝袜中出| 国产成人免费在线观看不卡| 亚洲男同1069视频| 精品黑人一区二区三区久久| www.激情成人| 免费成人你懂的| 中文字幕日本乱码精品影院| 日韩午夜在线观看视频| www.日韩大片| 精品一区二区三区免费播放| 亚洲精品一二三| 久久久久9999亚洲精品| 欧美精选一区二区| av网站免费线看精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲精品免费在线| 精品国产伦一区二区三区观看方式 | 国内精品视频一区二区三区八戒 | 国产精品日日摸夜夜摸av| 欧美日韩精品三区| aa级大片欧美| 国产自产2019最新不卡| 午夜精品aaa| 亚洲精品国产成人久久av盗摄| 久久久久成人黄色影片| 欧美一区二区三级| 欧美色区777第一页| thepron国产精品| 国产在线视频一区二区| 美国精品在线观看| 亚洲风情在线资源站| 亚洲欧美一区二区三区极速播放| xnxx国产精品| 日韩欧美国产午夜精品| 欧美理论电影在线| 91黄色激情网站| 91蝌蚪porny成人天涯| 风流少妇一区二区| 国产美女精品人人做人人爽| 久久精品久久综合| 日本欧美一区二区在线观看| 亚洲成人一区在线| 午夜欧美在线一二页| 亚洲国产美国国产综合一区二区| 亚洲人成网站在线| 1区2区3区欧美| 亚洲免费观看高清完整版在线观看熊 | 在线观看www91| 91黄色小视频| 欧美三级韩国三级日本一级| 欧洲视频一区二区| 欧美午夜电影在线播放| 欧美日韩免费一区二区三区视频 | 亚洲小说欧美激情另类| 亚洲一级在线观看| 亚洲国产日韩一级| 日韩极品在线观看| 精品一区二区影视| 国产91富婆露脸刺激对白| 成+人+亚洲+综合天堂| aaa亚洲精品一二三区| 91碰在线视频| 欧美日韩国产免费| 日韩免费看网站| 久久久久9999亚洲精品| 国产精品每日更新在线播放网址| 日韩毛片一二三区| 午夜久久福利影院| 国内精品免费在线观看| www.成人在线| 精品视频1区2区3区| 欧美大白屁股肥臀xxxxxx| 国产午夜精品久久久久久免费视| 国产精品久久久一区麻豆最新章节| 日韩一区在线免费观看| 亚洲一级在线观看| 韩国中文字幕2020精品| 99久久婷婷国产综合精品| 欧美亚洲一区三区| 日韩免费高清电影| 中文字幕一区在线观看视频| 天天亚洲美女在线视频| 国产一区二区不卡老阿姨| 91免费观看视频| 日韩午夜在线观看视频| 国产精品国产三级国产aⅴ入口| 亚洲午夜电影网| 国产精品一区免费视频| 欧美三级中文字幕| 国产亚洲欧美色| 日日骚欧美日韩| 成人av在线电影| 欧美一区永久视频免费观看| 国产精品美女一区二区在线观看| 午夜电影网亚洲视频| 成人性生交大片免费看中文网站| 欧美在线不卡一区| www国产精品av| 午夜欧美在线一二页| aaa亚洲精品一二三区| 精品奇米国产一区二区三区| 一区二区三区视频在线观看| 夫妻av一区二区| 精品裸体舞一区二区三区| 亚洲乱码中文字幕综合| 国产成人精品免费网站| 欧美一区二视频| 亚洲一二三区在线观看| 成人av免费在线| 精品va天堂亚洲国产| 日韩国产欧美视频| 色呦呦国产精品| 国产精品夫妻自拍| 国产麻豆9l精品三级站| 欧美成人综合网站| 肉丝袜脚交视频一区二区| 欧洲视频一区二区| 亚洲另类一区二区| 95精品视频在线| 国产精品免费aⅴ片在线观看| 国产九色精品成人porny | 色老汉av一区二区三区| 国产精品久久久久久妇女6080 | 婷婷一区二区三区| 91豆麻精品91久久久久久| 国产精品初高中害羞小美女文| 粉嫩在线一区二区三区视频| 国产三级三级三级精品8ⅰ区| 麻豆成人久久精品二区三区红| 欧美一区二区在线不卡| 日韩高清不卡一区二区三区|