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

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

?? s3c6410_display_con.c

?? 6410BSP3
?? C
?? 第 1 頁 / 共 5 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
//
// Copyright (c) Samsung Electronics. Co. LTD.  All rights reserved.
//
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.

Module Name:    s3c6410_display_con.c

Abstract:       Implementation of Display Controller Control Library
                This module implements Low Level HW control 

Functions:


Notes:


--*/

#include <windows.h>
#include <bsp_cfg.h>    // for reference S3C6410_HCLK, S3C6410_ECLK
#include <s3c6410.h>
#include "s3c6410_display_con.h"
#include "s3c6410_display_con_macro.h"

#define DISP_MSG(x)
#define DISP_INF(x)
#define DISP_ERR(x)    RETAILMSG(TRUE, x)

static volatile S3C6410_DISPLAY_REG *g_pDispConReg = NULL;
static volatile S3C6410_MSMIF_REG *g_pMSMIFReg = NULL;
static volatile S3C6410_GPIO_REG *g_pGPIOReg = NULL;

static tDevInfo g_DevInfoRGB;
static tDevInfo g_DevInfoTV;
static tDispWindow0Config g_Win0Config;
static tDispWindow12Config g_Win1Config;
static tDispWindow12Config g_Win2Config;
static tDispWindow34Config g_Win3Config;
static tDispWindow34Config g_Win4Config;

DISP_ERROR Disp_initialize_register_address(void *pDispConReg, void *pMSMIFReg, void *pGPIOReg)
{
    DISP_ERROR error = DISP_SUCCESS;

    DISP_MSG((_T("[DISP]++Disp_initialize_register_address(0x%08x, 0x%08x, 0x%08x)\n\r"), pDispConReg, pMSMIFReg, pGPIOReg));

    if (pDispConReg == NULL || pMSMIFReg == NULL || pGPIOReg == NULL)
    {
        DISP_ERR((_T("[DISP:ERR] Disp_initialize_register_address() : NULL pointer parameter\n\r")));
        error = DISP_ERROR_NULL_PARAMETER;
    }
    else
    {
        g_pDispConReg = (S3C6410_DISPLAY_REG *)pDispConReg;
        g_pMSMIFReg = (S3C6410_MSMIF_REG *)pMSMIFReg;
        g_pGPIOReg = (S3C6410_GPIO_REG *)pGPIOReg;
        DISP_INF((_T("[DISP:INF] g_pDispConReg = 0x%08x\n\r"), g_pDispConReg));
        DISP_INF((_T("[DISP:INF] g_pMSMIFReg = 0x%08x\n\r"), g_pMSMIFReg));
        DISP_INF((_T("[DISP:INF] g_pGPIOReg    = 0x%08x\n\r"), g_pGPIOReg));
    }

    DISP_MSG((_T("[DISP]--Disp_initialize_register_address() : %d\n\r"), error));

    return error;
}

DISP_ERROR Disp_set_output_device_information(void *pInfo)
{
    DISP_ERROR error = DISP_SUCCESS;

    DISP_MSG((_T("[DISP]++Disp_set_output_device_information(%0x08x)\n\r"), pInfo));

    if (pInfo == NULL)
    {
        DISP_ERR((_T("[DISP:ERR] Disp_set_output_device_information() : NULL pointer parameter\n\r")));
        error = DISP_ERROR_NULL_PARAMETER;
    }
    else
    {
        memcpy(&g_DevInfoRGB, pInfo, sizeof(tDevInfo));
    }

    DISP_MSG((_T("[DISP]--Disp_set_output_device_information()\n\r")));

    return error;
}

#if    0    // Depricated
void* Disp_get_output_device_information_buffer(void)
{
    DISP_MSG((_T("[DISP]++Disp_get_output_device_information_buffer()\n\r")));

    // Device Information is Filled by LDI_fill_output_device_information()
    return (void *)&g_DevInfoRGB;
}
#endif

DISP_ERROR Disp_set_output_TV_information(unsigned int uiWidth, unsigned int uiHeight)
{
    DISP_ERROR error = DISP_SUCCESS;

    DISP_MSG((_T("[DISP]++Disp_set_output_TV_information(%d, %d)\n\r"), uiWidth, uiHeight));

    if (uiWidth > 800)
    {
        DISP_ERR((_T("[DISP:ERR] Disp_set_output_TV_information() : Horizontal Resolution[%d] should lower than 800 pixel\n\r"), uiWidth));
        error = DISP_ERROR_ILLEGAL_PARAMETER;
    }
    else
    {
        g_DevInfoTV.RGBOutMode = DISP_18BIT_RGB666_S;
        g_DevInfoTV.uiWidth = uiWidth;
        g_DevInfoTV.uiHeight = uiHeight;
        g_DevInfoTV.VBPD_Value = 3;
        g_DevInfoTV.VFPD_Value = 5;
        g_DevInfoTV.VSPW_Value = 5;
        g_DevInfoTV.HBPD_Value = 13;
        g_DevInfoTV.HFPD_Value = 8;
        g_DevInfoTV.HSPW_Value = 3;
        g_DevInfoTV.VCLK_Polarity = IVCLK_FALL_EDGE;
        g_DevInfoTV.HSYNC_Polarity = IHSYNC_LOW_ACTIVE;
        g_DevInfoTV.VSYNC_Polarity = IVSYNC_LOW_ACTIVE;
        g_DevInfoTV.VDEN_Polarity = IVDEN_HIGH_ACTIVE;
        g_DevInfoTV.PNR_Mode = PNRMODE_RGB_P;
        g_DevInfoTV.VCLK_Source = CLKSEL_F_EXT27M;
        g_DevInfoTV.VCLK_Direction = CLKDIR_DIRECT;
        g_DevInfoTV.Frame_Rate = 60;
    }

    DISP_MSG((_T("[DISP]--Disp_set_output_TV_information()\n\r")));

    return error;
}

DISP_ERROR Disp_initialize_output_interface(DISP_VIDOUT_MODE VidoutMode)
{
    DISP_ERROR error = DISP_SUCCESS;

    DISP_MSG((_T("[DISP]++Disp_initialize_output_interface(%d)\n\r"), VidoutMode));

    if (g_pDispConReg == NULL || g_pGPIOReg == NULL)
    {
        DISP_ERR((_T("[DISP:ERR] Disp_initialize_output_interface() : Register Address Not Initialized\n\r")));
        error = DISP_ERROR_NOT_INITIALIZED;
    }

    g_DevInfoRGB.VideoOutMode = VidoutMode;

    switch(VidoutMode)
    {
    case DISP_VIDOUT_RGBIF:
        Disp_initialize_port_RGBIF(g_DevInfoRGB.RGBOutMode);
        Disp_initialize_RGBIF();
        break;
    case DISP_VIDOUT_TVENCODER:
        // TODO: Port Close ???? Disp_initialize_port_RGBIF(g_DevInfoRGB.RGBOutMode);
        Disp_initialize_TVEnc();
        break;
    case DISP_VIDOUT_RGBIF_TVENCODER:
        Disp_initialize_port_RGBIF(g_DevInfoRGB.RGBOutMode);
        Disp_initialize_RGBIF_withTVEnc();
        break;
    case DISP_VIDOUT_I80IF_LDI0:
    case DISP_VIDOUT_I80IF_LDI1:
    case DISP_VIDOUT_I80IF_LDI0_TVENCODER:
    case DISP_VIDOUT_I80IF_LDI1_TVENCODER:
    default:
        DISP_ERR((_T("[DISP:ERR] Disp_initialize_output_interface() : Not Implemented Video Output Mode [%d]\n\r"), VidoutMode));
        error = DISP_ERROR_NOT_IMPLEMENTED;
        break;
    }

    DISP_MSG((_T("[DISP]--Disp_initialize_output_interface() : %d\n\r"), error));

    return error;
}

DISP_ERROR Disp_set_window_mode(DISP_WINDOW_MODE Mode, DISP_BPP_MODE BPPMode, unsigned int uiWidth, unsigned int uiHeight, unsigned int uiOffsetX, unsigned int uiOffsetY)
{
    DISP_ERROR error = DISP_SUCCESS;

    DISP_MSG((_T("[DISP]++Disp_set_window_mode(%d)\n\r"), Mode));

    switch(Mode)
    {
    case DISP_WIN0_DMA:
    case DISP_WIN0_POST_RGB:
    case DISP_WIN0_POST_YUV:
        Disp_window0_initialize(Mode, BPPMode, uiWidth, uiHeight, uiOffsetX, uiOffsetY);
        break;
    case DISP_WIN1_DMA:
    case DISP_WIN1_TVSCALER_RGB:
    case DISP_WIN1_TVSCALER_YUV:
    case DISP_WIN1_CIPREVIEW_RGB:
    case DISP_WIN1_CIPREVIEW_YUV:
        Disp_window1_initialize(Mode, BPPMode, uiWidth, uiHeight, uiOffsetX, uiOffsetY);
        break;
    case DISP_WIN2_DMA:
    case DISP_WIN2_TVSCALER_RGB:
    case DISP_WIN2_TVSCALER_YUV:
    case DISP_WIN2_CICODEC_RGB:
    case DISP_WIN2_CICODEC_YUV:
        Disp_window2_initialize(Mode, BPPMode, uiWidth, uiHeight, uiOffsetX, uiOffsetY);
        break;
    case DISP_WIN3_DMA:
        Disp_window3_initialize(Mode, BPPMode, uiWidth, uiHeight, uiOffsetX, uiOffsetY);
        break;
    case DISP_WIN4_DMA:
        Disp_window4_initialize(Mode, BPPMode, uiWidth, uiHeight, uiOffsetX, uiOffsetY);
        break;
    default:
        DISP_ERR((_T("[DISP:ERR] Disp_set_window_mode() : Unsupported Window Mode [%d]\n\r"), Mode));
        error = DISP_ERROR_ILLEGAL_PARAMETER;
        break;
    }

    DISP_MSG((_T("[DISP]--Disp_set_window_mode() : %d\n\r"), error));

    return error;
}

DISP_ERROR Disp_set_window_position(DISP_WINDOW Win, unsigned int uiOffsetX, unsigned int uiOffsetY)
{
    DISP_ERROR error = DISP_SUCCESS;

    DISP_MSG((_T("[DISP]++Disp_set_window_position(%d, %d, %d)\n\r"), Win, uiOffsetX, uiOffsetY));

    switch(Win)
    {
    case DISP_WIN0:
        g_Win0Config.uiOffsetX = uiOffsetX;
        g_Win0Config.uiOffsetY = uiOffsetY;

        g_pDispConReg->VIDOSD0A = OSD_LEFTTOPX_F(g_Win0Config.uiOffsetX) | OSD_LEFTTOPY_F(g_Win0Config.uiOffsetY);

        g_pDispConReg->VIDOSD0B = OSD_RIGHTBOTX_F(g_Win0Config.uiWidth+g_Win0Config.uiOffsetX-1) |
                                    OSD_RIGHTBOTY_F(g_Win0Config.uiHeight+g_Win0Config.uiOffsetY-1);
        break;
    case DISP_WIN1:
        g_Win1Config.uiOffsetX = uiOffsetX;
        g_Win1Config.uiOffsetY = uiOffsetY;

        g_pDispConReg->VIDOSD1A = OSD_LEFTTOPX_F(g_Win1Config.uiOffsetX) | OSD_LEFTTOPY_F(g_Win1Config.uiOffsetY);

        g_pDispConReg->VIDOSD1B = OSD_RIGHTBOTX_F(g_Win1Config.uiWidth+g_Win1Config.uiOffsetX-1) |
                                    OSD_RIGHTBOTY_F(g_Win1Config.uiHeight+g_Win1Config.uiOffsetY-1);
        break;
    case DISP_WIN2:
        g_Win2Config.uiOffsetX = uiOffsetX;
        g_Win2Config.uiOffsetY = uiOffsetY;

        g_pDispConReg->VIDOSD2A = OSD_LEFTTOPX_F(g_Win2Config.uiOffsetX) | OSD_LEFTTOPY_F(g_Win2Config.uiOffsetY);

        g_pDispConReg->VIDOSD2B = OSD_RIGHTBOTX_F(g_Win2Config.uiWidth+g_Win2Config.uiOffsetX-1) |
                                    OSD_RIGHTBOTY_F(g_Win2Config.uiHeight+g_Win2Config.uiOffsetY-1);
        break;
    case DISP_WIN3:
        g_Win3Config.uiOffsetX = uiOffsetX;
        g_Win3Config.uiOffsetY = uiOffsetY;

        g_pDispConReg->VIDOSD3A = OSD_LEFTTOPX_F(g_Win3Config.uiOffsetX) | OSD_LEFTTOPY_F(g_Win3Config.uiOffsetY);

        g_pDispConReg->VIDOSD3B = OSD_RIGHTBOTX_F(g_Win3Config.uiWidth+g_Win3Config.uiOffsetX-1) |
                                    OSD_RIGHTBOTY_F(g_Win3Config.uiHeight+g_Win3Config.uiOffsetY-1);
        break;
    case DISP_WIN4:
        g_Win4Config.uiOffsetX = uiOffsetX;
        g_Win4Config.uiOffsetY = uiOffsetY;

        g_pDispConReg->VIDOSD4A = OSD_LEFTTOPX_F(g_Win4Config.uiOffsetX) | OSD_LEFTTOPY_F(g_Win4Config.uiOffsetY);

        g_pDispConReg->VIDOSD4B = OSD_RIGHTBOTX_F(g_Win4Config.uiWidth+g_Win4Config.uiOffsetX-1) |
                                    OSD_RIGHTBOTY_F(g_Win4Config.uiHeight+g_Win4Config.uiOffsetY-1);
        break;
    default:
        DISP_ERR((_T("[DISP:ERR] Disp_set_window_position() : Unknown Window Number [%d]\n\r"), Win));
        error = DISP_ERROR_ILLEGAL_PARAMETER;
        break;
    }

    //DISP_MSG((_T("[DISP]--Disp_set_window_position() : %d\n\r"), error));

    return error;
}

DISP_ERROR Disp_set_framebuffer(DISP_WINDOW Win, unsigned int uiFrameBufferAddress)
{
    DISP_ERROR error = DISP_SUCCESS;

    DISP_MSG((_T("[DISP]++Disp_set_framebuffer(%d, 0x%08x)\n\r"), Win, uiFrameBufferAddress));

    switch(Win)
    {
    case DISP_WIN0:
        if (g_Win0Config.LocalPathEnable == LOCAL_PATH_ENABLE)
        {
#if    0
            DISP_ERR((_T("[DISP:ERR] Disp_set_framebuffer() : Window0 Local Path is Enabled\n\r")));
            error = DISP_ERROR_ILLEGAL_PARAMETER;
#else
            // Safe Frame buffer Address for Local Path
            g_pDispConReg->VIDW00ADD0B0 = VBANK_F(uiFrameBufferAddress>>24) | VBASEU_F(uiFrameBufferAddress);
            g_pDispConReg->VIDW00ADD1B0 = VBASEL_F(VBASEU_F(uiFrameBufferAddress)+0x10);    // 4 Words
            g_pDispConReg->VIDW00ADD2 = PAGEWIDTH_F(0x10);                                    // 4 Words
            g_pDispConReg->WINCON0 &= ~(BUFSEL_BUF1);    // Buffer set to Buf0
#endif
        }
        else
        {
            g_pDispConReg->VIDW00ADD0B0 = VBANK_F(uiFrameBufferAddress>>24) | VBASEU_F(uiFrameBufferAddress);
            g_pDispConReg->VIDW00ADD1B0 = VBASEL_F(VBASEU_F(uiFrameBufferAddress)+g_Win0Config.uiPageWidth*g_Win0Config.uiHeight);
            g_pDispConReg->VIDW00ADD2 = PAGEWIDTH_F(g_Win0Config.uiPageWidth);
            g_pDispConReg->WINCON0 &= ~(BUFSEL_BUF1);    // Buffer set to Buf0
        }
        break;
    case DISP_WIN1:
        if (g_Win1Config.LocalPathEnable == LOCAL_PATH_ENABLE)
        {
#if    0
            DISP_ERR((_T("[DISP:ERR] Disp_set_framebuffer() : Window1 Local Path is Enabled\n\r")));
            error = DISP_ERROR_ILLEGAL_PARAMETER;
#else
            // Safe Frame buffer Address for Local Path
            g_pDispConReg->VIDW01ADD0B0 = VBANK_F(uiFrameBufferAddress>>24) | VBASEU_F(uiFrameBufferAddress);
            g_pDispConReg->VIDW01ADD1B0 = VBASEL_F(VBASEU_F(uiFrameBufferAddress)+0x10);    // 4 Words
            g_pDispConReg->VIDW01ADD2 = PAGEWIDTH_F(0x10);                                    // 4 Words
            g_pDispConReg->WINCON1 &= ~(BUFSEL_BUF1);    // Buffer set to Buf0
#endif
        }
        else
        {
            g_pDispConReg->VIDW01ADD0B0 = VBANK_F(uiFrameBufferAddress>>24) | VBASEU_F(uiFrameBufferAddress);
            g_pDispConReg->VIDW01ADD1B0 = VBASEL_F(VBASEU_F(uiFrameBufferAddress)+g_Win1Config.uiPageWidth*g_Win1Config.uiHeight);
            g_pDispConReg->VIDW01ADD2 = PAGEWIDTH_F(g_Win1Config.uiPageWidth);
            g_pDispConReg->WINCON1 &= ~(BUFSEL_BUF1);    // Buffer set to Buf0
        }
        break;
    case DISP_WIN2:
        if (g_Win2Config.LocalPathEnable == LOCAL_PATH_ENABLE)
        {
#if    0
            DISP_ERR((_T("[DISP:ERR] Disp_set_framebuffer() : Window2 Local Path is Enabled\n\r")));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内成人免费视频| 经典三级视频一区| 亚洲色欲色欲www在线观看| 国产欧美精品国产国产专区| 久久久久青草大香线综合精品| 欧美一区二区三区喷汁尤物| 在线播放国产精品二区一二区四区| 欧美优质美女网站| 欧美日韩你懂的| 欧美一区二区美女| 欧美精品一区二区三区在线| 久久色.com| 欧美国产日韩a欧美在线观看| 亚洲国产精品激情在线观看 | 国产一区二区在线观看免费| 国产一区二区三区不卡在线观看| 国产成人精品影院| 91日韩一区二区三区| 欧美日韩一区在线| 精品国产一区二区在线观看| 国产欧美精品日韩区二区麻豆天美| 国产精品国产三级国产aⅴ原创| 亚洲婷婷国产精品电影人久久| 亚洲国产精品一区二区www | 亚洲成a人v欧美综合天堂| 偷窥国产亚洲免费视频| 国产黄色91视频| 欧美日韩美女一区二区| 精品999在线播放| 一区二区三区在线视频播放| 美腿丝袜在线亚洲一区| 97久久精品人人爽人人爽蜜臀| 欧美综合天天夜夜久久| 日韩三级精品电影久久久| 国产偷国产偷亚洲高清人白洁| 亚洲男人的天堂av| 激情小说欧美图片| 欧美在线观看你懂的| 久久久国产精品午夜一区ai换脸| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美日韩国产123区| 国产欧美视频在线观看| 亚洲va欧美va人人爽| 丰满少妇在线播放bd日韩电影| 精品视频1区2区3区| 国产精品欧美久久久久一区二区| 免费成人在线网站| 欧美亚洲自拍偷拍| 国产精品美女久久久久久久网站| 日日摸夜夜添夜夜添精品视频| 99精品偷自拍| 国产午夜精品久久久久久久| 久久国产精品免费| 91精品欧美一区二区三区综合在| 中文字幕一区二区三区色视频| 美女爽到高潮91| 欧美一区二区三区思思人| 亚洲免费观看高清完整版在线观看熊| 国产九色sp调教91| 日韩欧美的一区二区| 亚洲成人av福利| 欧美三级蜜桃2在线观看| 亚洲欧美日韩精品久久久久| 国产99久久久精品| 国产视频一区在线观看 | 不卡av在线网| 国产丝袜欧美中文另类| 国产精品亚洲午夜一区二区三区 | 精品1区2区3区| 尤物视频一区二区| 欧美在线观看视频一区二区| 一区二区三区日韩欧美精品| 在线视频一区二区三| 一区二区三区四区精品在线视频| 91美女蜜桃在线| 亚洲综合图片区| 欧美高清视频一二三区 | 91影院在线免费观看| 一色桃子久久精品亚洲| 91视视频在线直接观看在线看网页在线看| 久久久91精品国产一区二区三区| 国产精品亚洲人在线观看| 欧美激情在线一区二区三区| 丁香婷婷综合五月| 国产精品不卡一区二区三区| 色哟哟欧美精品| 石原莉奈一区二区三区在线观看| 日韩一区二区三区观看| 国产福利精品一区二区| 最新成人av在线| 色悠悠久久综合| 日本美女一区二区三区视频| 亚洲精品在线观看网站| 成人精品一区二区三区四区| 艳妇臀荡乳欲伦亚洲一区| 91精品视频网| a在线播放不卡| 亚洲.国产.中文慕字在线| 日韩精品专区在线影院观看| 成人av高清在线| 亚洲成av人片在线观看无码| 精品国产免费视频| 色爱区综合激月婷婷| 蜜桃av一区二区在线观看| 中文字幕欧美三区| 欧美三电影在线| 国产91对白在线观看九色| 亚洲专区一二三| 久久人人超碰精品| 欧美性一区二区| 成人小视频免费观看| 五月综合激情婷婷六月色窝| 欧美激情一区在线观看| 欧美日本一区二区三区四区| 国产91精品欧美| 蜜桃av一区二区| 一区二区三区中文免费| 国产偷v国产偷v亚洲高清| 精品视频999| 99精品国产热久久91蜜凸| 另类中文字幕网| 五月婷婷激情综合| 亚洲三级在线观看| 久久久久久毛片| 日韩视频在线一区二区| 在线亚洲人成电影网站色www| 国产乱码精品一区二区三| 午夜久久久影院| 一区二区三区日韩欧美精品| 日本一区二区动态图| 久久综合精品国产一区二区三区| 欧美在线观看视频一区二区三区 | 久久精品国产第一区二区三区| 亚洲另类中文字| 国产精品国产a级| 国产欧美日韩在线观看| 日韩午夜在线播放| 555夜色666亚洲国产免| 色综合中文字幕| 91丨porny丨首页| 成人黄色av网站在线| 国产999精品久久久久久| 国产麻豆9l精品三级站| 狠狠色综合播放一区二区| 免费观看在线综合| 久久国产精品72免费观看| 欧美aaaaa成人免费观看视频| 午夜久久久久久久久| 性做久久久久久久免费看| 天天av天天翘天天综合网色鬼国产| 亚洲综合色视频| 视频在线在亚洲| 强制捆绑调教一区二区| 久久国产尿小便嘘嘘| 国产精一区二区三区| 国产乱理伦片在线观看夜一区| 国产精品资源网| 丁香激情综合国产| 91亚洲精品久久久蜜桃网站| 色琪琪一区二区三区亚洲区| 欧美日韩综合色| 日韩欧美一区中文| 久久九九99视频| 综合分类小说区另类春色亚洲小说欧美 | 麻豆成人91精品二区三区| 黄页视频在线91| 懂色av一区二区三区免费观看| 成人伦理片在线| 欧美日韩国产影片| 精品精品欲导航| 国产清纯白嫩初高生在线观看91 | 亚洲成人激情社区| 久久精品国产99国产精品| 成人在线视频一区二区| 日本精品视频一区二区三区| 欧美一区二区三区四区视频| 久久久久亚洲蜜桃| 一区二区三区免费在线观看| 蜜桃视频在线观看一区二区| 国产精品一区二区在线看| 在线影视一区二区三区| 欧美一区二区免费视频| 中文乱码免费一区二区 | 日韩精品专区在线| 国产精品―色哟哟| 日韩在线播放一区二区| 波多野结衣在线一区| 欧美高清你懂得| 中文一区在线播放| 偷窥少妇高潮呻吟av久久免费| 国产成人av一区二区三区在线| 色乱码一区二区三区88| 久久久高清一区二区三区| 一区二区三区四区高清精品免费观看| 久久不见久久见免费视频1| 欧美亚洲另类激情小说| 国产目拍亚洲精品99久久精品| 五月天激情综合| 色狠狠桃花综合| 国产精品国产三级国产|