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

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

?? pcieboardtestdlg.cpp

?? PCI的一個測試程序,可以測試PCI driver和BOARD的功能.
?? CPP
字號:
// PCIEBoardTestDlg.cpp : 實現(xiàn)文件
//

#include "stdafx.h"
#include "PCIEBoardTest.h"
#include "testfunc.h"
#include "PageDevice.h"
#include "PageTest.h"
#include "Pagedebug.h"
#include "PageChart.h"
#include "PCIEBoardTestDlg.h"
#include ".\pcieboardtestdlg.h"
#include "AboutDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CPCIEBoardTestDlg 對話框



CPCIEBoardTestDlg::CPCIEBoardTestDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CPCIEBoardTestDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

    m_pUserAddress_d2h = NULL;
    m_uUserAddressLen_d2h = 0;
    m_pUserAddress_h2d = NULL;
    m_uUserAddressLen_h2d = 0;

    m_iLogSeq = 0;

    for(int i=0; i<CHART_DATA_TOTAL; ++i)
    {
        m_uChartDataSize[i] = 0;
        m_pChartData[i] = NULL;
    }
}

CPCIEBoardTestDlg::~CPCIEBoardTestDlg()
{
    for(int i=0; i<CHART_DATA_TOTAL; ++i)
    {
        if (m_pChartData[i])
        {
            delete[] m_pChartData[i];
        }
    }
}

void CPCIEBoardTestDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_TAB1, m_TabCtrl);
    DDX_Control(pDX, IDC_LIST_LOG, m_lstLog);
}

BEGIN_MESSAGE_MAP(CPCIEBoardTestDlg, CDialog)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
    ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnTcnSelchangeTab1)
    ON_WM_TIMER()
    ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
    ON_COMMAND(ID_APP_EXIT, OnAppExit)
//    ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_WM_SIZE()
ON_NOTIFY(TCN_SELCHANGING, IDC_TAB1, OnTcnSelchangingTab1)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
ON_COMMAND(ID_APP_CLEARLOG, OnAppClearlog)
END_MESSAGE_MAP()


// CPCIEBoardTestDlg 消息處理程序

BOOL CPCIEBoardTestDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// 設(shè)置此對話框的圖標。當應(yīng)用程序主窗口不是對話框時,框架將自動
	//  執(zhí)行此操作
	SetIcon(m_hIcon, TRUE);			// 設(shè)置大圖標
	SetIcon(m_hIcon, FALSE);		// 設(shè)置小圖標

    m_hDevHandle = INVALID_HANDLE_VALUE;
    m_strDevInfor = "";

	// TODO: 在此添加額外的初始化代碼
    m_TabCtrl.InsertItem(0, "Device");
    m_TabCtrl.InsertItem(1, "Debug");
    m_TabCtrl.InsertItem(2, "Test");
    m_TabCtrl.InsertItem(3, "Graph");
	
    m_PageDevice.Create(IDD_PAGE_DEVICE, GetDlgItem(IDC_TAB1));
    m_PageDebug.Create(IDD_PAGE_DEBUG, GetDlgItem(IDC_TAB1));
    m_PageTest.Create(IDD_PAGE_SUMMARY, GetDlgItem(IDC_TAB1));
    m_PageChart.Create(IDD_PAGE_CHART, GetDlgItem(IDC_TAB1));

    m_TabCtrl.SetCurSel(0);

    SetTimer(1, 500, NULL);

    if (m_MainMenu.LoadMenu(IDR_MENU_MAIN))
    {
        SetMenu(&m_MainMenu);
    }

    m_bFirstTimer = TRUE;

	ReadINI();

	return TRUE;  // 除非設(shè)置了控件的焦點,否則返回 TRUE
}

void CPCIEBoardTestDlg::ReadINI()
{
	CString	 strCurrDir;
	char     szFile[MAX_PATH];
	int      i;

	GetModuleFileName(NULL,szFile,MAX_PATH);

	for(i=strlen(szFile)-1;i>0 &&szFile[i]!='\\';i--);
		
	szFile[i]=0;

	strCurrDir = szFile;
	
	iItemCount = 1;

    // load config
    for(i=0; i<sizeof(iItemSize)/sizeof(iItemSize[0]); ++i)
    {
        CString strKeyName;

		strKeyName.Format("SIZE%d", i+1);
		iItemSize[i] = GetPrivateProfileInt("DEVICE", strKeyName, -1, strCurrDir + "\\PCIEBOARDTESTER.INI");

		if (iItemSize[i] != -1)
		{
			iItemCount = i+1;
		}
		else
		{
			iItemSize[i] = 0x20;
			break;
		}
    }

	// 
	SKIP_APP_INTERRUPTED = GetPrivateProfileInt("DEVICE", "SKIP_APP_INTERRUPTED", 0, strCurrDir + "\\PCIEBOARDTESTER.INI");
    SKIP_APP_PARAM       = GetPrivateProfileInt("DEVICE", "SKIP_APP_PARAM", 10, strCurrDir + "\\PCIEBOARDTESTER.INI");

}

// 如果向?qū)υ捒蛱砑幼钚』粹o,則需要下面的代碼
//  來繪制該圖標。對于使用文檔/視圖模型的 MFC 應(yīng)用程序,
//  這將由框架自動完成。

void CPCIEBoardTestDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于繪制的設(shè)備上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使圖標在工作矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// 繪制圖標
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

//當用戶拖動最小化窗口時系統(tǒng)調(diào)用此函數(shù)取得光標顯示。
HCURSOR CPCIEBoardTestDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

void CPCIEBoardTestDlg::UpdatePage()
{
    switch(m_TabCtrl.GetCurSel())
    {
    case 0:
        // Device
        m_PageDevice.ShowWindow(SW_SHOW);
        m_PageDebug.ShowWindow(SW_HIDE);
        m_PageTest.ShowWindow(SW_HIDE);
        m_PageChart.ShowWindow(SW_HIDE);
        break;

    case 1:
        // Debug
        m_PageDevice.ShowWindow(SW_HIDE);
        m_PageDebug.ShowWindow(SW_SHOW);
        m_PageTest.ShowWindow(SW_HIDE);
        m_PageChart.ShowWindow(SW_HIDE);
        break;

    case 2:
        // Test
        m_PageDevice.ShowWindow(SW_HIDE);
        m_PageDebug.ShowWindow(SW_HIDE);
        m_PageTest.ShowWindow(SW_SHOW);
        m_PageChart.ShowWindow(SW_HIDE);
        break;
    
    case 3:
        // Graph
        m_PageDevice.ShowWindow(SW_HIDE);
        m_PageDebug.ShowWindow(SW_HIDE);
        m_PageTest.ShowWindow(SW_HIDE);
        m_PageChart.ShowWindow(SW_SHOW);
        break;
    }
}

void CPCIEBoardTestDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
    // TODO: 在此添加控件通知處理程序代碼
    UpdatePage();

    *pResult = 0;
}


HANDLE  CPCIEBoardTestDlg::GetDeviceHandle()
{
    return m_hDevHandle;
}

void    CPCIEBoardTestDlg::GetDeviceInfor(CString& p_strDevInfor)
{
    p_strDevInfor = m_strDevInfor;
}

void    CPCIEBoardTestDlg::SetDeviceHandle(HANDLE p_hDevHandle)
{
    m_hDevHandle = p_hDevHandle;
}

void    CPCIEBoardTestDlg::SetDeviceInfor(CString& p_strDevInfor)
{
    m_strDevInfor = p_strDevInfor;
}

void CPCIEBoardTestDlg::OnTimer(UINT nIDEvent)
{
    // TODO: 在此添加消息處理程序代碼和/或調(diào)用默認值
    UpdatePage();

    if (m_bFirstTimer)
    {
        CRect   rectTab;
        CRect   rectTabItem;

        m_TabCtrl.GetClientRect(rectTab);
        m_TabCtrl.GetItemRect(0, rectTabItem);

        rectTab.top = rectTabItem.bottom + 1;
        rectTab.bottom --;
        rectTab.left ++;
        rectTab.right --;


        m_PageTest.MoveWindow(rectTab);
        m_PageChart.MoveWindow(rectTab);

        CRect   rectDevicePage;
        CRect   rectDebugPage;

        CSize   sizeDiff;

        m_PageDevice.GetClientRect(rectDevicePage);
        sizeDiff.cx = (rectTab.Width() - rectDevicePage.Width()) / 2;
        sizeDiff.cy = (rectTab.Height() - rectDevicePage.Height()) / 2;

        rectDevicePage = rectTab;
        rectDevicePage.left   += sizeDiff.cx;
        rectDevicePage.right  -= sizeDiff.cx;
        rectDevicePage.top    += sizeDiff.cy;
        rectDevicePage.bottom -= sizeDiff.cy;
        m_PageDevice.MoveWindow(rectDevicePage);

        /*
        m_PageDebug.GetClientRect(rectDebugPage);
        sizeDiff.cx = (rectTab.Width() - rectDebugPage.Width()) / 2;
        sizeDiff.cy = (rectTab.Height() - rectDebugPage.Height()) / 2;
        rectDebugPage.left   += sizeDiff.cx;
        rectDebugPage.right  += sizeDiff.cx;
        rectDebugPage.top    += sizeDiff.cy + rectTab.top;
        rectDebugPage.bottom += sizeDiff.cy + rectTab.top;
        */
        m_PageDebug.MoveWindow(rectTab);

        m_lstLog.SetExtendedStyle(m_lstLog.GetExtendedStyle() | LVS_EX_FULLROWSELECT);
        m_lstLog.InsertColumn(0, "Seq", LVCFMT_LEFT, 80);
        m_lstLog.InsertColumn(1, "Time", LVCFMT_LEFT, 200);
        m_lstLog.InsertColumn(2, "Log", LVCFMT_LEFT, 560);

        m_bFirstTimer = FALSE;

        m_PageTest.RefreshSizeList();
	}

    CDialog::OnTimer(nIDEvent);
}

void CPCIEBoardTestDlg::OnBnClickedCancel()
{
    // TODO: 在此添加控件通知處理程序代碼
    OnCancel();
}

void *  CPCIEBoardTestDlg::GetUserVirtualBuffer_d2h()
{
    return m_pUserAddress_d2h;
}
ULONG   CPCIEBoardTestDlg::GetUserVirtualBufferLen_d2h()
{
    return m_uUserAddressLen_d2h;
}

void *  CPCIEBoardTestDlg::GetUserVirtualBuffer_h2d()
{
    return m_pUserAddress_h2d;
}
ULONG   CPCIEBoardTestDlg::GetUserVirtualBufferLen_h2d()
{
    return m_uUserAddressLen_h2d;
}

void    CPCIEBoardTestDlg::SetBufferAddress_d2h(void *pAddress_d2h, void *pPhysicalAddress_d2h, ULONG uLen)
{
    m_pUserAddress_d2h     = pAddress_d2h;
    m_pPhysicalAddress_d2h = pPhysicalAddress_d2h;
    m_uUserAddressLen_d2h  = uLen;
}

void    CPCIEBoardTestDlg::SetBufferAddress_h2d(void *pAddress_h2d, void *pPhysicalAddress_h2d, ULONG uLen)
{
    m_pUserAddress_h2d     = pAddress_h2d;
    m_pPhysicalAddress_h2d = pPhysicalAddress_h2d;
    m_uUserAddressLen_h2d  = uLen;
}

void *  CPCIEBoardTestDlg::GetPhysicalBuffer_d2h()
{
    return m_pPhysicalAddress_d2h;
}

void *  CPCIEBoardTestDlg::GetPhysicalBuffer_h2d()
{
    return m_pPhysicalAddress_h2d;
}

void    CPCIEBoardTestDlg::SetChartData(int ChartType, int Size, TPOINT * pChartData)
{
    if (ChartType < 0 || ChartType >= CHART_DATA_TOTAL)
    {
        return;
    }

    if (m_pChartData[ChartType] && m_uChartDataSize[ChartType])
    {
        delete[] m_pChartData[ChartType];
        m_pChartData[ChartType] = NULL;
        m_uChartDataSize[ChartType] = 0;
    }

    if (Size > 0 && pChartData)
    {
        m_pChartData[ChartType] = new TPOINT[Size];

        for(int i=0; i<Size; ++i)
        {
            *(m_pChartData[ChartType] + i) = pChartData[i];
        }

        m_uChartDataSize[ChartType] = Size;
    }
}

// mode: 0 clear h2d, 1 clear d2h, 2 all clear
void    CPCIEBoardTestDlg::ClearChartData(int mode)
{
    for(int i=0; i<CHART_DATA_TOTAL; ++i)
    {
        if (mode == 0 && (i == CHART_D2H_PERF_NS || i == CHART_D2H_DONE_NS || i == CHART_D2H_APP_NS || i == CHART_FULL_APP_NS))
        {
            continue;
        }
        if (mode == 1 && (i == CHART_H2D_PERF_NS || i == CHART_H2D_DONE_NS || i == CHART_H2D_APP_NS || i == CHART_FULL_APP_NS))
        {
            continue;
        }

        if (m_uChartDataSize[i] && m_pChartData[i])
        {
            delete[] m_pChartData[i];
            m_pChartData[i] = NULL;

            m_uChartDataSize[i] = 0;
        }
    }
}


void CPCIEBoardTestDlg::OnAppExit()
{
    // TODO: 在此添加命令處理程序代碼
    OnOK();
}

//void CPCIEBoardTestDlg::OnBnClickedOk()
//{
//    // TODO: 在此添加控件通知處理程序代碼
//    OnOK();
//}

void CPCIEBoardTestDlg::OnSize(UINT nType, int cx, int cy)
{
    CDialog::OnSize(nType, cx, cy);

    // TODO: 在此處添加消息處理程序代碼
    CRect   rectClient;
    CRect   rectLogWindow;
    CRect   rectTabCtrl;

    if (!IsWindow(m_TabCtrl.GetSafeHwnd()) || !IsWindow(m_lstLog.GetSafeHwnd()))
        return;

    GetClientRect(rectClient);

    m_lstLog.GetWindowRect(rectLogWindow);
    ScreenToClient(rectLogWindow);

    int     iLogHeight = rectLogWindow.Height();
    rectLogWindow.left   = rectClient.left;
    rectLogWindow.right  = rectClient.right;
    rectLogWindow.bottom = rectClient.bottom;
    rectLogWindow.top    = rectLogWindow.bottom - iLogHeight;

    m_lstLog.MoveWindow(rectLogWindow);

    rectTabCtrl = rectClient;

    rectTabCtrl.bottom = rectLogWindow.top - 20;
    m_TabCtrl.MoveWindow(rectTabCtrl);
}

void CPCIEBoardTestDlg::OnTcnSelchangingTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
    // TODO: 在此添加控件通知處理程序代碼
    if (GetDeviceHandle() == INVALID_HANDLE_VALUE && m_TabCtrl.GetCurSel() == 0)
    {
        MessageBox("Please connect device at first!");
        *pResult = 1;
    }
    else
    {
        *pResult = 0;
    }
    //*pResult = 0;
}

void CPCIEBoardTestDlg::Log(const char *p_szLogInfor)
{
    m_iLogSeq++;

    CString     strSeq;
    CString     strTime;
    CString     strLog;
    SYSTEMTIME  timeNow;
    CSize       sizeScroll;

    strSeq.Format("%d", m_iLogSeq);

    GetLocalTime(&timeNow);

    strTime.Format("%02d/%02d/%04d %02d:%02d:%02d.%03d", 
        timeNow.wMonth, timeNow.wDay, timeNow.wYear, 
        timeNow.wHour, timeNow.wMinute, timeNow.wSecond, 
        timeNow.wMilliseconds);

    strLog = p_szLogInfor;

	int		i = m_lstLog.InsertItem (m_lstLog.GetItemCount(), strSeq);
    m_lstLog.SetItemText(i, 1, strTime);
    m_lstLog.SetItemText(i, 2, strLog);

    sizeScroll.cx = 0;
    sizeScroll.cy = 20;

    m_lstLog.Scroll(sizeScroll);

	while(m_lstLog.GetItemCount() > 5000)
	{
		m_lstLog.DeleteItem(0);
	}
}

void CPCIEBoardTestDlg::OnAppAbout()
{
    // TODO: 在此添加命令處理程序代碼
    CAboutDlg   dlg;

    dlg.DoModal();
}


void CPCIEBoardTestDlg::OnAppClearlog()
{
	// TODO: 在此添加命令處理程序代碼
	m_lstLog.DeleteAllItems();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄色免费观看| 成人av网址在线| 免费视频一区二区| 午夜电影久久久| 午夜精品一区二区三区电影天堂| 一区在线中文字幕| 亚洲同性gay激情无套| 亚洲三级电影全部在线观看高清| 亚洲国产精品ⅴa在线观看| 国产精品理伦片| 中文字幕一区视频| 亚洲精品网站在线观看| 樱花草国产18久久久久| 夜夜嗨av一区二区三区| 亚洲一级片在线观看| 亚洲1区2区3区4区| 美女一区二区三区在线观看| 99精品视频免费在线观看| 成人av资源在线观看| 91美女在线视频| 欧美日韩不卡在线| 欧美一级欧美三级在线观看| 精品三级在线看| 久久精品视频一区二区| 亚洲天堂网中文字| 午夜视频久久久久久| 免费不卡在线观看| 国产激情一区二区三区| 97久久精品人人爽人人爽蜜臀 | 91在线一区二区三区| 在线免费精品视频| 精品欧美乱码久久久久久1区2区| 国产欧美一区视频| 一区二区三区日韩精品| 蜜臀久久久99精品久久久久久| 国产高清在线观看免费不卡| 99久久伊人网影院| 欧美精品aⅴ在线视频| 久久亚洲一区二区三区明星换脸| 国产精品福利一区| 午夜电影一区二区| 国产传媒欧美日韩成人| 色综合久久精品| 日韩欧美色综合| 亚洲视频每日更新| 另类调教123区| 99久久久国产精品| 日韩女优制服丝袜电影| 亚洲三级在线播放| 久久精品噜噜噜成人88aⅴ| 成人97人人超碰人人99| 欧美一级高清片| 国产精品九色蝌蚪自拍| 免费在线观看日韩欧美| 不卡一区二区在线| 日韩精品一区二区三区中文精品| 国产精品国产三级国产aⅴ中文 | 国产成人精品一区二| 欧美亚洲综合久久| 久久久久9999亚洲精品| 日韩福利电影在线| 成人av动漫在线| 精品国产91乱码一区二区三区| 亚洲精品国产品国语在线app| 国产激情视频一区二区三区欧美| 欧美影视一区二区三区| 国产精品毛片久久久久久| 免费人成在线不卡| 欧美专区日韩专区| 亚瑟在线精品视频| 99精品国产视频| 久久久亚洲国产美女国产盗摄| 天天综合色天天| 在线观看日韩毛片| 国产精品三级久久久久三级| 国产一区二区在线视频| 91.麻豆视频| 亚洲天堂网中文字| 成人中文字幕电影| 26uuu成人网一区二区三区| 亚洲成av人片在线观看| 91日韩一区二区三区| 欧美国产激情一区二区三区蜜月| 蜜臀av性久久久久蜜臀aⅴ流畅| 91国偷自产一区二区三区成为亚洲经典 | 精品人在线二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 国产成人在线视频网址| 精品粉嫩超白一线天av| 免费的成人av| 在线不卡免费欧美| 亚洲成a人片在线不卡一二三区 | 美女一区二区视频| 欧美一区二区三区电影| 亚洲免费观看高清| 成人av网站在线| 久久久久久久久久久久电影| 日韩精品一二三四| 国产乱码精品一区二区三区av | 中文字幕在线观看一区二区| 国产精品一区二区x88av| 欧美一区二区三区视频在线观看| 亚洲韩国一区二区三区| 高清成人在线观看| 久久色成人在线| 亚洲电影视频在线| 欧美日韩中文字幕一区| 亚洲男女一区二区三区| 国产一区二区导航在线播放| 欧美大片一区二区三区| 亚洲第一主播视频| 91福利区一区二区三区| 日本一区二区三区免费乱视频| 免费精品视频在线| 日韩视频在线永久播放| 青娱乐精品视频在线| 欧美一区二区三区成人| 亚洲黄色录像片| 一本久道中文字幕精品亚洲嫩| 一区免费观看视频| 色婷婷狠狠综合| 亚洲激情图片一区| 成人精品视频一区二区三区| 亚洲国产精品精华液2区45| 国产成人啪免费观看软件| 精品伦理精品一区| 国产中文一区二区三区| 欧美肥胖老妇做爰| 日韩成人免费看| 欧美精品一二三区| 日韩黄色免费电影| 91精品国产综合久久精品app| 日本最新不卡在线| 精品国产99国产精品| 免费一区二区视频| 久久久综合九色合综国产精品| 国产精品亚洲а∨天堂免在线| 国产女同性恋一区二区| 成人免费视频播放| 欧美韩日一区二区三区四区| 99精品偷自拍| 一区二区三区鲁丝不卡| 欧美高清性hdvideosex| 精品一区二区三区香蕉蜜桃| 久久久精品国产免大香伊| 成人av免费在线观看| 国产精品视频一二| 欧美亚洲国产一区二区三区va| 午夜精品久久久久影视| 日韩欧美国产一区在线观看| 国产91在线观看丝袜| 亚洲欧美日韩国产手机在线 | 国产日韩v精品一区二区| av一区二区久久| 亚洲成a人片综合在线| 777午夜精品视频在线播放| 精品在线免费观看| 国产精品亲子乱子伦xxxx裸| 日本高清不卡一区| 精品一区二区久久久| 久久久精品天堂| 在线欧美一区二区| 美国十次综合导航| 国产精品视频yy9299一区| 欧美日韩国产成人在线免费| 激情五月婷婷综合网| 亚洲乱码中文字幕| 日韩一区二区电影| 不卡一二三区首页| 亚洲欧美日本在线| 精品三级在线观看| 91精品福利视频| 久久精品99国产精品日本| 国产精品无码永久免费888| 欧美久久久久久久久| 成人污视频在线观看| 日韩二区三区四区| 亚洲视频在线观看一区| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲素人一区二区| 26uuu久久天堂性欧美| 欧洲另类一二三四区| 麻豆久久久久久| 亚洲精品五月天| 欧美精品一区二区三区蜜桃| 在线观看国产一区二区| 国产精品 日产精品 欧美精品| 尤物av一区二区| 中文字幕免费不卡| 亚洲伦理在线免费看| 精品日本一线二线三线不卡| 欧美色图一区二区三区| 国产凹凸在线观看一区二区| 天天综合色天天综合色h| 综合av第一页| 欧美国产精品一区二区| 精品国产乱码久久久久久久久| 欧美在线视频全部完| 成人av资源网站| 免费成人av资源网|