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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cbse_status_message_query.c

?? CBS(小區(qū)廣播)程序?qū)崿F(xiàn)手稿
?? C
字號(hào):
#include "..\sys\Include.h"

//發(fā)送消息給BSC
//發(fā)送失敗小區(qū)列表給CBC_Proxy
int Process_Send_StatusMessage_Req_To_BSC(PID_t s_Pid,STATUSMESSAGE_QUERY_t  *s_StatusMessage, DIVIDE_CELLLIST_BUF_t *s_DivideCellListBuf);

//STATUS_MESSAGE_QUERY 初始化
int Process_Status_Message_Query_init(STATUSMESSAGE_QUERY_t *s_StatusMessageReq);

//返回確認(rèn)給CBC_Proxy
int Process_StatusMessage_Req_Return(PID_t s_Pid,unsigned char cNumberOfReturnMessage);

/*
 * 處理正常的消息狀態(tài)查詢
 */
int Process_STATUS_MESSAGE_QUERY(unsigned char *MessageBuf,PID_t s_Pid)
{
    int                     iReturnValue;
	STATUSMESSAGE_QUERY_t   *LPm_StatusMessageQuery;
	/* 拆分小區(qū)緩沖區(qū) */
	DIVIDE_CELLLIST_BUF_t   s_DivideCellListBuf;
	CELLID_t                s_CellId;
	SMQ_PROCESS_DATA_STRUCT *LPs_SMQProcessDataStruct;
	CELLLIST_i              s_ReportCellList;

	memset(&s_ReportCellList,0,sizeof(CELLLIST_i));
	memset(&s_DivideCellListBuf,0,sizeof(DIVIDE_CELLLIST_BUF_t));
	memset(&ProcessData[s_Pid.iProcessId][0],0,LPCB_DATA_SIZE);

	LPs_SMQProcessDataStruct=(SMQ_PROCESS_DATA_STRUCT *)&ProcessData[s_Pid.iProcessId][0];

	/* 數(shù)據(jù)拷貝到進(jìn)程數(shù)據(jù)區(qū) */
	memcpy(&LPs_SMQProcessDataStruct->s_CBCMessage,MessageBuf,sizeof(CBEMESSAGE_t));

	/* 去掉MessageHead */
	LPm_StatusMessageQuery=(STATUSMESSAGE_QUERY_t *)&LPs_SMQProcessDataStruct->s_CBCMessage.cMessage[0];;

#ifdef DEBUG_PRINT
	Print_StatusMessageQuery(s_Pid, LPm_StatusMessageQuery);
#endif

	/* 判斷參數(shù) */
	iReturnValue=Process_Status_Message_Query_init(LPm_StatusMessageQuery);
	if (iReturnValue<0)
	{
		return iReturnValue;
	}

	/* 構(gòu)造響應(yīng)結(jié)果 */
    iReturnValue=Process_Divide_CellList_AccordingToResponse(&LPm_StatusMessageQuery->p_CellList,
		0,&s_ReportCellList,&s_CellId);
	if (iReturnValue<0)
	{
		return iReturnValue;
	}

	memcpy(&LPs_SMQProcessDataStruct->s_ResponseCellList ,
		&s_ReportCellList,sizeof(CELLLIST_i));
	
    /* 從響應(yīng)列表得到拆分列表 */
    Process_Get_DividedCellList_from_ResponseCellList(&s_ReportCellList,&s_DivideCellListBuf);

    /* 標(biāo)志是否等待響應(yīng) */
	IfNeedResponse(&LPs_SMQProcessDataStruct->s_ResponseCellList,&s_DivideCellListBuf);

	/* 此時(shí)用s_DivideCellListBuf.s_CellListOfBSC,
	  不用s_ResponseCellList.cNumberOfBSC 
      前者可能小于后者              */
	LPs_SMQProcessDataStruct->cNoOfResponseReq=s_DivideCellListBuf.cNumberOfCellList;

	/* 小區(qū)全失敗 */
	if (LPs_SMQProcessDataStruct->cNoOfResponseReq==0)
	{
		return ALL_CELLS_NOT_AVAILABLE;
	}

	/* 記錄定時(shí)器的ID置為-1 */
	LPs_SMQProcessDataStruct->iTimerId=-1;


    /* 返回確認(rèn)給CBC_Proxy */
	Process_StatusMessage_Req_Return(s_Pid,s_DivideCellListBuf.cNumberOfCellList);

    /* 發(fā)送消息給BSC */
	Process_Send_StatusMessage_Req_To_BSC(s_Pid,LPm_StatusMessageQuery, &s_DivideCellListBuf);

	/* 創(chuàng)建回復(fù)定時(shí)器 */
	iReturnValue=create_timer(STATUS_MSG_QUERY_RETURN_DELAY_TIME,
	STATUS_MSG_QUERY_RETURN,(char *)&s_Pid,NULL);
	/* 創(chuàng)建定時(shí)器失敗 */
	//sys
	if (iReturnValue<0)
	{
		printf("Create timer Error!\n");
		return iReturnValue;
	}
	else
	{
		LPs_SMQProcessDataStruct->iTimerId=iReturnValue;
		return CONTINUANCE;
	}

}

/* STATUS_MESSAGE_QUERY 初始化
*/
int Process_Status_Message_Query_init(STATUSMESSAGE_QUERY_t *s_StatusMessageReq)
{
	//檢查必備參數(shù)

	if (s_StatusMessageReq->p_MessageIdentifier.bFlag!=EXIST)
	{
		return NO_MESSAGE_IDENTIFIER;
	}

	if (s_StatusMessageReq->p_CurrentSerialnumber.bFlag!=EXIST)
	{
		return NO_OLD_SERIAL_NUMBER;
	}
	

	if (s_StatusMessageReq->p_CellList.bFlag!=EXIST)
	{
		return NO_CELLLIST;
	}

	//檢查參數(shù)內(nèi)容

	//檢查小區(qū)識(shí)別器CellIdDisc
	if ((s_StatusMessageReq->p_CellList.cCellIdDisc!=1)&&
		(s_StatusMessageReq->p_CellList.cCellIdDisc!=2)&&
		(s_StatusMessageReq->p_CellList.cCellIdDisc!=5)&&
		(s_StatusMessageReq->p_CellList.cCellIdDisc!=6))
	{
		return CELLIDDISC_OUTOFRANG;
	}

	//對(duì)于必備參數(shù)不用判斷其存在
	//檢查小區(qū)數(shù)目
	if ((s_StatusMessageReq->p_CellList.iLength<=0)||(s_StatusMessageReq->p_CellList.iLength>MAXCELLCOUNT))
	{
		return NUMBEROFCELL_ERROR;
	}

	//檢查信道指示
	if (s_StatusMessageReq->p_ChannelIndicator.bFlag==EXIST)
	{
		if(s_StatusMessageReq->p_ChannelIndicator.cChannelIndicator>1)
		{
			return NUMBEROFCELL_ERROR;
		}
	}

	return SUCCESS;
}

/*
//該查詢由寫入一個(gè)消息觸發(fā)
//處理定時(shí)查詢
int Process_Scheduled_StatusMessage_Query(PID_t s_Pid)
{
	WRITEREPLACE_REQUEST_t *LPWriteReplace_Request;
	//拆分小區(qū)緩沖區(qū)
	DIVIDE_CELLLIST_BUF_t  s_DivideCellListBuf;
	STATUSMESSAGE_QUERY_t  s_StatusMessage;


	memset(&s_DivideCellListBuf,0,sizeof(DIVIDE_CELLLIST_BUF_t));
	memset(&s_StatusMessage,0,sizeof(STATUSMESSAGE_QUERY_t));

	//去掉MessageHead
	LPWriteReplace_Request=(WRITEREPLACE_REQUEST_t *)&ProcessData[s_Pid.iProcessId][(sizeof(MESSAGE_HEAD_t)+sizeof(short))];

	//MESSAGEIDENTIFIER
	memcpy(&s_StatusMessage.p_MessageIdentifier.bFlag,&LPWriteReplace_Request->p_MessageIdentifier.bFlag,
		sizeof(MESSAGEIDENTIFIER_t));

	//SERIALNUMBER
	memcpy(&s_StatusMessage.p_CurrentSerialnumber.bFlag,&LPWriteReplace_Request->p_NewSerialnumber.bFlag,
		sizeof(SERIALNUMBER_t));

	//CELLLIST
	memcpy(&s_StatusMessage.p_CellList.bFlag,&LPWriteReplace_Request->p_CellList.bFlag,
		sizeof(CELLLIST_t));

	//ChannelIndicator
	if (LPWriteReplace_Request->p_ChannelIndicator.bFlag==1)
	{
		memcpy(&s_StatusMessage.p_ChannelIndicator.bFlag,&LPWriteReplace_Request->p_ChannelIndicator,
			sizeof(CHANNELINDICATOR_t));
	}

	//分配小區(qū)路由
	//
    Process_Divide_CellList_EX(&s_StatusMessage.p_CellList,&s_DivideCellListBuf);
	
    //發(fā)送消息給BSC
    //發(fā)送失敗小區(qū)列表給CBC_Proxy
    Process_Send_StatusMessage_Req_To_BSC(s_Pid,&s_StatusMessage, &s_DivideCellListBuf);

	//釋放進(jìn)程
	if (free_pid((char *)&s_Pid)<0)
	{
		//sys error
		printf("Warning! Free Pid Error.pid=%d\n",s_Pid.iProcessId);
	}

	return SUCCESS;
}
*/

/*
   發(fā)送消息給BSC
*/
int Process_Send_StatusMessage_Req_To_BSC(PID_t s_Pid,	STATUSMESSAGE_QUERY_t  *s_StatusMessage, DIVIDE_CELLLIST_BUF_t *s_DivideCellListBuf)
{
    int                    len;
	char                   *BSCID;
	BSCMESSAGE_t           s_BSCMessage;
	STATUSMESSAGE_QUERY_t  s_StatusMessageQuery;
//	STATUSMESSAGE_RESP_t   s_StatusMessageResp;
	int                    i,j;
	int                    Tid;
	CBEMESSAGE_t           *LPCBEMessage;
//	CBEMESSAGE_t           s_CBEMessage;
//	CBEMESSAGE_t           s_CBCProxyMessage;


	memcpy(&s_StatusMessageQuery,s_StatusMessage,sizeof(STATUSMESSAGE_QUERY_t));

	LPCBEMessage=(CBEMESSAGE_t *)&ProcessData[s_Pid.iProcessId][0];

	for(i=0;i<s_DivideCellListBuf->cNumberOfCellList;i++) 
	{
		memset(&s_BSCMessage,0,sizeof(BSCMESSAGE_t));

		memcpy(&s_StatusMessageQuery.p_CellList,&s_DivideCellListBuf->s_CellListOfBSC[i].s_CellList,sizeof(CELLLIST_t));
		len=Pack_STATUS_MESSAGE_QUERY(&s_StatusMessageQuery,&s_BSCMessage.cMessage[0]);
		
		if (len>0)
		{
			s_BSCMessage.iLen=len;

			BSCID=&s_DivideCellListBuf->s_CellListOfBSC[i].BSCIdentifier[0];
            Tid=GetTid(BSCID);

			if (Tid!=FAILURE)
			{
				/* 小區(qū)QUERY操作次數(shù)加 1 */
				for(j=0;j<s_StatusMessageQuery.p_CellList.iLength;j++)
				{
#ifdef  OPEN_STATISTIC
					Update_Cell_Statistic_Count(&s_StatusMessageQuery.p_CellList.s_CellList[j].cCellId[0],Tid,QUERY_STATISTIC,0,0);
#endif
				}

				memcpy(&s_BSCMessage.s_Pid,&s_Pid,sizeof(PID_t));
#ifdef  OPEN_STATISTIC			
    			s_CBSECount.s_ReqBSCCnt[Tid].iCBCProxyMsgQueryCnt++;
#endif
				/* 發(fā)送給BSC */
				X25AppendCBESendMessage(&s_BSCMessage, Tid);
				
			}
		}

	}

/*
	if (s_DivideCellListBuf->s_FailureList.bFlag==EXIST)
	{
		//報(bào)告失敗列表給Cbc_proxy
    	memset(&s_StatusMessageResp,0,sizeof(STATUSMESSAGE_RESP_t));
		memset(&s_CBEMessage,0,sizeof(CBEMESSAGE_t));

		memcpy(&s_StatusMessageResp.p_MessageIdentifier,&s_StatusMessageQuery.p_MessageIdentifier,sizeof(MESSAGEIDENTIFIER_t));
		memcpy(&s_StatusMessageResp.p_OldSerialnumber,&s_StatusMessageQuery.p_CurrentSerialnumber,sizeof(SERIALNUMBER_t));
		memcpy(&s_StatusMessageResp.p_FailureList,&s_DivideCellListBuf->s_FailureList,sizeof(FAILURELIST_t));

		if (s_StatusMessageQuery.p_ChannelIndicator.bFlag==EXIST)
		{
			memcpy(&s_StatusMessageResp.p_ChannelIndicator,&s_StatusMessageQuery.p_ChannelIndicator,sizeof(CHANNELINDICATOR_t));
		}

		s_CBEMessage.s_MessageHead.iMessageAreaId=A;
		//Status-Message-Resp     7 
		s_CBEMessage.s_MessageHead.iMessageType=7;

		s_CBEMessage.s_MessageHead.s_SenderPid.cFunctionId=FUNCTIONID;
		s_CBEMessage.s_MessageHead.s_SenderPid.cModuleId=MODULEID;
		s_CBEMessage.s_MessageHead.iMessageLength=sizeof(STATUSMESSAGE_RESP_t);
		s_CBEMessage.iLen=sizeof(MESSAGE_HEAD_t)+s_CBEMessage.s_MessageHead.iMessageLength;
		memcpy(&s_CBEMessage.cMessage[0],(char *)&s_StatusMessageResp,s_CBEMessage.s_MessageHead.iMessageLength);
//		s_CBEMessage.SocketHandle=LPCBEMessage->SocketHandle;

		memset(&s_CBCProxyMessage,0,sizeof(CBEMESSAGE_t));
        Convert_StatusMessageResponse(&s_CBEMessage,&s_CBCProxyMessage);		
		AppendCBESendMessage(&s_CBCProxyMessage);

	}

*/
    return SUCCESS;
}

/* 返回確認(rèn)給CBC_Proxy */
int Process_StatusMessage_Req_Return(PID_t s_Pid,unsigned char cNumberOfReturnMessage)
{
    CBEMESSAGE_t        s_CBEMessage;
//	CBEMESSAGE_t        *LPCBEMessage;


	MESSAGE_CONFIRM_i   s_MessageConfirm;
	MESSAGE_HEAD_t      *LPs_MessageHead;

	memset(&s_MessageConfirm,0,sizeof(MESSAGE_CONFIRM_i));
	memset(&s_CBEMessage,0,sizeof(CBEMESSAGE_t));

	LPs_MessageHead=(MESSAGE_HEAD_t *)&ProcessData[s_Pid.iProcessId][sizeof(short)];


	s_MessageConfirm.s_MessageHead.iMessageAreaId=A;
	s_MessageConfirm.s_MessageHead.iMessageType=LPs_MessageHead->iMessageType;
	memcpy(&s_MessageConfirm.s_MessageHead.s_ReceiverPid,&LPs_MessageHead->s_SenderPid,sizeof(PID_t));
    memcpy(&s_MessageConfirm.s_MessageHead.s_SenderPid,&s_Pid,sizeof(PID_t));
	s_MessageConfirm.s_MessageHead.iMessageLength=sizeof(int);
	s_MessageConfirm.NumberOfReturnMessage=cNumberOfReturnMessage;

	s_CBEMessage.iLen=s_MessageConfirm.s_MessageHead.iMessageLength+sizeof(MESSAGE_HEAD_t);

//	s_CBEMessage.SocketHandle=LPCBEMessage->SocketHandle;

	memcpy(&s_CBEMessage.s_MessageHead,&s_MessageConfirm.s_MessageHead,sizeof(MESSAGE_HEAD_t));

	memcpy(&s_CBEMessage.cMessage[0],&s_MessageConfirm.s_MessageHead,s_MessageConfirm.s_MessageHead.iMessageLength);
	
#ifdef DEBUG_PRINT
    printf("Return StatusMessageQuery confirm to CBCProxy. ConfirmValue=%d\n",cNumberOfReturnMessage); 
#endif
	AppendCBESendMessage(&s_CBEMessage);

	return SUCCESS;
}


//將列表轉(zhuǎn)為標(biāo)準(zhǔn)格式,用于StatusMessageQuery
//in:   s_CBEMessage Cbcproxy發(fā)送來(lái)的原始信息
//out:  s_ProxyMessage
//返回:
//  1: 成功,
//  -1:失敗
int Convert_StatusMessageQuery(CBEMESSAGE_t *s_CBEMessage,CBEMESSAGE_t *s_ProxyMessage)
{
	int                    posi;
	unsigned short         iListLen;
	STATUSMESSAGE_QUERY_t  *LPStatusMessageQuery;
	
	LPStatusMessageQuery=(STATUSMESSAGE_QUERY_t *)&s_ProxyMessage->cMessage[0];

	memcpy(&s_ProxyMessage->s_MessageHead,&s_CBEMessage->s_MessageHead,sizeof(MESSAGE_HEAD_t));
    
	memcpy(&s_ProxyMessage->cMessage[0],&s_CBEMessage->cMessage[0],
		(sizeof(STATUS_MESSAGE_QUERY_i)-sizeof(MESSAGE_HEAD_t)));

//	s_ProxyMessage->SocketHandle=s_CBEMessage->SocketHandle;	

	posi=sizeof(STATUS_MESSAGE_QUERY_i)-sizeof(MESSAGE_HEAD_t);

	//得到CELLLIST的長(zhǎng)度
	memcpy(&iListLen,&s_CBEMessage->cMessage[posi+1],sizeof(unsigned short));
	iListLen=iListLen*sizeof(CELLID_t)+4; //4=sizeof(bFlag)+sizeof(CellIddisc)+sizeof(iLength)
	
	//長(zhǎng)度溢出,返回錯(cuò)誤
	if (iListLen>sizeof(CELLLIST_t))	
	{
		return FAILURE;
	}
	
	//沒(méi)有該參數(shù),返回成功
	if (iListLen==0)
	{
		return SUCCESS;
	}

//	posi=posi+sizeof(unsigned short);

	//復(fù)制小區(qū)列表
    memcpy(&LPStatusMessageQuery->p_CellList, &s_CBEMessage->cMessage[posi],iListLen);

	s_ProxyMessage->iLen=sizeof(STATUSMESSAGE_QUERY_t)+sizeof(MESSAGE_HEAD_t);

	return SUCCESS;
}

/* 處理StatusMessageQuery回復(fù)定時(shí)器到時(shí) 
   全返回  
*/
int Process_StatusMessageQuery_Response_timer_Expired(PID_t s_Pid)
{
	unsigned short               iLen;
	int                          i;
	char                         ResponseBuf[3096];
	SMQ_PROCESS_DATA_STRUCT      *LPs_SMQProcessDataStruct;
	int                          iPosi;
	STATUS_MESSAGE_QUERY_RESP_i  *LPs_StatusMessageQueryResponse;
    STATUSMESSAGE_QUERY_t        *LPs_StatusMessageQuery;

	memset(&ResponseBuf[0],0,3096);
	
	LPs_SMQProcessDataStruct=(SMQ_PROCESS_DATA_STRUCT *)&ProcessData[s_Pid.iProcessId][0];
	LPs_StatusMessageQuery=(STATUSMESSAGE_QUERY_t *)&LPs_SMQProcessDataStruct->s_CBCMessage.cMessage[0];

	iPosi=sizeof(short);
	
	LPs_StatusMessageQueryResponse=(STATUS_MESSAGE_QUERY_RESP_i *)&ResponseBuf[iPosi];

	memcpy(&LPs_StatusMessageQueryResponse->p_MessageIdentifier,
		&LPs_StatusMessageQuery->p_MessageIdentifier,sizeof(MESSAGEIDENTIFIER_t));
	memcpy(&LPs_StatusMessageQueryResponse->p_OldSerialNumber,
		&LPs_StatusMessageQuery->p_CurrentSerialnumber,sizeof(SERIALNUMBER_t));
	memcpy(&LPs_StatusMessageQueryResponse->p_ChannelIndicator,
		&LPs_StatusMessageQuery->p_ChannelIndicator,sizeof(CHANNELINDICATOR_t));

	LPs_StatusMessageQueryResponse->bReportListFlag=1;
	LPs_StatusMessageQueryResponse->cReportListNumberOfBSC=
		LPs_SMQProcessDataStruct->s_ResponseCellList.cNumberOfBSC;

	LPs_StatusMessageQueryResponse->s_MessageHead.iMessageAreaId=A;
	LPs_StatusMessageQueryResponse->s_MessageHead.iMessageType=CBCPROXY_STATUS_MESS_QUERY_RESP;	

	memcpy(&LPs_StatusMessageQueryResponse->s_MessageHead.s_SenderPid,&s_Pid,sizeof(PID_t));
	memcpy(&LPs_StatusMessageQueryResponse->s_MessageHead.s_ReceiverPid,
		&LPs_SMQProcessDataStruct->s_CBCMessage.s_MessageHead.s_SenderPid,sizeof(PID_t));


	iPosi=iPosi+sizeof(STATUS_MESSAGE_QUERY_RESP_i);
	
	for(i=0;i<LPs_SMQProcessDataStruct->s_ResponseCellList.cNumberOfBSC;i++)
	{
		memcpy(&ResponseBuf[iPosi],&LPs_SMQProcessDataStruct->s_ResponseCellList.s_BSCCellList[i],
			(LPs_SMQProcessDataStruct->s_ResponseCellList.s_BSCCellList[i].ilength*sizeof(CELLREPORT_i)+BSC_INDENTIFIER_LEN+sizeof(short)));
		iPosi=iPosi+LPs_SMQProcessDataStruct->s_ResponseCellList.s_BSCCellList[i].ilength*sizeof(CELLREPORT_i)+BSC_INDENTIFIER_LEN+sizeof(short);
	}

	iLen=iPosi-sizeof(short);

	memcpy(&ResponseBuf[0],&iLen,sizeof(short));
	LPs_StatusMessageQueryResponse->s_MessageHead.iMessageLength=iLen-sizeof(MESSAGE_HEAD_t);

#ifdef DEBUG_PRINT
    printf("Return StatusMessage Response to CBCProxy.\n"); 
    Printf_file_ResponseList(s_Pid,LPs_StatusMessageQueryResponse->s_MessageHead.iMessageType,&LPs_SMQProcessDataStruct->s_ResponseCellList);
#endif

    AppendCBESendMessage((CBEMESSAGE_t *)&ResponseBuf[0]);

	return END;
}


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩美女一区二区| 九九九久久久精品| 日本欧洲一区二区| 国产一区二区三区美女| eeuss鲁片一区二区三区在线看| 成人黄色在线网站| 夫妻av一区二区| 国产成人亚洲综合色影视 | 26uuu亚洲| 亚洲视频一区在线| 人人狠狠综合久久亚洲| 福利电影一区二区| 欧美美女一区二区三区| 国产亚洲欧美色| 亚洲一区二区三区四区的| 日本不卡一区二区| 91视频你懂的| 26uuu久久天堂性欧美| 136国产福利精品导航| 免费精品99久久国产综合精品| 成人精品视频.| 91精品欧美福利在线观看| 国产精品久久久久久亚洲毛片| 日韩激情一二三区| 色综合一区二区三区| 精品999在线播放| 亚洲亚洲人成综合网络| 国产风韵犹存在线视精品| 欧美日韩精品综合在线| 国产精品对白交换视频| 理论电影国产精品| 欧美日韩亚洲另类| 中文字幕一区二区三区乱码在线| 久久激情五月激情| 国产色爱av资源综合区| 亚洲国产成人porn| 国产suv精品一区二区6| 中文字幕人成不卡一区| 美女国产一区二区三区| 在线观看国产日韩| 国产精品国产馆在线真实露脸 | 91啦中文在线观看| 久久久精品中文字幕麻豆发布| 亚洲午夜久久久久久久久电影网| 成人a免费在线看| 久久亚洲综合av| 日本中文字幕一区二区有限公司| 91视频www| 中文字幕亚洲欧美在线不卡| 国产精品一区二区在线观看不卡| 欧美一级视频精品观看| 亚洲无人区一区| 91香蕉国产在线观看软件| 国产亚洲精品超碰| 国产综合色精品一区二区三区| 在线观看91av| 视频一区国产视频| 欧美日韩国产不卡| 欧美一区二区三区啪啪| 亚洲一区二区五区| 91官网在线免费观看| 国产精品久久久久影视| 国产精品2024| 久久久国产精华| 国产精品一品二品| 久久精品一区八戒影视| 国产在线精品国自产拍免费| 欧美不卡一区二区三区| 久久精品国产一区二区三区免费看| 7777精品伊人久久久大香线蕉最新版| 亚洲国产一区视频| 欧美丰满高潮xxxx喷水动漫| 亚洲成人在线网站| 7777女厕盗摄久久久| 免费人成在线不卡| 精品播放一区二区| 国产成人无遮挡在线视频| 国产情人综合久久777777| 成人一区在线观看| 国产精品日产欧美久久久久| 波多野结衣在线aⅴ中文字幕不卡| 中文字幕不卡在线播放| av网站免费线看精品| 成人欧美一区二区三区小说| 色综合久久中文字幕综合网| 亚洲激情五月婷婷| 欧洲一区在线电影| 日韩综合在线视频| 精品久久久久久久久久久久包黑料 | 91福利在线播放| 亚洲精品视频观看| 欧美三级视频在线观看| 天堂久久一区二区三区| 日韩欧美国产不卡| 国产精品小仙女| 亚洲欧洲日韩综合一区二区| 色94色欧美sute亚洲线路一ni| 夜夜爽夜夜爽精品视频| 91精选在线观看| 国产一区二区三区四| 亚洲色图欧美偷拍| 欧美日精品一区视频| 久久99国产精品成人| 日本一区二区三区国色天香| 色先锋资源久久综合| 日韩av一二三| 中文av字幕一区| 欧美色视频一区| 国精产品一区一区三区mba视频| 国产精品无码永久免费888| 色欧美88888久久久久久影院| 日韩精品亚洲专区| 欧美国产精品中文字幕| 欧美三区在线观看| 国产成人一区在线| 亚洲成在人线免费| 国产农村妇女精品| 欧美高清你懂得| 成人一区在线观看| 日韩高清一级片| 中文字幕欧美日本乱码一线二线 | 久久99精品国产麻豆婷婷洗澡| 精品久久五月天| 91美女福利视频| 天天色综合天天| 国产精品日日摸夜夜摸av| 3d成人h动漫网站入口| 成人一区在线观看| 日本亚洲欧美天堂免费| 亚洲视频中文字幕| 日韩美女在线视频| 色婷婷国产精品| 激情综合色综合久久综合| 亚洲愉拍自拍另类高清精品| 精品国产乱码久久久久久免费| 色哟哟一区二区在线观看| 国产永久精品大片wwwapp| 午夜精品久久久久久久蜜桃app| 亚洲国产电影在线观看| 欧美大尺度电影在线| 色婷婷综合五月| 成人综合在线观看| 美女一区二区三区| 亚洲国产精品自拍| 亚洲欧美综合网| 久久综合狠狠综合| 91精品福利在线一区二区三区| 色国产精品一区在线观看| 国产电影精品久久禁18| 老司机免费视频一区二区| 亚洲福利电影网| 亚洲在线中文字幕| 国产精品久久看| 久久久精品人体av艺术| 日韩一区二区麻豆国产| 欧美色综合影院| 色婷婷精品久久二区二区蜜臂av | 国产午夜精品在线观看| 欧美一级一级性生活免费录像| 欧美午夜影院一区| 色综合久久中文综合久久牛| 成人激情文学综合网| 国产高清久久久| 激情五月激情综合网| 日本aⅴ亚洲精品中文乱码| 午夜精品国产更新| 亚洲伊人伊色伊影伊综合网| 亚洲人成网站精品片在线观看 | 91麻豆精品在线观看| 国产不卡免费视频| 国产美女av一区二区三区| 久久精工是国产品牌吗| 蜜桃av一区二区| 美女视频黄免费的久久| 美国欧美日韩国产在线播放| 日本在线不卡视频一二三区| 五月激情六月综合| 日本特黄久久久高潮| 日韩电影在线一区| 欧美aaa在线| 紧缚奴在线一区二区三区| 精品一区二区免费| 国产在线精品免费| 国产成人一区二区精品非洲| 国产精品18久久久久久vr| 国产精品456| 不卡一二三区首页| 91原创在线视频| 色94色欧美sute亚洲13| 欧美吻胸吃奶大尺度电影| 欧美日韩精品综合在线| 在线播放中文字幕一区| 欧美一区二区三区电影| 日韩欧美综合在线| 亚洲精品在线观看网站| 国产精品午夜春色av| 亚洲美女偷拍久久| 亚洲国产精品视频| 欧美aaaaa成人免费观看视频| 乱中年女人伦av一区二区|