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

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

?? lb_cm.c

?? 中國石油二期加油站IC系統后臺通訊軟件
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*
***********************************************************************************************************
													  Amos
										  The Real_Time Operation System
												   Multi Task
								 (c) Copyright 1998-2002, ShangYaoHui, Shenzhen
											  All Right Reserved
												  VERSION 6.01

" By  : 商耀揮(ShangYaoHui)
 create time: 2002-7-1 22:26:27  
***********************************************************************************************************
*/

/************ head file list *************/
#include "envopt.h"        /* environment options */
#include "envdep.h"        /* environment dependent */
#include "envind.h"        /* environment independent */

#include "gen.h"           /* general */
#include "cm5.h"           /* common functions */
#include "ssi.h"           /* system services */

/* header/extern include files (.x) */

#include "gen.x"           /* general */
#include "cm5.x"           /* common functions */
#include "ssi.x"           /* system services */

#include "cm_llist.h"
#include "cm_llist.x"

#ifdef WIN32
	#include "winbase.h"
	#include "winsock2.h"
#endif

#include "rx.h"
#include "rx.x"

#include "rx_msg.h"
#include "rx_msg.x"

#include "lb_cm.h"
#include "lb_cm.x"

#include "lb_recv.h"
#include "lb_recv.x"
#include "lb_xmit.h"
#include "lb_xmit.x"
#include "lb_msg.h"
#include "lb_msg.x"

#include "lb_bdy1.h"
#include "lb_bdy1.x"
#include "lb_bdy2.h"
#include "lb_bdy2.x"
#include "lb_bdy4.h"
#include "lb_bdy3.h"
#include "lb_bdy3.x"
#include "lb_bdy4.h"
#include "lb_bdy4.h"
#include "lb_bdy4.x"
#include "lb_bdy5.h"
#include "lb_bdy5.x"
/************* const define **************/

/******** import variable declare ********/

/******* gloable variable declare ********/

/*********** function declare ************/

/********** function prototype ***********/

static unsigned int crc_table[256] = 
{
	0x0000, 0xc0c1, 0xc181, 0x0140,
	0xc301, 0x03c0, 0x0280, 0xc241,
	0xc601, 0x06c0, 0x0780, 0xc741,
	0x0500, 0xc5c1, 0xc481, 0x0440,
	0xcc01, 0x0cc0, 0x0d80, 0xcd41,
	0x0f00, 0xcfc1, 0xce81, 0x0e40,
	0x0a00, 0xcac1, 0xcb81, 0x0b40,
	0xc901, 0x09c0, 0x0880, 0xc841,
	0xd801, 0x18c0, 0x1980, 0xd941,
	0x1b00, 0xdbc1, 0xda81, 0x1a40,
	0x1e00, 0xdec1, 0xdf81, 0x1f40,
	0xdd01, 0x1dc0, 0x1c80, 0xdc41,
	0x1400, 0xd4c1, 0xd581, 0x1540,
	0xd701, 0x17c0, 0x1680, 0xd641,
	0xd201, 0x12c0, 0x1380, 0xd341,
	0x1100, 0xd1c1, 0xd081, 0x1040,
	0xf001, 0x30c0, 0x3180, 0xf141,
	0x3300, 0xf3c1, 0xf281, 0x3240,
	0x3600, 0xf6c1, 0xf781, 0x3740,
	0xf501, 0x35c0, 0x3480, 0xf441,
	0x3c00, 0xfcc1, 0xfd81, 0x3d40,
	0xff01, 0x3fc0, 0x3e80, 0xfe41,
	0xfa01, 0x3ac0, 0x3b80, 0xfb41,
	0x3900, 0xf9c1, 0xf881, 0x3840,
	0x2800, 0xe8c1, 0xe981, 0x2940,
	0xeb01, 0x2bc0, 0x2a80, 0xea41,
	0xee01, 0x2ec0, 0x2f80, 0xef41,
	0x2d00, 0xedc1, 0xec81, 0x2c40,
	0xe401, 0x24c0, 0x2580, 0xe541,
	0x2700, 0xe7c1, 0xe681, 0x2640,
	0x2200, 0xe2c1, 0xe381, 0x2340,
	0xe101, 0x21c0, 0x2080, 0xe041,
	0xa001, 0x60c0, 0x6180, 0xa141,
	0x6300, 0xa3c1, 0xa281, 0x6240,
	0x6600, 0xa6c1, 0xa781, 0x6740,
	0xa501, 0x65c0, 0x6480, 0xa441,
	0x6c00, 0xacc1, 0xad81, 0x6d40,
	0xaf01, 0x6fc0, 0x6e80, 0xae41,
	0xaa01, 0x6ac0, 0x6b80, 0xab41,
	0x6900, 0xa9c1, 0xa881, 0x6840,
	0x7800, 0xb8c1, 0xb981, 0x7940,
	0xbb01, 0x7bc0, 0x7a80, 0xba41,
	0xbe01, 0x7ec0, 0x7f80, 0xbf41,
	0x7d00, 0xbdc1, 0xbc81, 0x7c40,
	0xb401, 0x74c0, 0x7580, 0xb541,
	0x7700, 0xb7c1, 0xb681, 0x7640,
	0x7200, 0xb2c1, 0xb381, 0x7340,
	0xb101, 0x71c0, 0x7080, 0xb041,
	0x5000, 0x90c1, 0x9181, 0x5140,
	0x9301, 0x53c0, 0x5280, 0x9241,
	0x9601, 0x56c0, 0x5780, 0x9741,
	0x5500, 0x95c1, 0x9481, 0x5440,
	0x9c01, 0x5cc0, 0x5d80, 0x9d41,
	0x5f00, 0x9fc1, 0x9e81, 0x5e40,
	0x5a00, 0x9ac1, 0x9b81, 0x5b40,
	0x9901, 0x59c0, 0x5880, 0x9841,
	0x8801, 0x48c0, 0x4980, 0x8941,
	0x4b00, 0x8bc1, 0x8a81, 0x4a40,
	0x4e00, 0x8ec1, 0x8f81, 0x4f40,
	0x8d01, 0x4dc0, 0x4c80, 0x8c41,
	0x4400, 0x84c1, 0x8581, 0x4540,
	0x8701, 0x47c0, 0x4680, 0x8641,
	0x8201, 0x42c0, 0x4380, 0x8341,
	0x4100, 0x81c1, 0x8081, 0x4040
};
#if 0
U CheckCRC(unsigned char cSerID,unsigned char *cData,unsigned char cData_len)reentrant
{
	unsigned int s;
	unsigned int w;
	signed int c;

	s = 1;
	for(w=0;w<cData_len-2;w++)
	{
		c = *cData++;
		s =( crc_table[(s^c) & 0xFF] ^ (s / 256)) ;
	}/*for*/
	if(cSerID == CHECKSUM)
	{
		*cData =  (unsigned char)(s>>8) & 0x7f;
		*(cData+1) = (unsigned char)(s & 0x00ff) & 0x7f;
		return OBJECT_TRUE;
	}
	else
	{
		if((*cData != ((s>>8) & 0x7f)) || (*(cData+1) != (s & 0x7f)))
		{
			return OBJECT_FALSE;
		}
		else
		{
			return OBJECT_TRUE;
		}
	}
}/*calc_crc*/
#endif

S16 lbChkCrc(Data * data, MsgLen len)
{
	U32 s;
	U32 w;
	S32 c;
	if(data == NULLP || len < 3)
	{
		RXLOGERROR(ENTSC, 0, data , "invalid param");
		RETVALUE(RFAILED);
	}

	s = 1;
	for(w=0;w<(U32)len-2;w++)
	{
		c = *data++;
		s =( crc_table[(s^c) & 0xFF] ^ (s / 256)) ;
	}/*for*/
	if((*data != ((s>>8) & 0x7f)) || (*(data+1) != (s & 0x7f)))
	{
		RETVALUE(RFAILED);
	}
	else
	{
		RETVALUE(ROK);
	}
}

S16 lbFillCrc(Data * data, MsgLen len)
{
	U32 s;
	U32 w;
	S32 c;
	if(data == NULLP || len < 3)
	{
		RXLOGERROR(ENTSC, 0, data , "invalid param");
		RETVALUE(RFAILED);
	}

	s = 1;
	for(w=0;w<(U32)len-2;w++)
	{
		c = *data++;
		s =( crc_table[(s^c) & 0xFF] ^ (s / 256)) ;
	}/*for*/


	*data =  (U8)(s>>8) & 0x7f;
	*(data+1) = (U8)(s & 0xff) & 0x7f;
	RETVALUE(ROK);
}

U32 getMachNum(void)
{
	RETVALUE(CFG_MACH_NUM);
}


ScCommCb_s * createScCommCb(EquCfgEntry_s * equ)
{
	ScCommCb_s * scCommCb;
	DCB dcb;
	COMSTAT commStat;
	S32 err, len, actualLen;


	if(ROK != SGetSBuf(0, 0, (Data **)&scCommCb, sizeof(ScCommCb_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(NULLP);
	}

	sprintf(scCommCb->commName, "COM%d", equ->entry.channelId);


	/* modify by shang 2002-7-10 13:47:37 */
#if 0 /* last code */
	scCommCb->comm = CreateFile(scCommCb->commName,
								GENERIC_READ|GENERIC_WRITE,
								0,
								NULLP,OPEN_EXISTING,
								FILE_FLAG_OVERLAPPED,
								NULLP);

#else /* new code */
	scCommCb->comm = CreateFile(scCommCb->commName,
								GENERIC_READ|GENERIC_WRITE,
								0,
								NULLP,OPEN_EXISTING,
								FILE_FLAG_RANDOM_ACCESS,
								NULLP);

#endif /* end modify */

	/* modify by shang is over 2002-7-10 13:47:37*/


	if(scCommCb->comm == INVALID_HANDLE_VALUE)
	{
		SPutSBuf(0, 0, (Data *)scCommCb, sizeof(ScCommCb_s));
		RXLOGERROR(0, 0, 0, "Falte error: can not open comm");
		RETVALUE(NULLP);
	}

	SetCommMask(scCommCb->comm, EV_RXCHAR | EV_TXEMPTY);                         
	SetupComm( scCommCb->comm, 2048, 2048);

	PurgeComm( scCommCb->comm, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );

	scCommCb->timeOut.ReadIntervalTimeout = -1;
	scCommCb->timeOut.ReadTotalTimeoutConstant = 10000;
	scCommCb->timeOut.ReadTotalTimeoutMultiplier = 1000;
	scCommCb->timeOut.WriteTotalTimeoutConstant = 10000;
	scCommCb->timeOut.WriteTotalTimeoutMultiplier = 1000;
	SetCommTimeouts(scCommCb->comm, &scCommCb->timeOut);

	GetCommState(scCommCb->comm, &dcb);

	dcb.BaudRate = CBR_9600;

	dcb.ByteSize = 8;
	dcb.Parity = NOPARITY;
	dcb.StopBits = ONESTOPBIT ;
	dcb.fBinary = TRUE;
	dcb.fParity = FALSE;

	dcb.fDtrControl = TRUE;
	dcb.fRtsControl = FALSE;

	SetCommState(scCommCb->comm, &dcb);
	scCommCb->equ = equ;
	scCommCb->crrntSide = 0;

	err = ClearCommError(scCommCb->comm, &err, &commStat );
	if(err == 0)
	{
		err = GetLastError();
	}
	len = commStat.cbInQue;

	if(len > 0)
	{
		Data * recvBuf;

		if(ROK != SGetSBuf(0, 0, &recvBuf, len))
		{
			RXLOGERROR(ENTSC, 0, 0, "Error: no buf to recv comm message");
			RETVALUE(NULLP);
		}

		ReadFile(scCommCb->comm, recvBuf, len, &actualLen, NULLP);
		SPutSBuf(0, 0, recvBuf, len);
	}

	RETVALUE(scCommCb);
}

U8 getGunNum(U32 machId)
{
	RETVALUE(3);
}

U8 getOilType(U32 machId, U8 sideId, U8 gunId)
{
	RETVALUE(90);
}

U32 getPrice(U8 oilType)
{
	RETVALUE(200);
}

U8 getSideNum(U32 machId)
{
	RETVALUE(1);
}

S16 lbCmGetCmdNode(TranCb_s * tran, CmdMsg_s ** ret_cmdNode)
{
	CmdMsg_s * cmdNode;

	if(ROK != SGetSBuf(0, 0, (Data **)&cmdNode, sizeof(CmdMsg_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}
	memset(cmdNode, 0, sizeof(CmdMsg_s));
	cmLListAdd2Tail(&tran->cmdLst, (CmLList *)cmdNode);
	cmdNode->tran = tran;
	*ret_cmdNode = cmdNode;
	RETVALUE(ROK);
}

S16 lbCmDestroyCmdNode(CmdMsg_s * cmdNode)
{
	if(cmdNode == NULLP)
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(cmdNode->msg)
	{
		SPutMsg(cmdNode->msg);
	}

	cmLListDelFrm(&cmdNode->tran->cmdLst, (CmLList *)cmdNode);

	if(cmLListLen(&cmdNode->tran->cmdLst) == 0)
	{
		cmLListDelFrm(&cmdNode->tran->entry->tranList, (CmLList *)cmdNode->tran);
		if(cmLListLen(&cmdNode->tran->entry->tranList) == 0)
		{
			cmLListDelFrm(&rxCb.rqstList, (CmLList *)cmdNode->tran->entry);
			SPutSBuf(0, 0, (Data *)cmdNode->tran->entry, sizeof(RxCmdEntry_s));

		}
		SPutSBuf(0, 0, (Data *)cmdNode->tran, sizeof(TranCb_s));
	}
	SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));

	RETVALUE(ROK);
}

TranCb_s * lbCmGetTran(RxCmdEntry_s * entry, EquCfgEntry_s * equ)
{
	TranCb_s * tran;

	if(ROK != SGetSBuf(0, 0, (Data **)&tran, sizeof(TranCb_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(NULLP);
	}
	cmLListInit(&tran->cmdLst);
	tran->transStat = ROK;
	tran->equ = equ;
	tran->entry = entry;
	cmLListAdd2Tail(&entry->tranList, (CmLList *)tran);

	RETVALUE(tran);
}


S16 lbCmDestroyTran(TranCb_s * tran)
{
	CmdMsg_s * cmdNode, * tempNode;

	cmdNode = (CmdMsg_s *)cmLListFirst(&tran->cmdLst);
	while(NULLP != cmdNode)
	{
		tempNode = (CmdMsg_s *)cmLListNext(&tran->cmdLst);

		lbCmDestroyCmdNode(cmdNode);
		cmdNode = tempNode;
	}
	cmLListDelFrm(&tran->entry->tranList, (CmLList *)tran);
	if(cmLListLen(&tran->entry->tranList) == 0)
	{
		cmLListDelFrm(&rxCb.rqstList, (CmLList *)tran->entry);
		SPutSBuf(0, 0, (Data *)tran->entry, sizeof(RxCmdEntry_s));
	}
	SPutSBuf(0, 0, (Data *)tran, sizeof(TranCb_s));

	RETVALUE(ROK);
}

S16 lbCmGetCmdEntry(U8 rqstId, U8 type, RxCmdEntry_s ** entry)
{
	RxCmdEntry_s * cmdEntry;

	if(ROK != SGetSBuf(0, 0, (Data **)&cmdEntry, sizeof(RxCmdEntry_s)))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}
	cmdEntry->cmdType = type;
	cmdEntry->rqstId = rqstId;
	cmdEntry->errCode = 0;
	cmLListInit(&cmdEntry->tranList);
	cmLListAdd2Tail(&rxCb.rqstList, (CmLList *)cmdEntry);
	*entry = cmdEntry;
	RETVALUE(ROK);
}
S16 lbCmdDestroyCmdEntry(RxCmdEntry_s * rqst)
{
	TranCb_s *tran, * temp;

	tran = (TranCb_s *)cmLListFirst(&rqst->tranList);
	while(NULLP != tran)
	{
		temp = (TranCb_s *)cmLListNext(&rqst->tranList);
		lbCmDestroyTran(tran);
		tran = temp;
	}
	cmLListDelFrm(&rxCb.rqstList, (CmLList *)rqst);

	RETVALUE(ROK);
}



S16 lbCmBuildCmdA(EquCfgEntry_s * equ, TranCb_s * tran, U32 action, U8 cmdCode)
{
	CmdMsg_s * cmdNode;
	MsgA_s cmd;
	ScCommCb_s * scCommCb;
	Buffer * msg;

	scCommCb = equ->scCommCb;

	if(ROK != lbCmGetCmdNode(tran, &cmdNode))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(ROK != SGetMsg(0, 0, &msg))
	{
		SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}


	cmd.hdr.frameStart = 0x55aa;
	cmd.hdr.dataLen = 2;
	cmd.hdr.sideId = equ->entry.sideId;
	cmd.cmd = cmdCode;

	SAddPstMsgMult((Data *)&cmd, (MsgLen)(cmd.hdr.dataLen + 3), msg);

	cmdNode->msg = msg;
	cmdNode->msgCode = cmdCode;
	cmdNode->action = action;
	cmdNode->machId = equ->entry.machId;
	cmdNode->sideId = equ->entry.sideId;
	cmdNode->gunId = equ->entry.pGunId;
	cmdNode->dir = CMD_DIR;
	cmdNode->chId = equ->entry.channelId;
	cmdNode->stat = RDY_SEND;

	cmdNode->timer = 1;
	cmdNode->retry = CMD_RETRY_TIMES;
	cmdNode->loadTimer = CMD_RETRY_TIMEOUT;

	RETVALUE(ROK);

}

S16 lbCmBuildCmdB(EquCfgEntry_s * equ, TranCb_s * tran, U8 val, U32 action, U8 cmdCode)
{
	CmdMsg_s * cmdNode;
	MsgB_s cmd;
	ScCommCb_s * scCommCb;
	Buffer * msg;

	scCommCb = equ->scCommCb;

	if(ROK != lbCmGetCmdNode(tran, &cmdNode))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(ROK != SGetMsg(0, 0, &msg))
	{
		SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}


	cmd.hdr.frameStart = 0x55aa;
	cmd.hdr.dataLen = 3;
	cmd.hdr.sideId = equ->entry.sideId;
	cmd.cmd = cmdCode;
	cmd.val = val;

	SAddPstMsgMult((Data *)&cmd, (MsgLen)(cmd.hdr.dataLen + 3), msg);

	cmdNode->msg = msg;
	cmdNode->msgCode = cmdCode;
	cmdNode->action = action;
	cmdNode->machId = equ->entry.machId;
	cmdNode->sideId = equ->entry.sideId;
	cmdNode->gunId = equ->entry.pGunId;
	cmdNode->dir = CMD_DIR;
	cmdNode->chId = equ->entry.channelId;
	cmdNode->stat = RDY_SEND;
	cmdNode->timer = 1;
	cmdNode->retry = CMD_RETRY_TIMES;
	if(cmdNode->msgCode == 0xda)
	{
		cmdNode->loadTimer = 5;
	}
	else
	{

		cmdNode->loadTimer = CMD_RETRY_TIMEOUT;
	}

	RETVALUE(ROK);

}

S16 lbCmBuildCfmCmd(EquCfgEntry_s * equ, TranCb_s * tran, U32 rqstType, U32 action, U8 cmdCode)
{
	CmdMsg_s * cmdNode;
	MsgB_s cmd;
	ScCommCb_s * scCommCb;
	Buffer * msg;

	scCommCb = equ->scCommCb;

	if(ROK != lbCmGetCmdNode(tran, &cmdNode))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(ROK != SGetMsg(0, 0, &msg))
	{
		SPutSBuf(0, 0, (Data *)cmdNode, sizeof(CmdMsg_s));
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}


	cmd.hdr.frameStart = 0x55aa;
	cmd.hdr.dataLen = 3;
	cmd.hdr.sideId = equ->entry.sideId;
	cmd.cmd = cmdCode;

	SAddPstMsgMult((Data *)&cmd, (MsgLen)(cmd.hdr.dataLen + 3), msg);

	cmdNode->msg = msg;
	cmdNode->msgCode = cmdCode;
	cmdNode->action = action;
	cmdNode->rqstType = rqstType;
	cmdNode->machId = equ->entry.machId;
	cmdNode->sideId = equ->entry.sideId;
	cmdNode->gunId = equ->entry.pGunId;
	cmdNode->dir = CMD_DIR;
	cmdNode->chId = equ->entry.channelId; 
	cmdNode->stat = RDY_SEND;

	cmdNode->timer = 1;
	cmdNode->retry = CMD_RETRY_TIMES;
	cmdNode->loadTimer = CMD_RETRY_TIMEOUT;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品污污网站在线观看| 不卡一二三区首页| 国产精品一卡二| 色综合一个色综合亚洲| 欧美精选在线播放| 久久人人超碰精品| 91网站最新地址| 精品视频一区二区不卡| 欧美xxxx老人做受| 日韩理论片在线| 另类小说图片综合网| av电影在线观看一区| 亚洲成av人片一区二区| 国产一区二区在线观看视频| 色婷婷亚洲精品| 日韩视频免费观看高清完整版在线观看| 欧美美女直播网站| 国产日本一区二区| 午夜精品久久久久久久| 国产精品亚洲第一区在线暖暖韩国| 色伊人久久综合中文字幕| 午夜日韩在线电影| 国产激情视频一区二区在线观看| 色综合婷婷久久| 亚洲自拍偷拍麻豆| 国产一区二区调教| 欧美性色黄大片| 夜夜精品视频一区二区 | 一区二区三区高清不卡| 麻豆成人免费电影| 色菇凉天天综合网| 久久精品视频网| 日韩高清电影一区| 91福利精品视频| 久久精品一区四区| 婷婷成人激情在线网| 99久久精品免费看国产免费软件| 欧美大片国产精品| 亚洲福利视频一区二区| 丁香五精品蜜臀久久久久99网站| 欧美一区二区三区四区高清| 亚洲另类在线一区| 国产电影精品久久禁18| 欧美mv和日韩mv的网站| 亚洲风情在线资源站| 91丨九色丨国产丨porny| 日韩一区中文字幕| 久久精品国产精品青草| 色噜噜久久综合| 国产精品美女一区二区| 精品无人码麻豆乱码1区2区| 欧美日韩电影一区| 亚洲国产日韩综合久久精品| 亚洲蜜桃精久久久久久久| 精品国产免费视频| 一区二区三区日本| 91污在线观看| 国产精品久久久久精k8| 国产高清不卡一区二区| 欧美不卡激情三级在线观看| 麻豆一区二区99久久久久| 91精品国产色综合久久不卡电影| 亚洲免费高清视频在线| 91丨九色丨国产丨porny| ●精品国产综合乱码久久久久| 粉嫩欧美一区二区三区高清影视| 久久综合给合久久狠狠狠97色69| 九色综合国产一区二区三区| 欧美videos中文字幕| 韩国三级中文字幕hd久久精品| 欧美大片顶级少妇| 国产在线视频不卡二| 久久免费美女视频| 国产不卡视频在线播放| 国产欧美日韩麻豆91| 成人午夜免费视频| 中文字幕一区三区| 91年精品国产| 伊人性伊人情综合网| 在线观看免费视频综合| 亚洲va韩国va欧美va精品| 337p亚洲精品色噜噜| 精品亚洲欧美一区| 久久精品人人做| 99久久伊人精品| 亚洲精品免费在线播放| 欧美亚洲日本一区| 日韩国产一二三区| 精品免费99久久| 国产二区国产一区在线观看| 九色|91porny| 日本一区二区综合亚洲| 91在线云播放| 亚洲国产aⅴ天堂久久| 日韩一区二区三区四区| 国产精品99久久久久久宅男| 亚洲视频免费在线观看| 欧美伊人久久久久久久久影院 | 91免费视频观看| 午夜欧美视频在线观看| 精品免费国产一区二区三区四区| 国产经典欧美精品| 亚洲三级视频在线观看| 欧美精品v日韩精品v韩国精品v| 高清国产一区二区| 91免费观看视频| 久久国产日韩欧美精品| 日日夜夜免费精品| 青草av.久久免费一区| 日韩精品一二区| 丝袜a∨在线一区二区三区不卡| 亚洲三级在线免费| 樱花影视一区二区| 亚洲亚洲人成综合网络| 一区二区三区日韩精品视频| 91精品国产一区二区三区香蕉| 亚洲1区2区3区4区| 久久精品无码一区二区三区| 一本到不卡精品视频在线观看| 亚洲日本中文字幕区| 日韩欧美综合在线| 成人av电影在线观看| 色乱码一区二区三区88| 亚洲精品成人a在线观看| 久久99国产精品久久| 777奇米四色成人影色区| 国产亚洲女人久久久久毛片| 亚洲欧美激情插 | 日韩情涩欧美日韩视频| 欧美在线播放高清精品| 色成人在线视频| 亚洲精品一区二区三区精华液 | 欧美在线观看视频在线| 日韩精品一区二区三区swag | 欧美一区二区日韩| 国产精品私人影院| 亚洲桃色在线一区| 久久疯狂做爰流白浆xx| 国产一区二区三区免费观看| 国内外成人在线视频| 国产在线不卡一卡二卡三卡四卡| 91精品欧美久久久久久动漫| 中文字幕免费在线观看视频一区| 亚洲影院在线观看| aaa亚洲精品一二三区| 久久久久久久久久久久久夜| 精品一区二区三区影院在线午夜| 欧美色涩在线第一页| 亚洲欧美经典视频| 欧美一二三在线| 自拍偷拍国产精品| 91麻豆国产在线观看| 有码一区二区三区| 91国模大尺度私拍在线视频| 亚洲女爱视频在线| 欧美三级一区二区| 日本不卡的三区四区五区| 日韩一区二区中文字幕| 国产中文字幕精品| 日韩欧美高清dvd碟片| 黑人巨大精品欧美黑白配亚洲| 精品福利一二区| www.欧美.com| 亚州成人在线电影| 久久免费视频一区| 一本色道亚洲精品aⅴ| 亚洲综合免费观看高清在线观看| 在线不卡的av| 国产成人一级电影| 亚洲愉拍自拍另类高清精品| 欧美一级片在线| 精油按摩中文字幕久久| xf在线a精品一区二区视频网站| 国产成人精品1024| 一区二区三区国产| 国产精品美女久久久久久久久 | 色综合天天性综合| 蜜桃视频第一区免费观看| 综合欧美一区二区三区| 欧美成人aa大片| 色婷婷激情一区二区三区| 亚洲欧美一区二区在线观看| 欧美三级午夜理伦三级中视频| 国产电影精品久久禁18| 五月天久久比比资源色| 国产精品国产馆在线真实露脸 | 国产麻豆成人精品| 五月天亚洲精品| 亚洲一区视频在线观看视频| 久久久精品影视| 日韩网站在线看片你懂的| 欧美日韩成人在线一区| 在线区一区二视频| 亚洲国产一二三| 亚洲成人免费影院| 欧美国产日韩亚洲一区| 在线不卡a资源高清| 欧美精品123区| 欧美熟乱第一页| 欧美日韩一级二级|