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

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

?? supsvc.cpp

?? ril source code for Windows CE
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
//
// 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.
//
/*++
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:

supsvc.cpp

Abstract:


Notes:


--*/


#include "precomp.h"


//
// Information classes
//
const DWORD g_rgdwInfoClasses[] =
{
    RIL_INFOCLASS_VOICE,            // 1  = 2^0
    RIL_INFOCLASS_DATA,             // 2  = 2^1
    RIL_INFOCLASS_FAX,              // 4  = 2^2
    RIL_INFOCLASS_SMS,              // 8  = 2^3
    RIL_INFOCLASS_DATACIRCUITSYNC,  // 16 = 2^4
    RIL_INFOCLASS_DATACIRCUITASYNC, // 32 = 2^5
    RIL_INFOCLASS_PACKETACCESS,     // 32 = 2^6
    RIL_INFOCLASS_PADACCESS,        // 64 = 2^7
};
const size_t fInfoClassesEcount = (sizeof(g_rgdwInfoClasses) / sizeof(DWORD));

//
// CallerID, DialedID, Closed User Group status values
//
static const DWORD g_rgdwSupSvcStats[] =
{
    RIL_SVCSTAT_DISABLED,           // 0
    RIL_SVCSTAT_ENABLED,            // 1
};
#define NUM_SUPSVCSTATS     (sizeof(g_rgdwSupSvcStats) / sizeof(DWORD))

//
// HideID status values
//
static const DWORD g_rgdwHideIDStats[] =
{
    RIL_SVCSTAT_DEFAULT,            // 0
    RIL_SVCSTAT_ENABLED,            // 1
    RIL_SVCSTAT_DISABLED,           // 2
};
#define NUM_HIDEIDSTATS   (sizeof(g_rgdwHideIDStats) / sizeof(DWORD))

//
// CallerID and DialedID provisioning values
//
static const DWORD g_rgdwSupSvcProv[] =
{
    RIL_SVCPROV_NOTPROVISIONED,     // 0
    RIL_SVCPROV_PROVISIONED,        // 1
    RIL_SVCPROV_UNKNOWN,            // 2
};
#define NUM_SUPSVCPROV      (sizeof(g_rgdwSupSvcProv) / sizeof(DWORD))


//
// HideID provisioning values
//
static const DWORD g_rgdwHideIDProv[] =
{
    RIL_SVCPROV_NOTPROVISIONED,     // 0
    RIL_SVCPROV_PROVISIONED,        // 1
    RIL_SVCPROV_UNKNOWN,            // 2
    RIL_SVCPROV_TEMPMODERESTRICTED, // 3
    RIL_SVCPROV_TEMPMODEALLOWED,    // 4
};
#define NUM_HIDEIDPROV   (sizeof(g_rgdwHideIDProv) / sizeof(DWORD))


//
// Closed User Group info values
//
static const DWORD g_rgdwClosedGroupInfos[] =
{
    RIL_CUGINFO_NONE,               // 0
    RIL_CUGINFO_SUPPRESSOA,         // 1
    RIL_CUGINFO_SUPRESSPREF,        // 2
    RIL_CUGINFO_SUPPRESSOAANDPREF,  // 3
};
#define NUM_CLOSEDGROUPINFOS    (sizeof(g_rgdwClosedGroupInfos) / sizeof(DWORD))


//
// Call Forwarding Reasons
//
static const DWORD g_rgdwFwdReasons[] =
{
    RIL_FWDREASON_UNCONDITIONAL,    // 0
    RIL_FWDREASON_MOBILEBUSY,       // 1
    RIL_FWDREASON_NOREPLY,          // 2
    RIL_FWDREASON_UNREACHABLE,      // 3
    RIL_FWDREASON_ALLFORWARDING,    // 4
    RIL_FWDREASON_ALLCONDITIONAL,   // 5
};
#define NUM_FWDREASONS          (sizeof(g_rgdwFwdReasons) / sizeof(DWORD))

static BOOL g_fAllowEnableHideCallerId = TRUE;
extern HRESULT ParseGetCallBarringStatus(LPCSTR szRsp, void*& pBlob, UINT& cbBlob);

//
//
//
static HRESULT ParseGetCallerIdSettings(LPCSTR szRsp, void*& pBlob, UINT& cbBlob)
{
    FUNCTION_TRACE(ParseGetCallerIdSettings);
    UINT nValue;
    RILCALLERIDSETTINGS* prcids = NULL;
    HRESULT hr = S_OK;

    pBlob = NULL;
    cbBlob = 0;

    prcids = (RILCALLERIDSETTINGS*)AllocBlob(sizeof(RILCALLERIDSETTINGS));
    if (!prcids) {
        hr = E_OUTOFMEMORY;
        goto Error;
    }
    memset(prcids, 0x00, sizeof(RILCALLERIDSETTINGS));
    prcids->cbSize = sizeof(RILCALLERIDSETTINGS);

    // Parse "<prefix>+CLIP: <status>"
    if (!ParseRspPrefix(szRsp, szRsp)                  ||
        !MatchStringBeginning(szRsp, "+CLIP: ", szRsp) ||
        !ParseUInt(szRsp, TRUE, nValue, szRsp)) {
        hr = E_FAIL;
        goto Error;
    }

    if (NUM_SUPSVCSTATS > nValue) {
        prcids->dwStatus = g_rgdwSupSvcStats[nValue];
    } else {
        prcids->dwStatus = RIL_SVCSTAT_UNKNOWN;
    }
    prcids->dwParams |= RIL_PARAM_CIDS_STATUS;

    // cache this value because the radio does not persist it across reboots or radio resets
    g_dwLastCLIP = nValue;
    SetRegistryDWORD(HKEY_LOCAL_MACHINE, g_tszRegKeyRIL, TEXT("LastCLIP"), g_dwLastCLIP);
    DEBUGMSG(ZONE_TRACE, (TEXT("RILDrv : t : RILDrv_SetCallerIdStatus : Saved LastCLIP=0x%x\r\n"),g_dwLastCLIP));
    

    // Parse ",<provisioning><postfix>"
    if (!MatchStringBeginning(szRsp, ",", szRsp) ||
        !ParseUInt(szRsp, TRUE, nValue, szRsp)   ||
        !ParseRspPostfix(szRsp, szRsp)) {
        hr = E_FAIL;
        goto Error;
    }
    if (NUM_SUPSVCPROV > nValue) {
        prcids->dwProvisioning = g_rgdwSupSvcProv[nValue];
    } else {
        prcids->dwProvisioning = RIL_SVCPROV_UNKNOWN;
    }
    prcids->dwParams |= RIL_PARAM_CIDS_PROVISIONING;

    pBlob = (void*)prcids;
    cbBlob = sizeof(RILCALLERIDSETTINGS);

Error:
    if (FAILED(hr)) {
        FreeBlob(prcids);
    }
    return hr;
}


//
//
//
HRESULT RILDrv_GetCallerIdSettings(DWORD dwParam)
{
    FUNCTION_TRACE(RILDrv_GetCallerIdSettings);
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle) {
        hr = E_FAIL;
        goto Error;
    }

    if (!QueueCmd(pHandle, "AT+CLIP?\r", CMDOPT_NONE, APIID_GETCALLERIDSETTINGS, ParseGetCallerIdSettings, NULL, hr)) {
        hr = E_FAIL;
        goto Error;
    }

Error:
    return hr;
}


//
//
//
HRESULT RILDrv_SetCallerIdStatus(DWORD dwParam, DWORD dwStatus)
{
    FUNCTION_TRACE(RILDrv_SetCallerIdStatus);
    UINT i;
    UINT nValue;
    char szCmd[MAX_PATH];
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = (CRilInstanceHandle*)dwParam;
    if (!pHandle) {
        hr = E_FAIL;
        goto Error;
    }

    for (i = 0; i < NUM_SUPSVCSTATS; i++) {
        if (dwStatus == g_rgdwSupSvcStats[i]) {
            nValue = i;
            break;
        }
    }
    if (NUM_SUPSVCSTATS == i) {
        hr = E_INVALIDARG;
        goto Error;
    }

    (void)_snprintfz(szCmd, MAX_PATH, "AT+CLIP=%d\r", nValue);
    if (!QueueCmd(pHandle, szCmd, CMDOPT_NONE, APIID_SETCALLERIDSTATUS, NULL, NULL, hr)) {
        hr = E_FAIL;
        goto Error;
    }

    // cache this value because the radio does not persist it across reboots or radio resets
    g_dwLastCLIP = nValue;
    SetRegistryDWORD(HKEY_LOCAL_MACHINE, g_tszRegKeyRIL, TEXT("LastCLIP"), g_dwLastCLIP);
    DEBUGMSG(ZONE_TRACE, (TEXT("RILDrv : t : RILDrv_SetCallerIdStatus : Saved LastCLIP=0x%x\r\n"),g_dwLastCLIP));
    

Error:
    return hr;
}


//
//
//
static HRESULT ParseGetHideIdSettings(LPCSTR szRsp, void*& pBlob, UINT& cbBlob)
{
    FUNCTION_TRACE(ParseGetHideIdSettings);
    UINT nValue;
    RILHIDEIDSETTINGS* prhids = NULL;
    HRESULT hr = S_OK;

    pBlob = NULL;
    cbBlob = 0;

    prhids = (RILHIDEIDSETTINGS*)AllocBlob(sizeof(RILHIDEIDSETTINGS));
    if (!prhids) {
        hr = E_OUTOFMEMORY;
        goto Error;
    }
    memset(prhids, 0x00, sizeof(RILHIDEIDSETTINGS));
    prhids->cbSize = sizeof(RILHIDEIDSETTINGS);

    // Parse "<prefix>+CLIR: <status>"
    if (!ParseRspPrefix(szRsp, szRsp)                  ||
        !MatchStringBeginning(szRsp, "+CLIR: ", szRsp) ||
        !ParseUInt(szRsp, TRUE, nValue, szRsp)) {
        hr = E_FAIL;
        goto Error;
    }
    if (NUM_HIDEIDSTATS > nValue) {
        prhids->dwStatus = g_rgdwHideIDStats[nValue];
    } else {
        prhids->dwStatus = RIL_SVCSTAT_UNKNOWN;
    }
    prhids->dwParams |= RIL_PARAM_HIDS_STATUS;

    // cache this value because the radio does not persist it across reboots or radio resets
    g_dwLastCLIR = nValue;
    SetRegistryDWORD(HKEY_LOCAL_MACHINE, g_tszRegKeyRIL, TEXT("LastCLIR"), g_dwLastCLIR);
    DEBUGMSG(ZONE_TRACE, (TEXT("RILDrv : t : ParseGetHideIdSettings : Saved LastCLIR=0x%x\r\n"),g_dwLastCLIP));  

    // Parse ",<provisioning><postfix>"
    if (!MatchStringBeginning(szRsp, ",", szRsp) ||
        !ParseUInt(szRsp, TRUE, nValue, szRsp)   ||
        !ParseRspPostfix(szRsp, szRsp)) {
        hr = E_FAIL;
        goto Error;
    }
    if (NUM_HIDEIDPROV > nValue) {
        prhids->dwProvisioning = g_rgdwHideIDProv[nValue];
    } else {
        prhids->dwProvisioning = RIL_SVCPROV_UNKNOWN;
    }
    prhids->dwParams |= RIL_PARAM_HIDS_PROVISIONING;

    if (RIL_SVCPROV_NOTPROVISIONED == prhids->dwProvisioning) {
        g_fAllowEnableHideCallerId = FALSE;
    } else {
        g_fAllowEnableHideCallerId = TRUE;
    }

    pBlob = (void*)prhids;
    cbBlob = sizeof(RILHIDEIDSETTINGS);

Error:
    if (FAILED(hr)) {
        FreeBlob(prhids);
    }
    return hr;
}


//
//
//
HRESULT RILDrv_GetHideIdSettings(DWORD dwParam)
{
    FUNCTION_TRACE(RILDrv_GetHideIdSettings);
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle) {
        hr = E_FAIL;
        goto Error;
    }

    if (!QueueCmd(pHandle, "AT+CLIR?\r", CMDOPT_NONE, APIID_GETHIDEIDSETTINGS, ParseGetHideIdSettings, NULL, hr)) {
        hr = E_FAIL;
        goto Error;
    }

Error:
    return hr;
}


//
//
//
HRESULT RILDrv_SetHideIdStatus(DWORD dwParam, DWORD dwStatus)
{
    FUNCTION_TRACE(RILDrv_SetHideIdStatus);
    UINT i;
    UINT nValue;
    char szCmd[MAX_PATH];
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle) {
        hr = E_FAIL;
        goto Error;
    }

    //do not allow CLIR invocation if it is not provisioned
    if ((RIL_SVCSTAT_ENABLED == dwStatus) && !g_fAllowEnableHideCallerId) {
        hr = RIL_E_SVCNOTSUBSCRIBED;
        goto Error;
    }

    for (i = 0; i < NUM_HIDEIDSTATS; i++) {
        if (dwStatus == g_rgdwHideIDStats[i]) {
            nValue = i;
            break;
        }
    }
    if (NUM_HIDEIDSTATS == i) {
        hr = E_INVALIDARG;
        goto Error;
    }

    (void)_snprintfz(szCmd, MAX_PATH, "AT+CLIR=%u\r", nValue);
    if (!QueueCmd(pHandle, szCmd, CMDOPT_NONE, APIID_SETHIDEIDSTATUS, NULL, NULL, hr)) {
        hr = E_FAIL;
        goto Error;
    }

    // cache this value because the radio does not persist it across reboots or radio resets
    g_dwLastCLIR = nValue;
    SetRegistryDWORD(HKEY_LOCAL_MACHINE, g_tszRegKeyRIL, TEXT("LastCLIR"), g_dwLastCLIR);
    DEBUGMSG(ZONE_TRACE, (TEXT("RILDrv : t : RILDrv_SetHideIdStatus : Saved LastCLIR=0x%x\r\n"),g_dwLastCLIP));

Error:
    return hr;
}


//
//
//
static HRESULT ParseGetDialedIdSettings(LPCSTR szRsp, void*& pBlob, UINT& cbBlob)
{
    FUNCTION_TRACE(ParseGetDialedIdSettings);
    UINT nValue;
    RILDIALEDIDSETTINGS* prdids = NULL;
    HRESULT hr = S_OK;

    pBlob = NULL;
    cbBlob = 0;

    prdids = (RILDIALEDIDSETTINGS*)AllocBlob(sizeof(RILDIALEDIDSETTINGS));
    if (!prdids) {
        hr = E_OUTOFMEMORY;
        goto Error;
    }
    memset(prdids, 0x00, sizeof(RILDIALEDIDSETTINGS));
    prdids->cbSize = sizeof(RILDIALEDIDSETTINGS);

    // Parse "<prefix>+COLP: <status>"
    if (!ParseRspPrefix(szRsp, szRsp)                  ||
        !MatchStringBeginning(szRsp, "+COLP: ", szRsp) ||
        !ParseUInt(szRsp, TRUE, nValue, szRsp)) {
        hr = E_FAIL;
        goto Error;
    }

#ifdef RIL_PARAM_DIDS_STATUS
    if (NUM_SUPSVCSTATS > nValue) {
        prdids->dwStatus = g_rgdwSupSvcStats[nValue];
    } else {
        prdids->dwStatus = RIL_SVCSTAT_UNKNOWN;
    }
    prdids->dwParams |= RIL_PARAM_DIDS_STATUS;
#endif

    // Parse ",<provisioning><postfix>"
    if (!MatchStringBeginning(szRsp, ",", szRsp) ||
        !ParseUInt(szRsp, TRUE, nValue, szRsp)   ||
        !ParseRspPostfix(szRsp, szRsp)) {
        hr = E_FAIL;
        goto Error;
    }
    if (NUM_SUPSVCPROV > nValue) {
        prdids->dwProvisioning = g_rgdwSupSvcProv[nValue];
    } else {
        prdids->dwProvisioning = RIL_SVCPROV_UNKNOWN;
    }
    prdids->dwParams |= RIL_PARAM_DIDS_PROVISIONING;

    pBlob = (void*)prdids;
    cbBlob = sizeof(RILDIALEDIDSETTINGS);

Error:
    if (FAILED(hr)) {
        FreeBlob(prdids);
    }
    return hr;
}


//
//
//
HRESULT RILDrv_GetDialedIdSettings(DWORD dwParam)
{
    FUNCTION_TRACE(RILDrv_GetDialedIdSettings);
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle) {
        hr = E_FAIL;
        goto Error;
    }

    if (!QueueCmd(pHandle, "AT+COLP?\r", CMDOPT_NONE, APIID_GETDIALEDIDSETTINGS, ParseGetDialedIdSettings, NULL, hr)) {
        hr = E_FAIL;
        goto Error;
    }

Error:
    return hr;
}

//
//
//
HRESULT RILDrv_SetDialedIdStatus(DWORD dwParam, DWORD dwStatus)
{
    FUNCTION_TRACE(RILDrv_SetDialedIdStatus);
    UINT i;
    UINT nValue;
    char szCmd[MAX_PATH];
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = (CRilInstanceHandle*)dwParam;
    if (!pHandle) {
        hr = E_FAIL;
        goto Error;
    }

    for (i = 0; i < NUM_SUPSVCSTATS; i++) {
        if (dwStatus == g_rgdwSupSvcStats[i]) {
            nValue = i;
            break;
        }
    }
    if (NUM_SUPSVCSTATS == i) {
        hr = E_INVALIDARG;
        goto Error;
    }

    (void)_snprintfz(szCmd, MAX_PATH, "AT+COLP=%d\r", nValue);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91网上在线视频| 中文一区一区三区高中清不卡| 欧美一区二区大片| 国产精品久久久久9999吃药| 亚洲国产裸拍裸体视频在线观看乱了| 裸体在线国模精品偷拍| www..com久久爱| 精品99999| 天天操天天色综合| 99精品国产视频| 久久久精品免费观看| 亚洲妇女屁股眼交7| 成人亚洲精品久久久久软件| 日韩一区二区在线看片| 日韩伦理av电影| 国产精品一区二区不卡| 日韩午夜av电影| 亚洲丶国产丶欧美一区二区三区| 国产mv日韩mv欧美| 久久久久久久久久久久久夜| 美女看a上一区| 欧美日韩激情一区二区三区| 亚洲人成网站色在线观看| 国产精品一区二区免费不卡| 精品国产免费一区二区三区四区| 天天综合天天综合色| 在线看国产日韩| 亚洲伦理在线精品| a美女胸又www黄视频久久| 国产亚洲一区二区三区四区| 久久99精品国产.久久久久久| 欧美精品久久天天躁| 天天综合网天天综合色| 51精品国自产在线| 爽好久久久欧美精品| 欧美精三区欧美精三区| 免费在线视频一区| 精品国产成人系列| 国产激情91久久精品导航| 久久精品欧美日韩| 不卡的电视剧免费网站有什么| 国产欧美日韩激情| 成人av综合一区| 中文字幕一区二区三区四区不卡 | 丰满少妇久久久久久久| www欧美成人18+| 成人精品免费看| 中文字幕中文乱码欧美一区二区| 成人自拍视频在线| 欧美丰满嫩嫩电影| 毛片一区二区三区| 在线播放日韩导航| 日本成人在线电影网| 欧美精品一级二级三级| 天堂资源在线中文精品| 7799精品视频| 亚洲已满18点击进入久久| 欧美精品xxxxbbbb| 亚洲成人在线观看视频| 91精品国产综合久久精品图片| 亚洲超碰97人人做人人爱| 欧美视频日韩视频在线观看| 亚洲第一福利视频在线| 欧美精品第1页| 精品中文字幕一区二区小辣椒| 久久综合久久综合亚洲| 成人国产亚洲欧美成人综合网 | 亚洲日本欧美天堂| 色噜噜狠狠色综合中国| 亚洲一区av在线| 欧美日韩高清一区| 日韩国产欧美一区二区三区| 久久婷婷一区二区三区| 99热在这里有精品免费| 亚洲老妇xxxxxx| 欧美丝袜第三区| 免费在线观看视频一区| 国产欧美日韩精品a在线观看| 色狠狠桃花综合| 九色porny丨国产精品| 欧美高清一级片在线观看| 99久久精品免费看| 亚洲一级电影视频| 欧美一级专区免费大片| 国产高清不卡一区| 亚洲精品五月天| 日韩视频中午一区| 高潮精品一区videoshd| 亚洲自拍偷拍麻豆| 欧美精品一区二区三区在线 | 日本欧美大码aⅴ在线播放| 在线不卡免费av| 成年人午夜久久久| 婷婷久久综合九色综合绿巨人 | 欧洲视频一区二区| 久久99精品视频| 亚洲一区二区三区影院| 久久一区二区三区国产精品| 在线中文字幕一区二区| 久草在线在线精品观看| 国产精品免费网站在线观看| 成人福利在线看| 午夜不卡在线视频| 国产精品成人免费| 欧美精品一区二区三区视频| 欧美午夜精品久久久| 丁香婷婷综合激情五月色| 午夜视频久久久久久| 欧美国产禁国产网站cc| 91麻豆精品国产91久久久久久 | 亚洲国产日韩综合久久精品| 中文字幕 久热精品 视频在线| 欧美精品精品一区| 欧美亚洲一区二区三区四区| 岛国一区二区三区| 精品一区二区精品| 日韩中文字幕一区二区三区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久99精品视频| 首页欧美精品中文字幕| 欧美国产精品久久| 国产精品精品国产色婷婷| 精品盗摄一区二区三区| 欧美日韩国产色站一区二区三区| 国产成人av电影免费在线观看| 欧美a级一区二区| 亚洲第一福利一区| 亚洲成人综合网站| 亚洲精品成人悠悠色影视| 国产日韩欧美亚洲| 久久久久久久综合狠狠综合| 欧美mv日韩mv亚洲| 色综合久久久网| 91在线云播放| 91丨porny丨蝌蚪视频| 成人免费视频视频在线观看免费| 国产麻豆视频一区| 国产一区日韩二区欧美三区| 国产综合色视频| 国产精品综合二区| 国产麻豆欧美日韩一区| 国产一区二区美女诱惑| 国产在线不卡一卡二卡三卡四卡| 韩国精品主播一区二区在线观看 | 亚洲最新视频在线观看| 亚洲综合色网站| 亚州成人在线电影| 丝瓜av网站精品一区二区| 日本sm残虐另类| 亚洲永久精品国产| 久久99久久99| 成人黄色av网站在线| 色综合久久久久| 欧美日韩精品系列| 欧美一级日韩一级| 久久免费精品国产久精品久久久久 | 中文字幕一区不卡| 一区2区3区在线看| 欧美aaaaa成人免费观看视频| 麻豆91精品视频| 成人在线视频一区二区| 在线亚洲+欧美+日本专区| 7777精品久久久大香线蕉| 欧美日韩精品一区二区在线播放 | 亚洲综合色噜噜狠狠| 日日夜夜一区二区| 精品一区二区三区av| 9i在线看片成人免费| 欧美日韩1234| 精品少妇一区二区三区| 国产精品无圣光一区二区| 一区二区三区在线免费视频| 日韩激情在线观看| 国产精品一区久久久久| 国产福利91精品| 欧美性猛交xxxx黑人交| 欧美成人一级视频| 亚洲欧美日韩综合aⅴ视频| 奇米色一区二区三区四区| 国产激情视频一区二区三区欧美| 日本高清不卡视频| 久久女同精品一区二区| 亚洲素人一区二区| 极品少妇xxxx精品少妇| 日本久久电影网| 久久久久久综合| 亚洲aⅴ怡春院| jlzzjlzz欧美大全| 精品国产三级电影在线观看| 夜夜嗨av一区二区三区网页| 国产高清精品久久久久| 欧美日韩五月天| 亚洲国产精品精华液2区45| 日本在线不卡视频一二三区| 色综合久久久久久久| 欧美精彩视频一区二区三区| 日韩高清中文字幕一区| 91久久久免费一区二区| 欧美经典一区二区| 美女爽到高潮91|