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

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

?? sddevinf.cpp

?? 6410BSP3
?? CPP
?? 第 1 頁 / 共 4 頁
字號:

            pPowerDrawData->HpAvePower33 = pV11FunctionTupleExt->HpAvePwr33V;
            pPowerDrawData->HpMaxPower33 = pV11FunctionTupleExt->HpMaxPwr33V;

            pPowerDrawData->LpAvePower33 = pV11FunctionTupleExt->LpAvePwr33V;
            pPowerDrawData->LpMaxPower33 = pV11FunctionTupleExt->LpMaxPwr33V;
        }
    }

    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("SDBusDriver: Function %d Power Draw:\r\n"),m_SDCardInfo.SDIOInformation.Function));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    OpMinPower %d mA\r\n"),   m_SDCardInfo.SDIOInformation.PowerDrawData.OpMinPower));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    OpAvePower %d mA\r\n"),   m_SDCardInfo.SDIOInformation.PowerDrawData.OpAvePower));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    OpMaxPower %d mA\r\n"),   m_SDCardInfo.SDIOInformation.PowerDrawData.OpMaxPower));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    SpAvePower33 %d mA\r\n"), m_SDCardInfo.SDIOInformation.PowerDrawData.SpAvePower33));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    SpAvePower33 %d mA\r\n"), m_SDCardInfo.SDIOInformation.PowerDrawData.SpMaxPower33));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    HpAvePower33 %d mA\r\n"), m_SDCardInfo.SDIOInformation.PowerDrawData.HpAvePower33));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    HpMaxPower33 %d mA\r\n"), m_SDCardInfo.SDIOInformation.PowerDrawData.HpMaxPower33));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    LpAvePower33 %d mA\r\n"), m_SDCardInfo.SDIOInformation.PowerDrawData.LpAvePower33));
    DbgPrintZo(SDBUS_ZONE_DEVICE, (TEXT("    LpMaxPower33 %d mA\r\n"), m_SDCardInfo.SDIOInformation.PowerDrawData.LpMaxPower33));


    return SD_API_STATUS_SUCCESS;
}
///////////////////////////////////////////////////////////////////////////////
//  GetFunctionPowerState  -  Get the power state of a SDIO function
//  Input:  pDevice   - the device 
//          
//  Output: pPowerState - structure describing the power state of the device 
//  Return: SD_API_STATUS code
//          
//  Notes: 
///////////////////////////////////////////////////////////////////////////////
SD_API_STATUS CSDDevice::GetFunctionPowerState(  PFUNCTION_POWER_STATE pPowerState)
{
    SD_API_STATUS   status = SD_API_STATUS_INVALID_PARAMETER;         // intermediate status
    DWORD           FBROffset;      // calculated FBR offset
    UCHAR           regValue;       // register value
    
    if (m_FuncionIndex == 0 || pPowerState == NULL) {
        return SD_API_STATUS_INVALID_PARAMETER;
    }
    CSDDevice *pDevice0 = m_sdSlot.GetFunctionDevice(0);
    if (pDevice0 == NULL) {
        return SD_API_STATUS_INVALID_PARAMETER;
    }
    

    pPowerState->fPowerControlSupport = pDevice0->GetCardInfo().SDIOInformation.pCommonInformation->fCardSupportsPowerControl;
    pPowerState->fPowerControlEnabled = pDevice0->GetCardInfo().SDIOInformation.pCommonInformation->fPowerControlEnabled;

    pPowerState->fFunctionEnabled = (pDevice0->GetCardInfo().SDIOInformation.pCommonInformation->CCCRShadowIOEnable 
                & (1 <<  m_FuncionIndex)) ? TRUE : FALSE;
    
    FBROffset = SD_IO_FBR_1_OFFSET + (m_FuncionIndex - 1) * SD_IO_FBR_LENGTH;

    status = pDevice0->SDReadWriteRegistersDirect_I( SD_IO_READ, FBROffset + SD_IO_FBR_POWER_SELECT, FALSE, &regValue, 1); 
    if (!SD_API_SUCCESS(status)) {
        return status;
    }

    pPowerState->fSupportsPowerSelect = (regValue & SD_IO_FUNCTION_POWER_SELECT_SUPPORT) ? TRUE : FALSE;
    if(pPowerState->fSupportsPowerSelect) {
        pPowerState->fLowPower = regValue & SD_IO_FUNCTION_POWER_SELECT_STATE ? TRUE : FALSE;
    }
    else {
        pPowerState->fLowPower = 0;
    }

    pPowerState->OperatingVoltage = m_OperatingVoltage;
    
    //calculate the current draw
    if(pPowerState->fPowerControlSupport) {
        if(pPowerState->fFunctionEnabled) {
            //
            // in future when more power tuples are added select the proper tuple here
            // currently only the 3.3V tuple is supported
            //
            if((pPowerState->fPowerControlEnabled) && (pPowerState->fSupportsPowerSelect)) {
                if(pPowerState->fLowPower){
                        //function enabled at low power
                    pPowerState->CurrentDrawNow = m_SDCardInfo.SDIOInformation.PowerDrawData.LpMaxPower33;
                    pPowerState->EnableDelta = ((INT)m_SDCardInfo.SDIOInformation.PowerDrawData.LpMaxPower33) * -1;
                    pPowerState->SelectDelta = ((INT)m_SDCardInfo.SDIOInformation.PowerDrawData.HpMaxPower33)
                                               - ((INT)m_SDCardInfo.SDIOInformation.PowerDrawData.LpMaxPower33);
                }
                else {
                        //function enabled at high power
                    pPowerState->CurrentDrawNow = m_SDCardInfo.SDIOInformation.PowerDrawData.HpMaxPower33;
                    pPowerState->EnableDelta = ((INT)m_SDCardInfo.SDIOInformation.PowerDrawData.HpMaxPower33) * -1;
                    pPowerState->SelectDelta = ((INT)m_SDCardInfo.SDIOInformation.PowerDrawData.LpMaxPower33)
                                               - ((INT)m_SDCardInfo.SDIOInformation.PowerDrawData.HpMaxPower33);
                }
            }
            else {
                    //function enabled at no power select
                pPowerState->CurrentDrawNow = m_SDCardInfo.SDIOInformation.PowerDrawData.SpMaxPower33;
                pPowerState->EnableDelta = ((INT)m_SDCardInfo.SDIOInformation.PowerDrawData.SpMaxPower33) * -1;
                pPowerState->SelectDelta = 0;
            }
        }
        else {
            if((pPowerState->fPowerControlEnabled) && (pPowerState->fSupportsPowerSelect)) {
                if(pPowerState->fLowPower) {
                        //function disabled power select set to low
                    pPowerState->CurrentDrawNow = 0;
                    pPowerState->EnableDelta = m_SDCardInfo.SDIOInformation.PowerDrawData.LpMaxPower33;
                    pPowerState->SelectDelta = 0;
                }
                else  {
                        //function disabled power select set to low
                    pPowerState->CurrentDrawNow = 0;
                    pPowerState->EnableDelta = m_SDCardInfo.SDIOInformation.PowerDrawData.HpMaxPower33;
                    pPowerState->SelectDelta = 0;
                }
            }
            else {
                    //function disabled, no power select
                pPowerState->CurrentDrawNow = 0;
                pPowerState->EnableDelta = m_SDCardInfo.SDIOInformation.PowerDrawData.SpMaxPower33;
            }
        }
    }
    else
    {
        USHORT TempMaxPower;
            //the current draw must never be greater than 200mA for a non Power Control enabled card
        if((0 == m_SDCardInfo.SDIOInformation.PowerDrawData.OpMaxPower) || (200 < m_SDCardInfo.SDIOInformation.PowerDrawData.OpMaxPower)){
            TempMaxPower = 200; 
        }
        else {
            TempMaxPower = m_SDCardInfo.SDIOInformation.PowerDrawData.OpMaxPower; 
        }

        if(pPowerState->fFunctionEnabled) {
                //function enabled, no power control
            pPowerState->CurrentDrawNow = TempMaxPower;
            pPowerState->EnableDelta = ((INT)TempMaxPower) * -1;
            pPowerState->SelectDelta = 0;
        }
        else {
                //function disabled, no power control
            pPowerState->CurrentDrawNow = 0;
            pPowerState->EnableDelta = (INT)TempMaxPower;
            pPowerState->SelectDelta = 0;
        }
    }
    return SD_API_STATUS_SUCCESS;
}

///////////////////////////////////////////////////////////////////////////////
//  GetCardStatus  - retrieve the card status
//  Input:  hDevice        - SD Device Handle
//  Output: pCardStatus    - the card status
//  Return: SD_API_STATUS
//  Notes:  
///////////////////////////////////////////////////////////////////////////////
SD_API_STATUS CSDDevice::GetCardStatus(SD_CARD_STATUS   *pCardStatus)
{
    SD_API_STATUS       status;         // status
    SD_COMMAND_RESPONSE cardResponse;   // response buffer

    // Initiate the bus transaction
    status = SDSynchronousBusRequest_I(
        SD_CMD_SEND_STATUS,
        ((DWORD)(m_RelativeAddress) << 16),
        SD_COMMAND,
        ResponseR1,
        &cardResponse,
        0,
        0,
        NULL,
        0);

    // Get the status and convert if necessary
    if (!SD_API_SUCCESS(status) ) {
        DEBUGMSG( SDCARD_ZONE_ERROR, (TEXT("SDGetCardStatus Failed: status 0x%X\r\n"),status));
        return status;
    }

    SDGetCardStatusFromResponse(&cardResponse, pCardStatus);

    DEBUGMSG(SDCARD_ZONE_INFO, (TEXT("Status: 0x%08X, current state: %d \r\n"),
        *pCardStatus, SD_STATUS_CURRENT_STATE(*pCardStatus)));

    return status;
}



SD_API_STATUS CSDDevice::InfoQueryCID(PVOID pCardInfo, ULONG cbCardInfo)
{
    PREFAST_DEBUGCHK(pCardInfo);
    DEBUGCHK(cbCardInfo == sizeof(SD_PARSED_REGISTER_CID));

    PSD_PARSED_REGISTER_CID pParsedCID = (PSD_PARSED_REGISTER_CID)pCardInfo;
    PUCHAR                  pCid  = m_CachedRegisters.CID;
    UCHAR                   Prv;

    pParsedCID->ManufacturerID = pCid[SD_CID_MID_OFFSET];  

    // get the application ID string
    pParsedCID->OEMApplicationID[0] = pCid[SD_CID_OID_OFFSET];
    pParsedCID->OEMApplicationID[1] = pCid[SD_CID_OID_OFFSET+1];
    pParsedCID->OEMApplicationID[2] = '\0';


    // MMC cards have a 1 char larger Product Name
    // and it starts 1 byte earlier in the CID data.
    // PSN and PRV are offset by 1 byte and the date
    // field has just a 4 bit year code starting at 1997.
    if( m_DeviceType == Device_MMC ) {
        pParsedCID->ProductName[0] = pCid[MMC_CID_PNM_OFFSET]; 
        pParsedCID->ProductName[1] = pCid[MMC_CID_PNM_OFFSET+1]; 
        pParsedCID->ProductName[2] = pCid[MMC_CID_PNM_OFFSET+2]; 
        pParsedCID->ProductName[3] = pCid[MMC_CID_PNM_OFFSET+3]; 
        pParsedCID->ProductName[4] = pCid[MMC_CID_PNM_OFFSET+4];
        pParsedCID->ProductName[5] = pCid[MMC_CID_PNM_OFFSET+5];
        pParsedCID->ProductName[6] = '\0';

        // get major and minor revs                                                               
        Prv = pCid[MMC_CID_PRV_OFFSET];    
        pParsedCID->MajorProductRevision = (Prv & 0xF0) >> 4;  
        pParsedCID->MinorProductRevision = Prv & 0x0F;                     

        // serial number
        pParsedCID->ProductSerialNumber = pCid[MMC_CID_PSN_OFFSET] | 
            (pCid[MMC_CID_PSN_OFFSET + 1] << 8)| 
            (pCid[MMC_CID_PSN_OFFSET + 2] << 16) | 
            (pCid[MMC_CID_PSN_OFFSET + 3] << 24); 

        // Manufacturing month
        pParsedCID->ManufacturingMonth = (pCid[MMC_CID_MDT_OFFSET] & MMC_CID_MONTH_MASK) >> MMC_CID_MONTH_SHIFT;
        // Manufacturing year
        pParsedCID->ManufacturingYear = pCid[MMC_CID_MDT_OFFSET] & MMC_CID_YEAR_MASK; 
        // Year starts at 1997
        pParsedCID->ManufacturingYear += 1997;
    } else {  
        pParsedCID->ProductName[0] = pCid[SD_CID_PNM_OFFSET]; 
        pParsedCID->ProductName[1] = pCid[SD_CID_PNM_OFFSET+1]; 
        pParsedCID->ProductName[2] = pCid[SD_CID_PNM_OFFSET+2]; 
        pParsedCID->ProductName[3] = pCid[SD_CID_PNM_OFFSET+3]; 
        pParsedCID->ProductName[4] = pCid[SD_CID_PNM_OFFSET+4];
        pParsedCID->ProductName[5] = '\0';
        pParsedCID->ProductName[6] = '\0';

        // get major and minor revs                                                               
        Prv = pCid[SD_CID_PRV_OFFSET];    
        pParsedCID->MajorProductRevision = (Prv & 0xF0) >> 4;  
        pParsedCID->MinorProductRevision = Prv & 0x0F;                     

        // serial number
        pParsedCID->ProductSerialNumber = pCid[SD_CID_PSN_OFFSET] | 
            (pCid[SD_CID_PSN_OFFSET + 1] << 8)| 
            (pCid[SD_CID_PSN_OFFSET + 2] << 16) | 
            (pCid[SD_CID_PSN_OFFSET + 3] << 24); 

        pParsedCID->ManufacturingMonth = pCid[SD_CID_MDT_OFFSET] & SD_CID_MONTH_MASK;
        // get lower 4 bits
        pParsedCID->ManufacturingYear = (pCid[SD_CID_MDT_OFFSET] & SD_CID_YEAR0_MASK) >> SD_CID_YEAR_SHIFT ; 
        // get upper 4 bits
        pParsedCID->ManufacturingYear  |= pCid[SD_CID_MDT_OFFSET+1] << SD_CID_YEAR_SHIFT;  
        // starts at year 2000
        pParsedCID->ManufacturingYear += 2000;
    }     

    memcpy(pParsedCID->RawCIDRegister, m_CachedRegisters.CID, SD_CID_REGISTER_SIZE);

    return SD_API_STATUS_SUCCESS;
}


#define GET_BIT_SLICE_FROM_CSD(pCSD, Slice, Size) \
    GetBitSlice(pCSD, SD_CSD_REGISTER_SIZE, Slice, Size)
///////////////////////////////////////////////////////////////////////////////
//  DumpParsedCSDRegisters- dump parsed register data to the debugger
//  Input:  pParsedCSD - the Parsed CSD structure
//  Output: 
//
//  Notes:  
///////////////////////////////////////////////////////////////////////////////
inline VOID DumpParsedCSDRegisters(PSD_PARSED_REGISTER_CSD pParsedCSD)
{

    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT("\n\n\nSDCard: Dumping parsed Registers : \n")));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Version:%d \n"),pParsedCSD->CSDVersion)); 
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" TAAC: %f ns \n"),pParsedCSD->DataAccessTime.TAAC));  
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" NSAC: %d clocks \n"),pParsedCSD->DataAccessTime.NSAC)); 
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" MaxDataTransferRate: %d kb/s \n"),pParsedCSD->MaxDataTransferRate));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Card Command Classes: 0x%04X \n"),pParsedCSD->CardCommandClasses));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Max Read Block Length: %d bytes \n"),pParsedCSD->MaxReadBlockLength));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Read Block Partial? : %d  \n"),pParsedCSD->ReadBlockPartial));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Max Write Block Length: %d bytes \n"),pParsedCSD->MaxWriteBlockLength));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Write Block Partial? : %d  \n"),pParsedCSD->WriteBlockPartial));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Write Block Misaligned? : %d  \n"),pParsedCSD->WriteBlockMisalign));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Read Block Misaligned? : %d  \n"),pParsedCSD->ReadBlockMisalign));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" DSR Implemented? : %d  \n"),pParsedCSD->DSRImplemented));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Device Size : %d bytes  \n"),pParsedCSD->DeviceSize));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" VDD Read Current Min : %d mA \n"),pParsedCSD->VDDReadCurrentMin));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" VDD Read Current Max : %d mA \n"),pParsedCSD->VDDReadCurrentMax));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" VDD Write Current Min : %d mA \n"),pParsedCSD->VDDWriteCurrentMin));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" VDD Write Current Max : %d mA \n"),pParsedCSD->VDDWriteCurrentMax));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Erase Block Enabled?: %d  \n"),pParsedCSD->EraseBlockEnable));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Erase Sector Size: %d blocks \n"),pParsedCSD->EraseSectorSize));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Write Protect Group Enabled? %d \n"),pParsedCSD->WPGroupEnable));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Write Group Protect Size: %d blocks \n"),pParsedCSD->WPGroupSize));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Write Speed Factor: %d blocks \n"),pParsedCSD->WriteSpeedFactor));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Copy Flag?:  %d \n"),pParsedCSD->CopyFlag));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Permanent Write Protect?:  %d \n"),pParsedCSD->PermanentWP));
    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" Temporary Write Protect?:  %d \n"),pParsedCSD->TemporaryWP));

    switch (pParsedCSD->FileSystem ) {
        case SD_FS_FAT_PARTITION_TABLE: 
            DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" FileSystem = FAT with Partition Table \n")));
            break;
        case SD_FS_FAT_NO_PARTITION_TABLE: 
            DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" FileSystem = FAT with No Partition Table \n")));
            break;
        case SD_FS_UNIVERSAL:  
            DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" FileSystem = Universal \n")));
            break;
        default: 
            DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT(" FileSystem = Other/Unknown \n")));
    }

    DEBUGMSG(SDBUS_ZONE_REQUEST, (TEXT("---------------------------------------------- \n\n\n")));
}

SD_API_STATUS CSDDevice::InfoQueryCSD(PVOID pCardInfo, ULONG cbCardInfo)
{
  PREFAST_DEBUGCHK(pCardInfo);
  DEBUGCHK(cbCardInfo == sizeof(SD_PARSED_REGISTER_CSD));

  PSD_PARSED_REGISTER_CSD pParsedCSD = (PSD_PARSED_REGISTER_CSD)pCardInfo;
  PUCHAR                  pCSD  = m_CachedRegisters.CSD;
  UCHAR                   value, unit;        // Used for access time/transfer rate calculations
  DWORD                   cSize, cSizeMult;   // Used for device size calculation
  UCHAR                   fileFormatGroup, fileFormat;
  UCHAR                   rblLength;

  pParsedCSD->CSDVersion = (UCHAR)GET_BIT_SLICE_FROM_CSD(pCSD,SD_CSD_VERSION_BIT_SLICE, 
      SD_CSD_VERSION_SLICE_SIZE);
#ifdef _MMC_SPEC_42_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲三级免费电影| 久久亚洲综合色| 波多野结衣91| 国产伦精一区二区三区| 精品在线亚洲视频| 久久国产精品99久久久久久老狼| 日本中文在线一区| 日本视频在线一区| 九九**精品视频免费播放| 日韩av一区二区在线影视| 蜜臀国产一区二区三区在线播放| 青青草原综合久久大伊人精品 | 精品视频一区二区不卡| 一本大道久久a久久综合婷婷| 91小视频在线| 91传媒视频在线播放| 欧美色图12p| 欧美一区二区黄| 欧美大片拔萝卜| 久久精品人人做| 综合色中文字幕| 亚洲国产一区二区三区 | 7777精品伊人久久久大香线蕉的| 在线观看网站黄不卡| 日韩一区二区在线看片| 国产午夜亚洲精品不卡| 国产精品久久久久三级| 亚洲国产一区二区三区| 久草在线在线精品观看| 不卡一区二区在线| 91精品国产综合久久婷婷香蕉| 久久综合色婷婷| 一区二区三区在线视频播放| 久草中文综合在线| 色综合夜色一区| 欧美成人精品福利| 亚洲人成人一区二区在线观看| 亚洲成a人片在线观看中文| 国产最新精品精品你懂的| 色婷婷亚洲综合| 精品国产三级电影在线观看| 亚洲日本成人在线观看| 久久av资源网| 91黄色免费版| 欧美国产精品一区| 热久久一区二区| 一本大道综合伊人精品热热| 久久久噜噜噜久噜久久综合| 亚洲一区欧美一区| 成人av片在线观看| 精品美女被调教视频大全网站| 亚洲精品乱码久久久久久日本蜜臀| 麻豆精品国产传媒mv男同| 91浏览器打开| 久久久久99精品一区| 蜜臀av一区二区在线观看| 色爱区综合激月婷婷| 国产精品天美传媒| 国内精品视频666| 欧美精品乱码久久久久久按摩 | 91久久精品日日躁夜夜躁欧美| 精品国产欧美一区二区| 日韩精品一二区| 色婷婷av久久久久久久| 国产精品久久久久影院色老大| 韩国精品一区二区| 日韩视频一区二区三区在线播放 | 国产欧美日韩在线观看| 麻豆精品在线视频| 91精品国产全国免费观看| 亚洲国产另类av| 91久久精品午夜一区二区| 亚洲图片你懂的| 99re视频精品| 亚洲美女精品一区| 91免费观看国产| 亚洲女与黑人做爰| 91福利国产精品| 天天操天天色综合| 91精品国产一区二区| 日本va欧美va瓶| 欧美精品一区二区三区蜜臀| 黑人巨大精品欧美黑白配亚洲| 欧美电影免费观看完整版| 麻豆成人久久精品二区三区红| 日韩美一区二区三区| 国产毛片精品一区| 国产精品理伦片| 91亚洲永久精品| 午夜影院在线观看欧美| 欧美一级二级三级乱码| 九九精品一区二区| 欧美国产精品专区| 在线看一区二区| 日韩国产精品久久久久久亚洲| 日韩免费视频一区| 成人午夜在线播放| 一区二区三区四区高清精品免费观看 | 日韩亚洲电影在线| 国产剧情一区二区| 亚洲色图视频网| 欧美日韩精品一二三区| 极品尤物av久久免费看| 中文字幕一区二区三区蜜月| 色综合久久久网| 日本欧美一区二区在线观看| 日本一区二区三区在线不卡| 色系网站成人免费| 久久成人免费电影| 樱花草国产18久久久久| 26uuu成人网一区二区三区| a亚洲天堂av| 日韩av电影一区| 亚洲日本在线a| 精品欧美一区二区久久| 欧日韩精品视频| 激情成人午夜视频| 亚洲日本va在线观看| 欧美精品一区二区精品网| 色av一区二区| 国产mv日韩mv欧美| 免费国产亚洲视频| 一级日本不卡的影视| 中文无字幕一区二区三区| 7777精品久久久大香线蕉| 成人av网址在线观看| 国精产品一区一区三区mba桃花 | 国产传媒久久文化传媒| 污片在线观看一区二区| 日韩理论片一区二区| 精品国产一区二区三区久久久蜜月 | 国产成人av电影在线播放| 日韩黄色小视频| 亚洲日本在线观看| 国产精品人妖ts系列视频| 欧美成人艳星乳罩| 欧美情侣在线播放| 91福利在线播放| 91在线国内视频| 风间由美一区二区av101| 免费看日韩a级影片| 亚洲图片自拍偷拍| 亚洲最新视频在线观看| 99久久久国产精品免费蜜臀| 日av在线不卡| 日韩中文欧美在线| 亚洲国产成人av网| 一区二区激情视频| 亚洲色图制服丝袜| 亚洲免费伊人电影| 亚洲图片欧美激情| 国产精品精品国产色婷婷| 久久久精品人体av艺术| 久久精品夜色噜噜亚洲a∨| 精品国产免费一区二区三区香蕉| 日韩一区二区电影| 日韩欧美国产一区二区三区| 日韩精品资源二区在线| 欧美精品一区二区三区久久久| 精品国产一区二区三区忘忧草| 精品国产乱码久久久久久久 | 91美女片黄在线观看| 成人激情开心网| 99久久久久久| 91福利国产精品| 欧美精选在线播放| 精品国产第一区二区三区观看体验| 日韩一区二区三区三四区视频在线观看 | 日韩一区二区麻豆国产| 精品国产乱码久久久久久牛牛 | 丁香婷婷深情五月亚洲| 99精品一区二区| 欧美日韩一区不卡| 日韩一级完整毛片| 国产女人水真多18毛片18精品视频 | 久久综合久久久久88| 国产精品国产三级国产三级人妇| 1024成人网| 日韩国产欧美视频| 成人福利视频网站| 欧美影院精品一区| 日韩美女一区二区三区| 国产精品美女一区二区三区| 一区二区在线观看av| 免费成人深夜小野草| 风间由美一区二区av101 | 久久色在线观看| 亚洲日本一区二区三区| 麻豆国产91在线播放| 99久久精品免费| 欧美一区二区三区四区视频| 久久久久久久综合狠狠综合| 一区二区欧美在线观看| 国产一区二区三区久久久| 日本黄色一区二区| 久久久久久久久久久黄色| 五月天欧美精品| 97se亚洲国产综合自在线| 精品久久久久久久久久久久包黑料 | 亚洲欧美综合在线精品|