日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

电池驱动介绍

發布時間:2023/12/15 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 电池驱动介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

電池驅動介紹

一.整體框架

???????? 電池驅動代碼量很小,可是麻雀雖小,五臟俱全。與其他的很多Driver一樣,分為PDD+MDD層,雙層之間通過PDD的如下導出接口相聯系。????

Programming element

Description

BatteryDrvrGetLevels

This function returns the number of levels that the battery driver is capable of returning in the BatteryFlag and BackupBatteryFlag members of the SYSTEM_POWER_STATUS_EX2 structure.

BatteryDrvrSupportsChangeNotification

This function indicates whether the battery driver can report whether the batteries were changed.

BatteryGetLifeTimeInfo

This function retrieves the time the user changed the batteries, the amount of time they used the batteries, and the amount of time they used the batteries before replacing them.

BatteryNotifyOfTimeChange

This function adjusts times to account for the user changing the real time.

BatteryPDDDeinitialize

This function allows the battery PDD to perform hardware-specific cleanup.

BatteryPDDGetLevels

This function indicates how many battery levels are reported in the BatteryFlag and BackupBatteryFlag members of the SYSTEM_POWER_STATUS_EX2 structure filled in by BatteryPDDGetStatus.

BatteryPDDGetStatus

This function obtains the most current battery and power status available on the platform. It fills in the structures pointed to by its parameters.

BatteryPDDInitialize

This function allows the battery PDD to perform hardware-specific initialization.

BatteryPDDPowerHandler

This power callback performs hardware-specific processing for the battery driver.

BatteryPDDResume

This function performs hardware-specific battery processing in a thread context following system resume.

BatteryPDDSupportsChangeNotification

This function indicates whether the battery driver can report whether the batteries were changed.

PFN_BATTERY_PDD_IOCONTROL

This function signature is for the battery driver custom IOCTL handler. It implements the optional PDD IOCTL interface.

???????? 微軟提供了電池驅動的Sample Code,從目錄/WINCE600/PUBLIC/COMMON/OAK/DRIVERS

/BATTDRVR下可以找到。

???????? 注冊表的配置如下:

IF BSP_NOBATTERY !

?

; HIVE BOOT SECTION

?

[HKEY_LOCAL_MACHINE/System/Events]

??? "SYSTEM/BatteryAPIsReady"="Battery Interface APIs"

?

; END HIVE BOOT SECTION

?

; These registry entries load the battery driver.? The IClass value must match

; the BATTERY_DRIVER_CLASS definition in battery.h -- this is how the system

; knows which device is the battery driver.? Note that we are using

; DEVFLAGS_NAKEDENTRIES with this driver.? This tells the device manager

; to instantiate the device with the prefix named in the registry but to look

; for DLL entry points without the prefix.? For example, it will look for Init

; instead of BAT_Init.? This allows the prefix to be changed in the registry (if

; desired) without editing the driver code.

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Battery]

?? "Prefix"="BAT"

?? "Dll"="battdrvr.dll"

?? "Flags"=dword:8????????????????????? ; DEVFLAGS_NAKEDENTRIES

?? "Order"=dword:0

?? "IClass"="{DD176277-CD34-4980-91EE-67DBEF3D8913}"

?

ENDIF BSP_NOBATTERY !

???????? PDD層基本上就是實現電池電量的采集和電池一些其它基本信息的獲取,而MDD層主要是建立了一個線程BatteryThreadProc,該線程用來和控制面板中電源管理小工具進行通信。

二.值得一說的問題

???????? 電池驅動實在是太簡單了,沒啥可介紹的。

???????? 就說說常見的問題吧。

1.電池驅動的導出接口沒有Prefix

???????? 一般的流接口驅動導出接口都會有一個前綴,即注冊表中配置的Prefix的值,為三個字節的大寫字母。

???????? 這是注冊表中”Flags”的值配置成8DEVFLAGS_NAKEDENTRIES)引起的,在這種情況下Device Manager操作流接口驅動程序的時候,就可以不需要Prefix前導符號。

???????? 詳細的”Flags”的配置如下:

Flag

Value

Description

DEVFLAGS_NONE

0x00000000

No flags are defined.

DEVFLAGS_UNLOAD

0x00000001

Driver unloads after a call to the XXX_Init entry point or after the XXX_Init entry point returns. No error code is returned.

Bus Enumerator typically runs with this flag.

DEVFLAGS_LOADLIBRARY

0x00000002

Driver is loaded with LoadLibrary instead of LoadDriver.

DEVFLAGS_NOLOAD

0x00000004

Driver is not loaded.

DEVFLAGS_NAKEDENTRIES

0x00000008

Driver entry points do not have a XXX Prefix prepended.

DEVFLAGS_BOOTPHASE_1

0x00001000

Driver is loaded during boot phase one. By default, device drivers are loaded during boot phase two.

Boot phase zero is before the Device Manager loads.

Boot phase one is to find the registry.

Boot phase two is when initial device drivers load.

Boot phase three is after initial device drivers load.

DEVFLAGS_IRQ_EXCLUSIVE

0x00000100

Driver loads only when it has exclusive access to the IRQ.

DEVFLAGS_TRUSTEDCALLERONLY

0x00010000

Driver can only be opened by a trusted application.

???????? 接下來,我們從Device Manager的代碼中找到其原因。通常在應用程序或者一些Driver中嘗試去動態加載流驅動的話,可以去調用API ActivateDeviceEx(),其實該函數最終調用的就是Device Manager中的函數I_ActivateDeviceEx()

???????? 在文件/WINCE600/PRIVATE/WINCEOS/COREOS/DEVICE/DEVCORE/ devload.c中可以找到函數I_ActivateDeviceEx()的具體實現,該函數主要完成驅動程序對應的DLL的加載和初始化函數的調用,它首先會去調用函數CreateDevice()創建設備的一些結構體信息。在函數CreateDevice()中可以找到對”Flags”的一些判斷處理。

???????? 代碼如下:

// This routine allocates a device driver structure in memory and initializes it.

// As part of this process, it loads the driver's DLL and obtains pointers to

// its entry points.? This routine returns a pointer to the new driver description

// structure, or NULL if there's an error.

static fsdev_t *

CreateDevice(

??? LPCWSTR lpszPrefix,

??? DWORD dwIndex,

??? DWORD dwLegacyIndex,

??? DWORD dwId,

??? LPCWSTR lpszLib,

??? DWORD dwFlags,

??? LPCWSTR lpszBusPrefix,

??? LPCWSTR lpszBusName,

??? LPCWSTR lpszDeviceKey,

??? HANDLE hParent

??? )

{

??? fsdev_t *lpdev;

??? DWORD dwSize;

??? DWORD dwStatus = ERROR_SUCCESS;

??? WCHAR szDeviceName[MAXDEVICENAME];

??? WCHAR szLegacyName[MAXDEVICENAME];

?

??? DEBUGCHK(lpszPrefix != NULL);

??? DEBUGCHK(lpszLib != NULL);

??? DEBUGCHK(wcslen(lpszPrefix) <= 3);

??? DEBUGCHK(dwLegacyIndex == dwIndex || (dwLegacyIndex == 0 && dwIndex == 10));

??? DEBUGCHK(lpszBusName != NULL);

?

??? // figure out how much memory to allocate

??? dwSize = sizeof(*lpdev);

?

??? // is the device named?

??? if(lpszPrefix[0] == 0) {

??????? // unnamed device

??????? szDeviceName[0] = 0;

??? } else {

??????? // named device, allocate room for its names

??????? StringCchPrintf(szDeviceName,MAXDEVICENAME,TEXT("%s%u"), lpszPrefix, dwIndex);

??????? if(dwLegacyIndex <= 9) {

??????????? // allocate room for name and null

??????????? StringCchPrintf(szLegacyName, MAXDEVICENAME, L"%s%u:", lpszPrefix, dwLegacyIndex);

????? ??????dwSize += (wcslen(szLegacyName) + 1) * sizeof(WCHAR);

??????? }

?

??????? // allocate room for name and null???????

??????? dwSize += (wcslen(szDeviceName) + 1) * sizeof(WCHAR);

??? }

?

??? // If the bus driver didn't allocate a name the device may still support the

??? // bus name interface -- use its device name (if present) just in case.

??? if(lpszBusName[0] == 0 && szDeviceName[0] != 0) {

??????? lpszBusName = szDeviceName;

??? }

???

??? // allocate room for the bus name

??? if(lpszBusName[0] != 0) {

??????? dwSize += (wcslen(lpszBusName) + 1) * sizeof(WCHAR);

??? }

?

??? // make room to store the device key as well

??? if(lpszDeviceKey != NULL) {

??????? dwSize += (wcslen(lpszDeviceKey) + 1) * sizeof(WCHAR);

??? }

???

??? // allocate the structure

??? if (!(lpdev = LocalAlloc(0, dwSize))) {

??????? DEBUGMSG(ZONE_WARNING, (_T("DEVICE!CreateDevice: couldn't allocate device structure/r/n")));

??????? dwStatus = ERROR_OUTOFMEMORY;

??? } else {

??????? LPCWSTR pEffType = NULL;

??????? LPWSTR psz = (LPWSTR) (((LPBYTE) lpdev) + sizeof(*lpdev));

??????? memset(lpdev, 0, dwSize);

??????? lpdev->dwId = dwId;

??????? lpdev->wFlags = 0;???????????

??????? lpdev->dwFlags = dwFlags;

??????? if(PSLGetCallerTrust() == OEM_CERTIFY_TRUST) {

??????????? lpdev->wFlags |= DF_TRUSTED_LOADER;

??????????? lpdev->hParent = hParent;

??????? }

??????? if (lpszPrefix[0] != 0) {

??????????? if(dwLegacyIndex <= 9) {

??????????????? lpdev->pszLegacyName = psz;

??????????????? wcscpy(lpdev->pszLegacyName, szLegacyName);

??????? ????????psz += wcslen(lpdev->pszLegacyName) + 1;

??????????? }

??????????? lpdev->pszDeviceName = psz;

??????????? wcscpy(lpdev->pszDeviceName, szDeviceName);

??????????? psz += wcslen(lpdev->pszDeviceName) + 1;

??????? }

??????? if(lpszBusName[0] != 0) {

??????????? lpdev->pszBusName = psz;

??????????? wcscpy(lpdev->pszBusName, lpszBusName);

??????????? psz += wcslen(lpszBusName) + 1;

??????? }

??????? if(lpszDeviceKey != NULL) {

??????????? lpdev->pszDeviceKey= psz;

??????????? wcscpy(lpdev->pszDeviceKey, lpszDeviceKey);

??????????? psz += wcslen(lpszDeviceKey) + 1;

??????? }

??????? if((dwFlags & DEVFLAGS_NAKEDENTRIES) == 0) {

??????????? if(lpszPrefix[0] != 0) {

??????????????? DEBUGCHK(lpszBusPrefix[0] == 0 || wcsicmp(lpszBusPrefix, lpszPrefix) == 0);

??????????????? pEffType = lpszPrefix;????? // use standard prefix decoration

??????????? } else if(lpszBusPrefix[0] != 0 && lpdev->pszBusName != NULL) {

??????????????? pEffType = lpszBusPrefix;?? // no standard prefix, use bus prefix decoration

????????? ??} else {

??????????????? if(lpdev->pszDeviceName != NULL) {

??????????????????? // device is expected to have a device or bus name, but we don't know

??????????????????? // how to look for its entry points

??????????????????? DEBUGMSG(ZONE_ACTIVE || ZONE_ERROR,

??????????????????????? (_T("DEVICE!CreateDevice: no entry point information for '%s' can't load '%s'/r/n"),

??????????????????????? lpszLib, lpdev->pszDeviceName));

??????????????????? dwStatus = ERROR_INVALID_FUNCTION;

??????????????? }

?????? ?????}

??????? }

??????? // 這里會去判斷Flags的值,決定是否使用Prefix

??????? if ((dwFlags & DEVFLAGS_LOAD_AS_USERPROC)) {

??????????? lpdev->hLib = NULL;

??????????? lpdev->dwData? = Reflector_Create(lpszDeviceKey, pEffType, lpszLib, dwFlags );

??????????? if (lpdev->dwData != 0 ) {

??????????????? lpdev->fnInit = NULL;

??????????????? lpdev->fnInitEx = (pInitExFn)Reflector_InitEx;

??????????????? lpdev->fnPreDeinit = (pDeinitFn)Reflector_PreDeinit;

??????????????? lpdev->fnDeinit = (pDeinitFn)Reflector_Deinit;

??????????????? lpdev->fnOpen = (pOpenFn)Reflector_Open;

??????????????? lpdev->fnPreClose = (pCloseFn)Reflector_PreClose;

??????????????? lpdev->fnClose = (pCloseFn)Reflector_Close;

??????????????? lpdev->fnRead = (pReadFn)Reflector_Read;

??????????????? lpdev->fnWrite = (pWriteFn)Reflector_Write;

??????????????? lpdev->fnSeek = (pSeekFn)Reflector_SeekFn;

??????????????? lpdev->fnControl = (pControlFn)Reflector_Control;

??????????????? lpdev->fnPowerup = (pPowerupFn)Reflector_Powerup;

??????????????? lpdev->fnPowerdn = (pPowerupFn)Reflector_Powerdn;

??????????? }

??????????? else {

??????????????? DEBUGMSG(ZONE_WARNING, (_T("DEVICE!CreateDevice: couldn't load(%s) to user mode!!/r/n"),lpszLib));

??????????????? dwStatus = ERROR_FILE_NOT_FOUND;

??????????? }

??????? }

??????? else {

??????????? DEBUGMSG(ZONE_ACTIVE, (_T("DEVICE!CreateDevice: loading driver DLL '%s'/r/n"), lpszLib));

??????????? // 這里去判斷的如何去加載Stream Driver,其實這里最終會影響到驅動DLL需要的內存的Page-inpage-out,這些不是這里要說的重點,暫且不說

??????????? lpdev->hLib =

??????????????? (dwFlags & DEVFLAGS_LOADLIBRARY) ? LoadLibrary(lpszLib) : LoadDriver(lpszLib);

??????????? if (!lpdev->hLib) {

??????????????? DEBUGMSG(ZONE_WARNING, (_T("DEVICE!CreateDevice: couldn't load '%s' -- error %d/r/n"),

??????????????????? lpszLib, GetLastError()));

???????? ???????dwStatus = ERROR_FILE_NOT_FOUND;

??????????? } else {

?? ?????????????// 最終如果配置為0x08,程序將會走到這里

??????????????? lpdev->fnInitEx = NULL;

??????????????? lpdev->fnInit = (pInitFn)GetDMProcAddr(pEffType,L"Init",lpdev->hLib);

??????????????? lpdev->fnPreDeinit = (pDeinitFn)GetDMProcAddr(pEffType,L"PreDeinit",lpdev->hLib);

??????????????? lpdev->fnDeinit = (pDeinitFn)GetDMProcAddr(pEffType,L"Deinit",lpdev->hLib);

??????????????? lpdev->fnOpen = (pOpenFn)GetDMProcAddr(pEffType,L"Open",lpdev->hLib);

??????????????? lpdev->fnPreClose = (pCloseFn)GetDMProcAddr(pEffType,L"PreClose",lpdev->hLib);

??????????????? lpdev->fnClose = (pCloseFn)GetDMProcAddr(pEffType,L"Close",lpdev->hLib);

??????????????? lpdev->fnRead = (pReadFn)GetDMProcAddr(pEffType,L"Read",lpdev->hLib);

??????????????? lpdev->fnWrite = (pWriteFn)GetDMProcAddr(pEffType,L"Write",lpdev->hLib);

??????????????? lpdev->fnSeek = (pSeekFn)GetDMProcAddr(pEffType,L"Seek",lpdev->hLib);

??????????????? lpdev->fnControl = (pControlFn)GetDMProcAddr(pEffType,L"IOControl",lpdev->hLib);

??????????????? lpdev->fnPowerup = (pPowerupFn)GetDMProcAddr(pEffType,L"PowerUp",lpdev->hLib);

??????????????? lpdev->fnPowerdn = (pPowerdnFn)GetDMProcAddr(pEffType,L"PowerDown",lpdev->hLib);

?

??????????????? // Make sure that the driver has an init and deinit routine.? If it is named,

??????????? ????// it must have open and close, plus at least one of the I/O routines (read, write

??????????????? // ioctl, and/or seek).? If a named driver has a pre-close routine, it must also

??????????????? // have a pre-deinit routine.

??????????????? if (!(lpdev->fnInit && lpdev->fnDeinit) ||

??????????????????? lpdev->pszDeviceName != NULL && (!lpdev->fnOpen ||

???????????????????????????????? !lpdev->fnClose ||

???????????????????????????????? (!lpdev->fnRead && !lpdev->fnWrite &&

?????????????????????????? ???????!lpdev->fnSeek && !lpdev->fnControl) ||

???????????????????????????????? (lpdev->fnPreClose && !lpdev->fnPreDeinit))) {

??????????????????? DEBUGMSG(ZONE_WARNING, (_T("DEVICE!CreateDevice: illegal entry point combination in driver DLL '%s'/r/n"),

??????????????????????? lpszLib));

??????????????????? dwStatus = ERROR_INVALID_FUNCTION;

??????????????? }

?

??????????????? if (!lpdev->fnOpen) lpdev->fnOpen = (pOpenFn) DevFileNotSupportedBool;

??????????????? if (!lpdev->fnClose) lpdev->fnClose = (pCloseFn) DevFileNotSupportedBool;

??????????????? if (!lpdev->fnControl) lpdev->fnControl = (pControlFn) DevFileNotSupportedBool;

??????????????? if (!lpdev->fnRead) lpdev->fnRead = (pReadFn) DevFileNotSupportedDword;

??????????????? if (!lpdev->fnWrite) lpdev->fnWrite = (pWriteFn) DevFileNotSupportedDword;

??????????????? if (!lpdev->fnSeek) lpdev->fnSeek = (pSeekFn) DevFileNotSupportedDword;

??????????? }

??????? }

??? }

?

??? // did everything go ok?

??? if(dwStatus != ERROR_SUCCESS) {

??????? if(lpdev != NULL) {

??????????? DeleteDevice(lpdev);

??????????? lpdev = NULL;

??????? }

??????? SetLastError(dwStatus);

??? }

?

??? DEBUGMSG(ZONE_ACTIVE || (dwStatus != ERROR_SUCCESS && ZONE_WARNING),

??????? (_T("CreateDevice: creation of type '%s', index %d, lib '%s' returning 0x%08x, error code %d/r/n"),

??????? lpszPrefix[0] != 0 ? lpszPrefix : _T("<unnamed>"), dwIndex, lpszLib, lpdev, dwStatus));

?

??? return lpdev;

}

//

// This routine is security check for dwInfo passed in by either RegistryDevice or ActiveDevice

DWORD CheckLauchDeviceParam(DWORD dwInfo)

{

??? if (CeGetCallerTrust() != OEM_CERTIFY_TRUST) { // Untrusted caller will do following.

??????? LPCTSTR lpActivePath = (LPCTSTR) dwInfo; // We assume it is Registry Path.

??????? if (lpActivePath) {

??????????? HKEY hActiveKey;

??????????? if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, lpActivePath, 0, 0, &hActiveKey) == ERROR_SUCCESS ) { // It is registry.

??????????????? // We need check Registry is in secure location.

??????????????? CE_REGISTRY_INFO regInfo;

??????????????? DWORD dwRet = ERROR_INVALID_PARAMETER;

??????????????? memset(&regInfo,0,sizeof(regInfo));

??????????????? regInfo.cbSize = sizeof(CE_REGISTRY_INFO);

??????????????? if (CeFsIoControl(NULL, FSCTL_GET_REGISTRY_INFO, &hActiveKey, sizeof(HKEY), &regInfo, sizeof(CE_REGISTRY_INFO), NULL, NULL)) { // Succeed

??????????????????? if (regInfo.dwFlags & CE_REG_INFO_FLAG_TRUST_PROTECTED) {

??????????????????????? dwRet = ERROR_SUCCESS;

??????????????????? }

??????????????? }

??????????????? RegCloseKey( hActiveKey );

??????????????? return dwRet;

??????????? }

??????? }

??? }

??? return ERROR_SUCCESS;?

}

???????? 另外,注冊表項”Flags”的值是函數I_ActivateDeviceEx()調用RegReadActivationValues()來獲取的。篇幅有限,這里不再對函數RegReadActivationValues()進行解釋。

???????? 其實注冊表項”Flags”的值很有用處,能夠控制加載過程中的很多行為。

2.電池電量更新的問題

???????? CE5.0中,默認情況下系統會每0.5s去獲取一次主電池和輔助電池的電量,其默認值得定義在文件battdrvr.c中,如下:

#define DEF_BATTERYPOLLTIMEOUT????????? 500???????? // in milliseconds

?

???????? 6.0中,可能微軟也覺得0.5s獲取一次電池電量有點變態,而且也沒有必要,所以改為5s去獲取一次電量,同樣通過宏定義進行定義。

// 5 Seconds for average delay of 2.5 seconds

#define DEF_BATTERYPOLLTIMEOUT????????? (5*1000)???????? // in milliseconds

???????? 當然,你可以通過注冊表項"PollInterval"去配置這個值,如下:

[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Battery]

"Prefix"="BAT"

"Dll"="battdrvr.dll"

"Flags"=dword:8????????????????????? ; DEVFLAGS_NAKEDENTRIES

"Order"=dword:45

"IClass"="{DD176277-CD34-4980-91EE-67DBEF3D8913}"

"PollInterval"=dword:1388

???????? 其實,就算是用戶去通過控制面板去查看電池電量,也沒有必要把這個時間設置的很短。再者,一般的手持設備上都會去調用API? GetSystemPowerStatusEx()去獲取電池電量百分比。

???????? 毫無疑問,將更新電池電量的時間配置的越大越好,可是有些時候,我們可能希望在用戶插入AC進行充電的時候,控制面板中的電池電量馬上有反應,而不是在等待5s鐘之后,這樣顯得產品更加人性化一點。這種情況下,可以通過使AC的插入產生一個中斷,然后把這個中斷和電池驅動MDD層中的線程BatteryThreadProc Event聯系起來,這樣就可以滿足插入AC,控制面板中的電池電量馬上就有反應的需求。

3.電池電量顯示不準確

???????? 最簡單的電池電量的獲取是通過當前AD值和滿電量AD值相比得到的。舉個例子,假設滿電量的時候AD值為100,當前的值為50,則當前的電量就是50/100*100% = 50%,并通過PDD層函數BatteryPDDGetStatus()返回給上層調用者。

???????? 實際使用中發現,電池電量為100%的時候很耐用,可是從電池電量80%左右的時候開始,電池電量很快就被消耗完畢。

???????? 為什么?

???????? 根本原因是,電池電量和電池電壓并不成正比,而AD轉換的結果恰巧反映的就是電池電壓。

???????? 了解了電池的充放電原理后發現,電池電量和電池電壓的關系是一條拋物線。接下來就有兩種改進的方法獲取電池電量:

???????? 第一種方法:得到電池電量和電池電壓的準確關系。

???????? 事先去測量電池電量和電池電壓的關系,得到這條拋物線的方程,從而得到準確的電池電量和電池電壓的關系。通常不是計算這條拋物線,而是將這條拋物線簡單的分隔成幾個段,近似的認為每一段是一條斜率恒定的直線,然后通過測量結果確定這幾條直線的斜率以及合時的分隔點。

???????? 做過衡器或者其它一些儀器儀表的朋友,對這種方法肯定不陌生,呵呵。

???????? 這種做法的最大缺點是,每更換一種電池都需要重新的去測時充放電曲線,比較麻煩。優點是不用增加硬件成本。

???????? 第二種方法:利用電源管理芯片。

???????? 這種方法沒用過,只是聽有人在論壇上討論過。利用一顆電源管理芯片去獲取電池電量,其原理是通過AD轉換值經過一套復雜的算法得到電量,搞不清楚,據說很好用。但是Cost呵呵

????????

?

總結

以上是生活随笔為你收集整理的电池驱动介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

亚洲视频99 | 日韩精品综合在线 | 国产精品原创av片国产免费 | 特级黄录像视频 | 亚洲精品高清视频 | 美女视频黄在线 | 综合天天 | 天天色天天操天天爽 | 欧美日韩精品免费观看视频 | 久久99久国产精品黄毛片入口 | 天天综合日日夜夜 | 亚洲精品乱码久久久久久蜜桃不爽 | 国产在线高清精品 | 99久久这里有精品 | 久久久久久久久久久黄色 | 中文字幕精品一区二区三区电影 | 97超碰免费在线 | 国产精品一区二区你懂的 | 成人av片免费观看app下载 | 久久理论片 | 欧美精品国产精品 | 国产999视频在线观看 | 国产精品s色 | 天天av综合网| av一区二区三区在线 | 亚洲好视频 | 91香蕉视频| 久久国产精品免费一区 | www.狠狠操.com | 亚洲黄色成人网 | 天天综合网国产 | 成人免费视频a | 国产精品视频 | 91精品国产高清自在线观看 | 中文字幕av在线免费 | 日韩综合一区二区 | 成人一级 | 99久久夜色精品国产亚洲 | 免费av大片 | 日韩精品免费一区二区在线观看 | 毛片永久免费 | 欧洲一区二区三区精品 | 精品爱爱 | 99精品视频在线观看 | 日韩在线中文字幕视频 | 中文字幕一二三区 | 日韩特黄av | 国产成人av福利 | 久久久久免费观看 | 久久99精品国产一区二区三区 | 国产色黄网站 | 国产麻豆精品在线观看 | 97在线看 | 99久久久久久国产精品 | 日韩在线观看电影 | 亚州日韩中文字幕 | 中文字幕免费高 | 国产精品99久久久久久武松影视 | 黄色av网站在线观看免费 | av网站有哪些 | 国内精品在线看 | www.一区二区三区 | 97日日碰人人模人人澡分享吧 | 婷婷色综合网 | 九草视频在线 | www.国产在线视频 | 嫩小bbbb摸bbb摸bbb| 国产麻豆精品久久 | 婷婷精品国产一区二区三区日韩 | 中文字幕一区二区三区在线观看 | 日韩欧美国产成人 | 成人影片免费 | 91在线视频免费观看 | 久草视频视频在线播放 | 最近更新好看的中文字幕 | 婷婷丁香六月天 | 激情五月网站 | 久久国产精品免费一区二区三区 | 国产在线第三页 | 在线免费观看国产 | 麻豆精品传媒视频 | 99综合影院在线 | 亚州精品天堂中文字幕 | 亚洲日本黄色 | 973理论片235影院9 | 国产精品久一 | 欧美在线aa | 成人欧美在线 | 亚洲午夜久久久久久久久久久 | 亚洲精品综合一二三区在线观看 | 人人爱爱 | 亚州日韩中文字幕 | 一区二区理论片 | 日韩亚洲在线视频 | 久久综合丁香 | 99久久99热这里只有精品 | 国内精品视频一区二区三区八戒 | 麻花豆传媒一二三产区 | 狠狠色丁婷婷日日 | 黄视频网站大全 | 日韩精品一区电影 | 欧美日韩国产一二 | 欧洲精品在线视频 | 97国产精品亚洲精品 | 夜夜躁日日躁狠狠久久88av | 天天干天天摸天天操 | 欧美日韩裸体免费视频 | 一区二区三区动漫 | 免费国产黄线在线观看视频 | 亚洲一区二区黄色 | 日韩欧美一区二区三区免费观看 | 有码中文字幕在线观看 | 91久久精品日日躁夜夜躁国产 | 久久五月婷婷丁香社区 | 国产视频在 | 黄色h在线观看 | 国产麻豆精品在线观看 | 久久久免费观看视频 | 久久精品人 | 超碰公开在线观看 | 国产精品一区二区62 | 久久影院精品 | 91免费日韩 | 日韩啪视频 | 日韩精品一区电影 | 欧美精品久久久久久久亚洲调教 | 综合久久久久 | 美女视频黄,久久 | 欧美国产日韩一区 | 中文字幕免费观看视频 | 日韩欧美精品在线观看视频 | 婷婷五综合 | 91亚洲网 | 国产在线播放一区二区 | 国内亚洲精品 | 色婷丁香 | 91av在线不卡 | 在线看日韩av | 国产 日韩 中文字幕 | 五月开心六月伊人色婷婷 | 久草免费在线视频观看 | 欧美在线观看视频一区二区三区 | 91片网| 中文字幕在线看视频 | 日韩免费一区 | 日韩免费看片 | 免费视频二区 | 911久久| 日韩精品视频网站 | 麻豆视频国产精品 | 久久九九免费视频 | 欧美一级免费黄色片 | 久久久久久久久久毛片 | 欧美日韩精品综合 | 高清在线观看av | 亚洲午夜精品在线观看 | 一区二区视频播放 | 国产午夜麻豆影院在线观看 | 国产精选在线观看 | 欧美一级久久久久 | 视频一区二区在线 | 久久国产免 | 国产一区二区在线影院 | 国产美女免费视频 | 亚洲成av人影片在线观看 | 天天干天天天天 | www.xxxx变态.com| 国产精品黑丝在线观看 | 999国内精品永久免费视频 | 久久av网 | 亚洲国产欧美在线看片xxoo | 精品 一区 在线 | 久久精品久久99 | 天天草网站| 国产精品久久久久av福利动漫 | 精品久久久久久国产 | 米奇影视7777 | 天堂av免费看 | 免费在线观看av不卡 | 国产精品九九九 | 激情黄色一级片 | av天天澡天天爽天天av | 91一区啪爱嗯打偷拍欧美 | 免费在线观看av不卡 | 久草在线中文视频 | 国产又粗又硬又长又爽的视频 | 视频国产区 | 国产99久久久国产精品成人免费 | 色婷婷激情四射 | 日本黄色大片儿 | 婷婷在线色 | 国产高清日韩欧美 | 91精品亚洲影视在线观看 | 免费a视频在线 | 麻豆久久久 | 一区二区av | 91av播放 | 93久久精品日日躁夜夜躁欧美 | 99久久99久久| 亚洲欧美综合 | 国产a级免费 | 国产尤物在线观看 | 国产黄色av网站 | 精品国产一区二区三区在线 | 国产欧美精品一区二区三区 | 欧洲av不卡 | 国产视频久久 | 亚洲深爱激情 | 色综合久久综合中文综合网 | 亚洲人片在线观看 | 精品1区二区 | 在线国产一区 | 婷婷色中文网 | 天天操天天添天天吹 | 视频二区在线视频 | 久久视频在线免费观看 | 久久a免费视频 | 午夜精品久久久久久久99 | 欧洲亚洲女同hd | 欧美伦理一区二区三区 | 九九99视频 | 久久综合婷婷国产二区高清 | 午夜av大片 | 色在线亚洲 | 精品国产一区二区三区噜噜噜 | 在线观看视频黄 | 中文字幕精品久久 | 欧美a在线免费观看 | 欧美91视频 | 久99久视频 | 五月天网页 | 国产精品久久一区二区三区, | 狠狠干激情 | 国产xvideos免费视频播放 | 久久久网址 | 国产成人精品久久亚洲高清不卡 | 69av国产 | 91一区二区在线 | 久草视频在线资源站 | 亚洲一二区精品 | 九九免费精品视频 | 日韩激情视频在线 | 成人黄色影片在线 | 国产精品一区二区在线观看 | 婷婷激情久久 | 视频高清 | 98精品国产自产在线观看 | 色黄久久久久久 | 精品国产午夜 | 日韩激情小视频 | 欧美污污网站 | 免费色视频 | 欧美国产不卡 | 国产亚洲精品久久久久久电影 | 久久免费视频国产 | 一区中文字幕电影 | 视频三区在线 | 国产不卡av在线 | 在线免费观看黄色 | 中文字幕中文中文字幕 | 国产日产亚洲精华av | 日韩欧美一区视频 | 国产美女久久久 | 久久久久久久久免费视频 | 亚洲国产精品久久 | 婷婷色综合色 | 欧美精品一区二区在线观看 | 一区二区三区三区在线 | 亚洲国产精品人久久电影 | 国内精品中文字幕 | 久久国产女人 | 久久国产精品二国产精品中国洋人 | 99久热在线精品 | 国产成人久久精品亚洲 | 天天天天爱天天躁 | 色综合久久久久综合体桃花网 | 人人爽人人爽av | 免费黄色在线网址 | 亚洲成人黄色 | 精品国产免费一区二区三区五区 | 一区二区三区四区精品视频 | 久草男人天堂 | 九九久久视频 | 国产在线播放一区 | 国产高清黄色 | 久草在线免费电影 | 久久久久国产精品午夜一区 | 免费观看的av网站 | 在线视频你懂 | 国产精品igao视频网入口 | 天天综合日日夜夜 | 天天色天天射天天综合网 | 国产91免费看| 男女激情免费网站 | 久99久精品| 国产午夜麻豆影院在线观看 | 美女黄视频免费 | 西西www4444大胆在线 | 国产成人精品电影久久久 | av免费电影在线 | 五月天婷婷狠狠 | 成人av播放 | 日韩欧美一区二区三区在线 | 免费看一级黄色大全 | 日本资源中文字幕在线 | 欧美日韩一二三四区 | 国产精品毛片久久久久久久 | 免费在线观看av网址 | 亚洲精品视频第一页 | 亚洲区视频在线 | 波多野结衣久久精品 | 免费看三片 | 国产亚洲精品日韩在线tv黄 | 精品一区二区三区在线播放 | 日韩视频在线不卡 | 在线观看日韩一区 | 欧美精品视 | 最近中文字幕 | 国产又黄又硬又爽 | 久久综合五月天婷婷伊人 | av电影亚洲 | 久久这里只有精品首页 | 91精品免费在线视频 | 91一区二区在线 | 久久99精品国产麻豆婷婷 | 九九免费视频 | 久色伊人 | 欧美日本一二三 | 国产精品初高中精品久久 | 欧美日在线 | 亚洲少妇xxxx| 色在线视频| 中文字幕日韩有码 | 国产亚洲欧美在线视频 | 天天综合视频在线观看 | 麻豆精品传媒视频 | 欧美a级片网站 | 日韩三级视频 | 激情综合电影网 | 香蕉视频网址 | 欧美在线99 | 超碰97免费观看 | 激情网在线观看 | v片在线播放 | 在线看片日韩 | 欧美日韩性生活 | 91免费网站在线观看 | 中文久草 | 97精品国产97久久久久久粉红 | 天天干,天天操,天天射 | 久久久久免费精品国产小说色大师 | 久久av中文字幕片 | 国产精品18久久久久久vr | 日韩在线观看一区 | 91久久精品日日躁夜夜躁国产 | 亚洲 欧美 91 | 免费h漫在线观看 | 伊人网av | 国产精品中文字幕在线 | 97热视频| 国产69久久久 | 日批视频在线播放 | 日韩一区二区三区观看 | 欧美午夜激情网 | 亚洲欧美日韩精品久久奇米一区 | 日韩精品久久久久久中文字幕8 | 婷婷色综合色 | 欧美一级艳片视频免费观看 | 国产二区视频在线观看 | 久久亚洲人 | 久久久国产精品一区二区三区 | 日韩欧美在线第一页 | 成人av免费在线播放 | 国产一区视频在线观看免费 | 人人看人人爱 | 欧美国产高清 | 精品欧美一区二区精品久久 | 亚洲 欧美 综合 在线 精品 | 日本精品一二区 | 日韩在线观看网址 | 久久伊人婷婷 | 中文成人字幕 | 91网站在线视频 | 五月婷婷网站 | 久久亚洲电影 | 精品96久久久久久中文字幕无 | 探花视频在线版播放免费观看 | 欧美亚洲精品在线观看 | 波多野结衣一区 | 视频福利在线观看 | 亚州av成人 | 日韩电影在线观看一区 | 欧美另类激情 | 久久手机视频 | 久久av不卡| 在线不卡中文字幕播放 | 国产91成人在在线播放 | 国产色网站 | 婷婷在线色| 国产精品影音先锋 | 97夜夜澡人人爽人人免费 | 国产高清一区二区 | 91久久奴性调教 | 国产97在线观看 | 成人小视频在线 | 成人在线视频免费观看 | 国产黄视频在线观看 | 久久伊人操 | 亚洲爱爱视频 | 久久久久国产a免费观看rela | 五月天天色 | 婷婷色综合 | 97在线视| 欧美一级片在线播放 | 国产999精品久久久久久麻豆 | 国产在线91在线电影 | 日韩电影久久 | 午夜视频在线观看欧美 | 在线只有精品 | 欧美性黑人 | 午夜精品久久久久久久久久久久 | 国产丝袜制服在线 | 999久久久久久久久6666 | 天天综合入口 | 一级片免费观看视频 | 婷婷射五月 | 免费亚洲精品 | 69xxxx欧美| 一级免费看 | 亚洲做受高潮欧美裸体 | 欧美日韩调教 | 国产美女黄网站免费 | 久久99精品久久久久久清纯直播 | 久久色中文字幕 | 婷婷亚洲激情 | 日韩a级黄色| 日韩欧美高清在线观看 | 久久99网站| 在线观看亚洲 | av电影免费在线看 | 免费三级在线 | 人人精久 | 视频高清 | www国产在线| 亚洲欧洲精品一区 | 亚洲精品ww| 天天插伊人| 成人亚洲精品国产www | 日韩高清免费观看 | 毛片1000部免费看 | 欧美日韩免费一区二区 | 免费视频一级片 | 91av短视频 | 2023亚洲精品国偷拍自产在线 | 免费观看完整版无人区 | 中文字幕色综合网 | adn—256中文在线观看 | 久久婷婷亚洲 | 91精品久久久久久久久久久久久 | 天天人人 | 久草在线免费看视频 | 日日干视频 | 久久99久国产精品黄毛片入口 | www国产一区 | 97色婷婷成人综合在线观看 | 91高清视频 | 国产精品亚洲片夜色在线 | 伊人网站| 日韩欧美高清不卡 | 亚洲精品欧美成人 | 视频在线观看一区 | 91原创在线观看 | 黄色成人av网址 | 日韩欧美一区二区三区视频 | 2018好看的中文在线观看 | 日本精品视频在线观看 | 在线观看av网 | 狠狠干狠狠色 | 在线国产91 | 尤物一区二区三区 | 在线a人片免费观看视频 | 欧美xxxxx在线视频 | 精品免费一区二区三区 | 欧美成人h版在线观看 | 波多野结衣一区二区 | 色噜噜在线观看 | 国产精品黄色 | 国产色在线观看 | 91在线中文| 久久婷婷国产色一区二区三区 | av在线小说 | 亚洲欧美精品在线 | 国产黄免费 | 免费男女羞羞的视频网站中文字幕 | 中文超碰字幕 | 日韩影视在线观看 | 国内成人精品2018免费看 | 国产视频首页 | av日韩av| 狠狠色狠狠色终合网 | 成人午夜电影在线观看 | 久久污视频| 草久中文字幕 | 狠狠干综合 | 91av资源在线 | 日韩中文字幕亚洲一区二区va在线 | 激情五月六月婷婷 | av中文字幕在线免费观看 | av中文字幕剧情 | 久久精品国产美女 | 绯色av一区 | 国产精品久久久久久久av大片 | 久久成人精品视频 | 国产精品久久久久久久午夜 | 91九色视频在线 | 欧美一级电影在线观看 | 丰满少妇对白在线偷拍 | 中文亚洲欧美日韩 | av中文字幕网 | 午夜在线看 | 四虎国产精品免费观看视频优播 | 国产九九精品视频 | 91丨九色丨高潮丰满 | 欧美成人播放 | 日韩丝袜| 成人精品一区二区三区中文字幕 | 六月激情| 中文字幕日韩伦理 | 国产精品一区二区你懂的 | 91免费观看视频网站 | 久久在线免费视频 | 免费看污网站 | 国产精品久久久久久久久久久杏吧 | 日韩av成人在线观看 | 狠狠干夜夜操天天爽 | 人人澡人人爽 | 国产理论一区二区三区 | 丁香影院在线 | 日本成人中文字幕在线观看 | 精品久久一 | 久久人人射 | 在线看片a| 91中文字幕网| 欧美精品一级视频 | 中文字幕av影院 | 伊人五月综合 | 精品国产一区二区三区免费 | 香蕉免费在线 | 国产成人精品国内自产拍免费看 | 三级黄色a | 亚洲一区二区精品视频 | 久草在线资源观看 | 91九色综合 | 成人资源站 | av观看久久久 | 精品久久久久久久久久岛国gif | 伊人婷婷综合 | 久久人人爽人人片 | 免费在线黄色av | 六月天色婷婷 | 九九影视理伦片 | 国产精品美女 | 美女网站视频免费黄 | 色婷婷www | 精品在线观看视频 | 在线精品视频免费播放 | 丁香视频在线观看 | 亚洲另类视频在线观看 | 久久免费国产视频 | 91九色老| 国产黄色一级片在线 | 99精品在线播放 | 免费看日韩 | 日产乱码一二三区别在线 | 一区二区在线不卡 | 日批视频 | 日韩精品免费一区二区在线观看 | 国产精品手机播放 | 97超碰免费在线 | 精品在线亚洲视频 | 国模一区二区三区四区 | 性色大片在线观看 | 一级电影免费在线观看 | 国产精品入口传媒 | 午夜婷婷在线播放 | 欧美成人黄色 | 国产精品18久久久久久vr | 最近中文字幕免费视频 | 九九热视频在线播放 | 久久精品99国产国产 | 美女福利视频 | 久久国产精品第一页 | 九色琪琪久久综合网天天 | 国产精品第二页 | 欧美在线视频不卡 | 久久人人爽人人片av | 久久手机看片 | 在线免费色 | 免费精品在线观看 | 日日夜夜人人天天 | 中文字幕在线看视频国产 | 热久久最新地址 | 91精品久久久久久久91蜜桃 | 中文字幕亚洲高清 | 午夜三级福利 | 久久久激情网 | 最新国产在线视频 | 久久夜色精品国产欧美一区麻豆 | 日韩大片在线免费观看 | 天天色天天射天天综合网 | 成年人电影免费看 | 伊人狠狠色 | 午夜体验区 | 中文av网站 | 欧美日韩亚洲第一 | 高清av免费观看 | 人人爽人人 | 欧美日本啪啪无遮挡网站 | 久草在线中文视频 | 欧美性生爱 | 久久婷五月| 亚洲天堂在线观看完整版 | 麻豆视频一区 | 国产成人精品一区二 | 你操综合 | 国产精品毛片久久久 | 天天爱天天射 | 欧美激情精品久久久 | 五月婷婷六月丁香 | 97在线免费 | 国产成人综合精品 | 婷婷综合伊人 | 日日插日日干 | 国产精国产精品 | 一区二区三区视频网站 | 91在线网址 | 黄色国产在线观看 | 99激情网 | 亚洲日本在线一区 | 久青草视频在线观看 | 日韩av一区二区三区四区 | 日韩理论片在线观看 | 天天夜夜亚洲 | 高清一区二区三区 | 亚洲91av| 精品亚洲va在线va天堂资源站 | 精品久久1| 久久精品资源 | 国产成人精品一区二三区 | 丁香六月色 | 亚洲精品视频国产 | 久久福利在线 | 麻豆视频在线观看免费 | 天天射综合网站 | 超级碰碰视频 | 国产自在线观看 | 97av视频在线观看 | 99福利影院 | 99热亚洲精品 | 五月天九九 | 在线看片中文字幕 | 国产一在线精品一区在线观看 | 久草在线免费看视频 | 欧美日韩国产一区二区在线观看 | 成年人在线免费看 | 国产在线观看一区 | 久久综合五月天婷婷伊人 | 91精品久久久久久久久 | 日韩三级免费 | 99精品国自产在线 | av色一区| 日本性xxxxx 亚洲精品午夜久久久 | 免费一级日韩欧美性大片 | 欧美无极色 | 精品国产一区二区三区在线 | 日日操天天操狠狠操 | 可以免费观看的av片 | 久久这里只有精品首页 | 香蕉影院在线 | 成人一区不卡 | 亚洲国产精品成人精品 | 国产高清av免费在线观看 | 免费又黄又爽视频 | 久久久久网址 | 中文字幕乱码日本亚洲一区二区 | 久久久免费精品国产一区二区 | 中国一级片在线观看 | 国产精品都在这里 | 香蕉网在线观看 | 久久色在线播放 | 久要激情网 | 日本一区二区三区免费观看 | 黄色aaa级片 | 日本性久久 | 91av网站在线观看 | 久草电影免费在线观看 | 韩国精品在线 | 国产亚洲精品久久久久久无几年桃 | 96av麻豆蜜桃一区二区 | 久久久久久久18 | 亚洲日本中文字幕在线观看 | 久草在线免费在线观看 | 麻豆视屏 | 亚洲午夜久久久久久久久久久 | 日韩高清 一区 | 亚洲免费不卡 | 久久久久久久久久伊人 | 日韩av片无码一区二区不卡电影 | 久久久久国产一区二区三区 | 亚洲毛片视频 | 日韩丝袜在线 | 青青草视频精品 | 超碰伊人网 | 成人免费一级片 | 国产一区二区三区午夜 | 亚洲欧美观看 | 精品久久久久久综合 | 91大神精品视频在线观看 | 在线免费观看国产 | 色黄视频免费观看 | 一区二区观看 | 久久国产视频网站 | 人人干狠狠干 | 国产精品久久久久久久久婷婷 | 国产一级二级视频 | 国产一区二区久久久久 | 亚洲视频在线观看 | 日日夜夜中文字幕 | 成年人免费观看国产 | 免费久久99精品国产婷婷六月 | 99热在线国产 | 日日爱网址 | 欧美精品在线观看一区 | 碰碰影院 | 久久午夜精品影院一区 | 97色综合| 视频在线国产 | 色开心| 亚洲福利精品 | 中文字幕视频一区 | 91九色蝌蚪 | 永久免费精品视频网站 | 成人欧美日韩国产 | 婷婷色综合色 | 81国产精品久久久久久久久久 | 在线观看免费中文字幕 | 亚洲精品tv久久久久久久久久 | 国内小视频在线观看 | 欧美日韩在线网站 | 国产精品亚洲成人 | a视频免费在线观看 | 日本在线精品视频 | 免费黄色av | 综合久久精品 | www免费网站在线观看 | 国产精品成人在线观看 | 国产精品一区二区无线 | 一色av| 黄色一级在线观看 | 一区二区中文字幕在线观看 | 色狠狠一区二区 | 精品国产乱子伦一区二区 | 国产1区在线 | 少妇自拍av| 欧美精品中文在线免费观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久免费电影 | 国产免费久久精品 | 91九色在线视频 | 精品国产精品久久 | 美女视频黄免费的 | 久久呀 | 99免费看片 | 一区二区三区三区在线 | 国产精品精品久久久 | 国产精品日韩在线 | 欧美一级免费片 | 国产在线专区 | 国产精品一区二区三区在线播放 | 超级碰视频 | 五月天婷婷丁香花 | 日本视频高清 | 亚洲欧美国内爽妇网 | 玖玖色在线观看 | 国产免费久久久久 | 欧美激情视频一区二区三区免费 | 97人人模人人爽人人喊中文字 | 91.精品高清在线观看 | 99精品国产兔费观看久久99 | 美女黄视频免费看 | 欧美精品网站 | av在线影视| 日韩伦理一区二区三区av在线 | av综合站 | 99久久99久国产黄毛片 | 在线视频 成人 | 久草97| 亚洲精品高清一区二区三区四区 | 久久艹国产 | 超碰激情在线 | 九九久久久| 五月网婷婷 | 中文字幕一区二区三区在线播放 | 国产精品不卡视频 | 国产精品久久99综合免费观看尤物 | wwwwww国产| 日日干av | 一区精品久久 | wwwww.国产 | 日本黄色一级电影 | 国产精品 亚洲精品 | av免费网页| 99热这里只有精品国产首页 | 四虎8848免费高清在线观看 | 黄色大全在线观看 | 成人精品一区二区三区中文字幕 | 日韩欧美一区视频 | 色橹橹欧美在线观看视频高清 | 亚洲视频一区二区三区在线观看 | 日本婷婷色| 亚洲黄色小说网址 | 福利视频入口 | 亚洲综合视频在线 | 人人看人人草 | 最近中文字幕视频完整版 | 最近中文字幕免费大全 | 国产精品久久久久永久免费 | 免费高清在线观看成人 | 狠狠躁日日躁夜夜躁av | 亚洲国产免费网站 | 在线高清一区 | 五月婷影院| 国产在线理论片 | 天天爱av导航 | 久久精品人人做人人综合老师 | 九色在线视频 | 91毛片在线 | 国产在线999| 韩日色视频 | 91在线看黄 | 久久黄网站 | 久久福利综合 | 天天爱天天草 | 色国产精品一区在线观看 | 99一级片| 国产亚洲免费的视频看 | 欧美另类网站 | 91麻豆精品一区二区三区 | 欧美a级免费视频 | 亚洲成人精品国产 | 国产成人综合精品 | 国产一区二区精品91 | 99久久精品日本一区二区免费 | 中文字幕精品一区二区三区电影 | 天堂在线成人 | 五月天开心 | 日韩中文字幕免费电影 | 免费精品人在线二线三线 | 欧美日韩1区 | 欧美专区亚洲专区 | 99视频在线观看一区三区 | 玖玖视频 | 国模精品一区二区三区 | 日韩成人xxxx | 西西www4444大胆在线 | 成人av网站在线播放 | 免费能看的黄色片 | 日日夜夜中文字幕 | 国产美女永久免费 | 欧美日韩在线视频免费 | 国产黄色免费看 | 婷婷激情综合 | 91麻豆精品国产91久久久久久 | 九九久久影院 | 中文成人字幕 | av在线免费观看网站 | 国产在线精品国自产拍影院 | 人人插人人插 | 草久久久久久 | 免费又黄又爽的视频 | 91精品久久久久久久久久久久久 | 99久热在线精品视频观看 | 黄网站免费大全入口 | 日韩中文字幕国产 | 99精品在线观看视频 | 国产福利91精品一区二区三区 | 亚洲精品国产免费 | 亚洲成aⅴ人片久久青草影院 | 久久免费毛片视频 | 日产中文字幕 | 免费在线黄色av | 国产91对白在线播 | 97超碰人人澡 | 国产精品女主播一区二区三区 | 国产丝袜制服在线 | 日韩欧美高清免费 | 日本在线观看一区 | 国产成人在线免费观看 | 国产精国产精品 | 国产精品久久精品国产 | 久久免费一| 在线精品亚洲一区二区 | 成人午夜网 | 亚洲国产午夜精品 | 特级西西444www大精品视频免费看 | 色婷五月天 | 在线观看国产91 | 久久在线电影 | 久久综合免费视频影院 | 91网页版免费观看 | 99视频偷窥在线精品国自产拍 | 伊人超碰在线 | 综合婷婷丁香 | 五月丁香 | 久久精品久久99 | 日本在线观看黄色 | 国产视频观看 | 国产超碰在线观看 | 成人一级片在线观看 | 日韩免费视频一区二区 | 中文字幕乱视频 | 国产最新福利 | 日本久久免费视频 | 婷婷久久综合九色综合 | www.色五月| 久久久久久久久久久久av | 成人在线视频观看 | 99久久久久久久久久 | 人人玩人人添人人 | 黄免费在线观看 | 日韩欧美在线观看一区二区三区 | 中文字幕第一页在线播放 | 999久久久精品视频 日韩高清www | 久草在线视频网站 | 黄色av电影网 | 中文字幕视频网 | 伊人va| 久久精品中文字幕免费mv | 日韩av电影中文字幕 | 中文字幕网站 | 五月天久久久久久 | 最近中文字幕免费 | 天堂av色婷婷一区二区三区 | 国产精品18videosex性欧美 | 欧美一区二区三区在线播放 | 在线看国产一区 | 天天操导航 | 精品一区二区免费视频 | 久久久久成人免费 | 国产精品系列在线播放 | 免费视频成人 | 国产激情小视频在线观看 | 免费日韩电影 | 久久欧美综合 | 日本二区三区在线 | 蜜桃视频日韩 | 五月天婷亚洲天综合网鲁鲁鲁 | 夜夜夜影院| 欧美日韩国产亚洲乱码字幕 | 婷婷激情五月综合 | 日韩在线视频精品 | 国产99久久九九精品 | 久草91视频 | 综合色中色| 99精品久久精品一区二区 | 中文字幕第一 | 麻豆视频免费在线播放 | 久久激情视频 久久 | 免费观看mv大片高清 | 国产福利免费在线观看 | 国产精品理论在线观看 | 国产一线二线三线在线观看 | 久草网站| av中文在线观看 | 国产视频不卡一区 | 中文字幕 91| www.黄色小说.com | 香蕉精品在线观看 | 国产精品涩涩屋www在线观看 | 国产精品私拍 | 999热线在线观看 | 国产男男gay做爰 | 成人av资源在线 | 久草在线免费电影 | 国产黄在线 | 成人欧美一区二区三区黑人麻豆 | 国产成人高清在线 | 欧美韩日精品 | 久久伊人国产精品 | 久久综合成人网 | 欧美激情精品久久久久久免费 | 伊人天天综合 | 久久在线视频在线 | 深爱婷婷 | 成人黄色电影在线播放 | 99色在线观看视频 | 激情综合五月天 | 911香蕉 |