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

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

?? keymatrix.cpp

?? 6410BSP3
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*++
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.
Copyright (c) 2008. Samsung Electronics, co. ltd  All rights reserved.

Module Name:  

Abstract:

    This file implements the S3C6410 Keyboard function

Notes: 
--*/

#include <windows.h>
#include <ceddk.h>
#include <nkintr.h>
#include <Pmpolicy.h>

#include <keybddbg.h>
#include <keybddr.h>
#include <keybdpdd.h>
#include <keybdist.h>

#include <oal.h>
#include <s3c6410.h>
#include <bsp.h>

#include "keymatrix.hpp"

#define KEY_POWER_ON        (1<<11)                      // PCLKCON
#define FT_CLK_DIV          (FIN/32000 - 1)
#define KCODE_TYPE_NORMAL  0x0001
#define KCODE_TYPE_SL      0x0002
#define DEFAULT_PRIORITY    145
#define SIZE_KEY        SIZE_COLS * SIZE_ROWS
#define CNT_VALIDKEY    1
#define CNT_LONGKEY     30
#define TIME_KEYSCAN    10
#define SCAN_EXT        0xe000

#if ((MATRIX_LAYOUT == LAYOUT0)||(MATRIX_LAYOUT == LAYOUT2))
#define SIZE_BITS   8
#define SIZE_COLS   8
#define SIZE_ROWS   8
#elif (MATRIX_LAYOUT == LAYOUT1)
#define SIZE_BITS   2
#define SIZE_COLS   5
#define SIZE_ROWS   2
#endif

// Pointer to device control registers
volatile S3C6410_GPIO_REG *pGPIOReg = NULL;
volatile S3C6410_KEYPAD_REG *pKeyPadReg = NULL;
volatile S3C6410_SYSCON_REG *pSysConReg = NULL;

DWORD ChangeState[SIZE_COLS];
DWORD KeyState[SIZE_COLS];
DWORD FaultKey;

// There is really only one physical keyboard supported by the system.
KeyMatrix *Keyboard;

typedef enum {
    ENUM_INPUT = 0,
    ENUM_OUTPUT,
    ENUM_AUXFUNC,
    ENUM_RESERVED
} ENUM_GPIO_FUNC;

typedef enum {
    ENUM_ROW,
    ENUM_COL
} ENUM_COL_ROW;

struct KSTATE
{
    WORD Mask;
    WORD Cnt;
};

struct KCODE
{
    DWORD Type;
    DWORD Scan;
    DWORD TimeoutCnt;    // used by KCODE_TYPE_SL
    BOOL Fin;
};

#if (MATRIX_LAYOUT == LAYOUT0) 
struct KSTATE KeyChange[SIZE_KEY];
struct KCODE KeyCode[SIZE_KEY] =
{
    {KCODE_TYPE_NORMAL , 0x0000 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0001 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0002 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0003 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0004 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0005 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0006 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0007 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0008 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0009 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000f , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0010 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0011 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0012 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0013 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0014 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0015 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0016 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0017 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0018 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0019 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001f , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0020 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0021 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0022 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0023 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0024 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0025 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0026 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0027 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0028 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0029 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002f , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0030 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0031 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0032 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0033 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0034 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0035 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0036 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0037 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0038 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0039 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003f , 0, 0},
};
#elif (MATRIX_LAYOUT == LAYOUT1)
struct KSTATE KeyChange[SIZE_KEY];
struct KCODE KeyCode[SIZE_KEY] =
{
    {KCODE_TYPE_NORMAL , 0x0000 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0001 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0002 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0003 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0004 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0005 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0006 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0007 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0008 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0009 , 0, 0}
};
#elif (MATRIX_LAYOUT == LAYOUT2) 
struct KSTATE KeyChange[SIZE_KEY];
struct KCODE KeyCode[SIZE_KEY] =
{
    {KCODE_TYPE_NORMAL , 0x0000 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0001 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0002 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0003 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0004 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0005 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0006 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0007 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0008 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0009 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x000f , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0010 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0011 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0012 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0013 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0014 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0015 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0016 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0017 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0018 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0019 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x001f , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0020 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0021 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0022 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0023 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0024 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0025 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0026 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0027 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0028 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0029 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x002f , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0030 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0031 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0032 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0033 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0034 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0035 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0036 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0037 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0038 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x0039 , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003a , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003b , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003c , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003d , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003e , 0, 0},
    {KCODE_TYPE_NORMAL , 0x003f , 0, 0},
};
#endif

extern void ReadRegDWORD( LPCWSTR szKeyName, LPCWSTR szValueName, LPDWORD pdwValue );
static void GPIO_PuEnable(ENUM_COL_ROW iClass, bool bFlag);
static void GPIO_CtrlHandler(ENUM_COL_ROW iClass, ENUM_GPIO_FUNC iLevel);
static void KEYIF_Column_Set(DWORD dVal);
static void KEYIF_Column_Bitset(bool bVal, int cIdx);
static DWORD KEYIF_Row_Read(void);
static void KEYIF_Status_Clear(void);
void Keypad_Clock_On(BOOL bOn);


/*****************************************************************************/

/*****************************************************************************
*    Function Name : KeybdPdd_PowerHandler
*    Function Desc  : Power Handler
*
*/
void WINAPI KeybdPdd_PowerHandler(BOOL bOff)
{
    if (!bOff)
    {
        Keyboard->KeybdPowerOn();
    }
    else
    {
        Keyboard->KeybdPowerOff();
    }
    return;
}
/****************************************************************************/

/*****************************************************************************
*    Function Name : KeybdDriverInitializeAddresses
*    Function Desc  : KeyBoard Driver Initialization
*                     Read Registry
*
*/
BOOL KeybdDriverInitializeAddresses(void)
{
    bool RetValue = TRUE;

    DWORD dwSYSCONBase;
    DWORD dwIOBase;
    DWORD dwIOCTRLBase;
    PHYSICAL_ADDRESS    ioPhysicalBase = {0,0};

    DEBUGMSG(ZONE_INIT,(TEXT("++KeybdDriverInitializeAddresses\r\n")));

    ReadRegDWORD(TEXT("HARDWARE\\DEVICEMAP\\KEYBD"), _T("SYSCONBase"), &dwSYSCONBase );
    if(dwSYSCONBase == 0)
    {
        DEBUGMSG(ZONE_ERROR, (TEXT("Can't fount registry entry : HARDWARE\\DEVICEMAP\\KEYBD\\SYSCONBase\r\n")));
        goto error_return;
    }
    DEBUGMSG(ZONE_INIT, (TEXT("HARDWARE\\DEVICEMAP\\KEYBD\\SYSCONBase:%x\r\n"), dwSYSCONBase));

    ReadRegDWORD(TEXT("HARDWARE\\DEVICEMAP\\KEYBD"), _T("IOBase"), &dwIOBase );
    if(dwIOBase == 0)
    {
        DEBUGMSG(ZONE_ERROR, (TEXT("Can't fount registry entry : HARDWARE\\DEVICEMAP\\KEYBD\\IOBase\r\n")));
        goto error_return;
    }
    DEBUGMSG(ZONE_INIT, (TEXT("HARDWARE\\DEVICEMAP\\KEYBD\\IOBase:%x\r\n"), dwIOBase));

    ReadRegDWORD(TEXT("HARDWARE\\DEVICEMAP\\KEYBD"), _T("IOCTRLBase"), &dwIOCTRLBase );
    if(dwIOCTRLBase == 0)
    {
        DEBUGMSG(ZONE_ERROR, (TEXT("Can't fount registry entry : HARDWARE\\DEVICEMAP\\KEYBD\\IOCTRLBase\r\n")));
        goto error_return;
    }
    DEBUGMSG(1, (TEXT("HARDWARE\\DEVICEMAP\\KEYBD\\IOCTRLBase:%x\r\n"), dwIOCTRLBase));

    // Syscon Virtual alloc
    ioPhysicalBase.LowPart = dwSYSCONBase;
    pSysConReg = (S3C6410_SYSCON_REG *)MmMapIoSpace(ioPhysicalBase, sizeof(S3C6410_SYSCON_REG), FALSE);
    if (pSysConReg == NULL)
    {
        DEBUGMSG(ZONE_INIT,(TEXT("[KBD] pSysConReg : MmMapIoSpace failed!\r\n")));
        goto error_return;
    }
    DEBUGMSG(ZONE_INIT, (TEXT("[KBD] pSysConReg mapped at %x\r\n"), pSysConReg));

    // GPIO Virtual alloc
    ioPhysicalBase.LowPart = dwIOBase;
    pGPIOReg = (S3C6410_GPIO_REG *)MmMapIoSpace(ioPhysicalBase, sizeof(S3C6410_GPIO_REG), FALSE);
    if (pGPIOReg == NULL)
    {
        DEBUGMSG(ZONE_ERROR,(TEXT("[KBD] pGPIOReg : MmMapIoSpace failed!\r\n")));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品爽啪视频| 国产精品青草久久| av影院午夜一区| 久久99国产精品久久99果冻传媒| 日韩一区在线播放| 国产精品久久久久久久久久久免费看| 精品欧美一区二区久久| 7777精品伊人久久久大香线蕉最新版| 91蜜桃视频在线| 91捆绑美女网站| 91国产免费观看| 91久久精品网| 欧美四级电影网| 欧美日韩亚洲国产综合| 欧美精品九九99久久| 欧美日韩五月天| 欧美一区二区播放| 337p粉嫩大胆色噜噜噜噜亚洲| 777xxx欧美| 精品国产伦理网| 国产蜜臀av在线一区二区三区| 国产视频911| 国产精品三级久久久久三级| 五月天国产精品| 亚洲伊人伊色伊影伊综合网| 亚洲va欧美va天堂v国产综合| 亚洲午夜av在线| 麻豆91在线播放| 风流少妇一区二区| 色综合久久中文字幕综合网| 欧美喷潮久久久xxxxx| 精品av久久707| 国产精品毛片高清在线完整版| 亚洲精品欧美激情| 蜜桃av噜噜一区二区三区小说| 国产成人综合在线播放| 色婷婷综合久久久久中文一区二区 | 91影视在线播放| 欧美日韩在线播放| 欧美精品一区二区三区蜜桃视频 | 国产一区二区女| 97精品国产97久久久久久久久久久久| 在线观看亚洲成人| 久久久久久久性| 性做久久久久久| 国产成人在线视频网站| 欧美色视频在线| 亚洲国产精品二十页| 天涯成人国产亚洲精品一区av| 国产老女人精品毛片久久| 欧美又粗又大又爽| 国产婷婷精品av在线| 婷婷综合五月天| 成人国产免费视频| 欧美电影精品一区二区| 一区二区三区在线播| 国产一区二区精品久久| 欧美日韩美女一区二区| 一区二区中文视频| 国产九色精品成人porny| 欧美绝品在线观看成人午夜影视| 国产精品黄色在线观看| 国产一区不卡视频| 日韩精品在线看片z| 天天射综合影视| 在线观看成人小视频| 国产人伦精品一区二区| 精品一区二区av| 91精品国产入口在线| 亚洲一区二区在线观看视频| 成人一级片网址| 久久久精品2019中文字幕之3| 男女性色大片免费观看一区二区| 色噜噜夜夜夜综合网| 亚洲欧洲成人精品av97| 成人av中文字幕| 国产亚洲精品超碰| 国产成人综合在线播放| 久久久久久亚洲综合影院红桃| 麻豆精品在线看| 欧美一区二区三区系列电影| 丝袜亚洲精品中文字幕一区| 欧美日本乱大交xxxxx| 午夜婷婷国产麻豆精品| 9191久久久久久久久久久| 亚洲成a人片在线观看中文| 欧美日韩一区在线观看| 午夜久久久影院| 在线播放91灌醉迷j高跟美女 | 欧美在线不卡视频| 亚洲一区二区三区四区在线观看| 色婷婷精品久久二区二区蜜臂av | av中文字幕在线不卡| 国产精品久线观看视频| 91免费视频网| 午夜欧美一区二区三区在线播放 | 亚洲v精品v日韩v欧美v专区| 欧美日韩免费在线视频| 日韩不卡在线观看日韩不卡视频| 欧美裸体bbwbbwbbw| 另类小说综合欧美亚洲| 国产欧美一区二区精品性色| 99国内精品久久| 亚洲成a人片在线不卡一二三区 | 视频一区视频二区中文字幕| 91精品国模一区二区三区| 久国产精品韩国三级视频| 久久色在线视频| 一本色道久久加勒比精品| 亚洲v日本v欧美v久久精品| 精品少妇一区二区| 成人黄页毛片网站| 午夜精品久久久久久久| 久久蜜桃av一区精品变态类天堂 | 国产999精品久久久久久绿帽| 中文字幕在线免费不卡| 亚洲欧洲日韩在线| 欧美日韩国产美| 国产激情一区二区三区四区| 一区二区三区不卡视频| 久久五月婷婷丁香社区| 色猫猫国产区一区二在线视频| 日本女人一区二区三区| 中文字幕一区二区三区av | 亚洲综合精品自拍| 久久网站热最新地址| 色婷婷久久一区二区三区麻豆| 日本不卡一区二区三区高清视频| 国产日韩欧美精品一区| 91精品国产免费久久综合| 成人激情电影免费在线观看| 爽好久久久欧美精品| 国产精品乱码久久久久久| 欧美精品久久99久久在免费线 | 日韩伦理免费电影| 精品欧美久久久| 在线观看视频欧美| gogogo免费视频观看亚洲一| 蜜臀av在线播放一区二区三区 | 洋洋成人永久网站入口| 国产精品无遮挡| 久久精品一二三| 日韩欧美色电影| 欧美高清精品3d| 欧美性大战久久久久久久| 成a人片亚洲日本久久| 极品美女销魂一区二区三区免费| 午夜电影久久久| 亚洲国产精品麻豆| 一区二区欧美国产| 亚洲欧美激情小说另类| 中文字幕第一页久久| 久久精品综合网| 久久久久久久久99精品| 精品国一区二区三区| 欧美电影免费观看高清完整版在线| 欧美日本韩国一区二区三区视频 | 亚洲一区在线观看免费观看电影高清| 欧美激情一区二区三区四区 | 国产黄色精品视频| 国产美女主播视频一区| 久久66热偷产精品| 国产福利一区在线| 国产91丝袜在线观看| 成人黄色软件下载| 91亚洲精品乱码久久久久久蜜桃| 97aⅴ精品视频一二三区| 99精品热视频| 在线观看日韩av先锋影音电影院| 91精品福利视频| 欧美色网站导航| 91精品国产91久久久久久最新毛片| 制服丝袜亚洲精品中文字幕| 欧美一级片在线| 久久欧美一区二区| 中文字幕亚洲视频| 性欧美大战久久久久久久久| 蜜臀精品久久久久久蜜臀| 国内成人精品2018免费看| 国产成人在线免费观看| a美女胸又www黄视频久久| 91福利区一区二区三区| 日韩午夜在线影院| 国产性天天综合网| 综合久久一区二区三区| 亚洲一卡二卡三卡四卡无卡久久| 日本女优在线视频一区二区 | 蜜桃久久精品一区二区| 国产成人免费高清| 91久久免费观看| 精品国产精品网麻豆系列| 国产视频不卡一区| 亚洲妇女屁股眼交7| 国产乱一区二区| 欧美在线观看禁18| 久久久国产精品麻豆| 一级中文字幕一区二区| 99r国产精品| 欧美欧美欧美欧美| 欧美高清在线精品一区|