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

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

?? rfcomm.c

?? blue tooth protocol stack source code
?? C
?? 第 1 頁 / 共 5 頁
字號:
					      mcc_short_pkt->h.length.len,					      MCC_RSP);			}		}		break;    	case FCON:  /* Flow control on command */		D_CTRL(FNC"Received Flow control on command\n");		if (mcc_short_pkt->h.type.cr == MCC_CMD) {			rfcomm->dlci[0].state = CONNECTED;			rfcomm_fcon_msg(rfcomm, MCC_RSP);		}		break;    	case FCOFF:  /* Flow control off command */		D_CTRL(FNC"Received Flow control off command\n");		if (mcc_short_pkt->h.type.cr == MCC_CMD) {			rfcomm->dlci[0].state = FLOW_STOPPED;			rfcomm_fcoff_msg(rfcomm, MCC_RSP);		}		break;    	case MSC:  /* Modem status command */	{		u8 dlci;		u8 v24_sigs;				dlci = (mcc_short_pkt->value[0]) >> 2;		v24_sigs = mcc_short_pkt->value[1];		if (rfcomm->dlci[dlci].state == DISCONNECTED) {			send_dm(rfcomm, dlci);			break;		}		if (mcc_short_pkt->h.type.cr == MCC_CMD) {			D_CTRL(FNC"Received Modem status command\n");			if (v24_sigs & 2) {				D_CTRL(FNC"Device unable to accept frames\n");				rfcomm->dlci[dlci].state = FLOW_STOPPED;			} else {				rfcomm->dlci[dlci].state = CONNECTED;				D_CTRL(FNC"Flow ON, dlci %d\n", dlci);  			}			rfcomm_msc_msg(rfcomm, v24_sigs, MCC_RSP, dlci);						if (!(rfcomm->dlci[dlci].initiated) && !(rfcomm->dlci[dlci].initiator)) {				rfcomm_msc_msg(rfcomm, EA | RTR | RTC | DV,					       MCC_CMD, dlci);				rfcomm->dlci[dlci].initiated = TRUE;			}		} else {			D_CTRL(FNC"Received Modem status response\n");			if (v24_sigs & 2) {				D_CTRL(FNC"Flow stop accepted\n");			}		}		break;	}    	case RPN:  /* Remote port negotiation command */	{		u8 tmp_dlci;		tmp_dlci = (mcc_short_pkt->value[0]) >> 2;				if (mcc_short_pkt->h.type.cr == MCC_CMD) {			if (mcc_short_pkt->h.length.len == 1) {				D_CTRL(FNC"Received Remote port negotiation command\n");				rfcomm_rpn_msg(rfcomm, MCC_RSP, tmp_dlci, 0);			} else {				/* Accept the other sides settings (accept all				   for now) */				D_CTRL(FNC"Received Remote port negotiation respons\n");				memcpy(&rpn_val, &mcc_short_pkt->value[1], 8);				rfcomm_rpn_msg(rfcomm, MCC_RSP, tmp_dlci, 0);				/* Zero the parametermask after respons */				memset(&rpn_val.pm, 0, 2);			}		}			break;	}	case RLS: /* Remote line status */	{		u8 tmp_dlci;		u8 err_code;					D_CTRL(FNC"Received Remote line status\n");		if (mcc_short_pkt->h.type.cr == MCC_CMD) {			tmp_dlci = mcc_short_pkt->value[0] >> 2;			err_code = mcc_short_pkt->value[1];					rfcomm_rls_msg(rfcomm, MCC_RSP, tmp_dlci, err_code);		}		break;	}	case PN:  /* DLC parameter negotiation */	{		pn_msg *pn_pkt;		D_CTRL(FNC"Received DLC parameter negotiation, PN\n");		if (longpkt) {			/* If a long length field is used, then move the			   payload pointer one byte ahead */			data++;		}  		pn_pkt = (pn_msg*) data;		if (pn_pkt->mcc_s_head.type.cr == MCC_CMD) {			u8 tmp_dlci;			u16 frame_size;			u8 credit, nbrof_credits;						/* If the incoming messages is a command we send			   back a response */			tmp_dlci = pn_pkt->dlci;			frame_size = le16_to_cpuu(&pn_pkt->frame_size);			frame_size = MIN(frame_size, rfcomm->l2cap->local_mtu - RFCOMM_MAX_HDR_SIZE);			credit = pn_pkt->credit_flow;			nbrof_credits = pn_pkt->credits;			if (credit) {				DSYS(FNC"Using credit flow control, initiating credits are %d on dlci %d\n", nbrof_credits, tmp_dlci);				rfcomm->credit_flow = TRUE;				rfcomm->dlci[tmp_dlci].local_credits = nbrof_credits;				D_CTRL(FNC"Local credits:%d\n", rfcomm->dlci[tmp_dlci].local_credits); 				rfcomm->dlci[tmp_dlci].remote_credits = START_CREDITS;				D_CTRL(FNC"Remote credits: %d\n",rfcomm->dlci[tmp_dlci].remote_credits);				send_pn_msg(rfcomm, pn_pkt->prior, frame_size,					    credit ^ 1, START_CREDITS, 					    tmp_dlci, MCC_RSP);			} else {				send_pn_msg(rfcomm, pn_pkt->prior, frame_size,					    0, 0, tmp_dlci, MCC_RSP);			}			rfcomm->dlci[tmp_dlci].mtu = frame_size;			D_CTRL(FNC"process_mcc : mtu set to %d\n", 			      rfcomm->dlci[tmp_dlci].mtu);		} else {			u8 tmp_dlci;			tmp_dlci = pn_pkt->dlci;			D_CTRL(FNC"received PN response with:\n");			D_CTRL(FNC"Frame size:%d\n", le16_to_cpuu(&pn_pkt->frame_size));			D_CTRL(FNC"credit_flow:%d\n", pn_pkt->credit_flow);			D_CTRL(FNC"credits:%d\n", pn_pkt->credits);						rfcomm->dlci[tmp_dlci].mtu  = le16_to_cpuu(&pn_pkt->frame_size);						if (pn_pkt->credit_flow == 0xe) {				DSYS(FNC"Credit flow control used\n");				rfcomm->credit_flow = TRUE;				rfcomm->dlci[tmp_dlci].local_credits = pn_pkt->credits;				D_CTRL(FNC"Local credits:%d\n", rfcomm->dlci[tmp_dlci].local_credits); 			}			D_CTRL(FNC"process_mcc : mtu set on dlci:%d to %d\n", 			       tmp_dlci, rfcomm->dlci[tmp_dlci].mtu);			if (rfcomm->dlci[tmp_dlci].state == NEGOTIATING) {				send_sabm(rfcomm, tmp_dlci);			}		}		break;	}    	case NSC: /* Non supported command resonse */		D_CTRL(FNC"Received Non supported command response\n");		break;    	default:  /* Non supported command received */		D_REC(FNC"Received a non supported command\n");    		send_nsc_msg(rfcomm, mcc_short_pkt->h.type, MCC_RSP);    		break;	}}/* Sending packet functions *//* Creates a UA packet and puts it at the beginning of the pkt pointer */                         s32 send_ua(rfcomm_con *rfcomm, u8 dlci){	bt_tx_buf *tx_buf;	short_frame *ua_pkt;	u32 rfcomm_frame_size;  	D_CTRL("send_ua: Creating UA packet to DLCI %d\n",dlci);	rfcomm_frame_size = sizeof(short_frame) + FCS_SIZE;	tx_buf = subscribe_bt_buf(sizeof(rfcomm_tx_buf) + rfcomm_frame_size);		if (!tx_buf) {		D_ERR("send_ua : didn't get a valid tx_buf\n");		return -ENOMEM;	}		tx_buf->cur_len = rfcomm_frame_size;  	ua_pkt = (short_frame*) (tx_buf->data + sizeof(rfcomm_tx_buf));  	/* Always one in the address field */	ua_pkt->h.addr.ea = 1;	/* If we are the responder the cr bit should be set in a response */	ua_pkt->h.addr.cr = ((~(rfcomm->initiator)) & 0x1);	/* The control channel is on DLCI 0, i.e. d-bit should not be set */	ua_pkt->h.addr.d = (dlci) & 0x1;	ua_pkt->h.addr.server_chn = (dlci) >> 0x1;	/* In RFCOMM the F-bit should always be set when sending UA packets */	ua_pkt->h.control = SET_PF(UA);	/* The UA packet has length zero, and then the ea bit in the length	   field should  be set */	ua_pkt->h.length.ea = 1;	ua_pkt->h.length.len = 0;	ua_pkt->data[0] = crc_calc((u8*) ua_pkt, LONG_CRC_CHECK);  	return l2cap_send_data(tx_buf,rfcomm->l2cap);}/* Creates a DM packet and puts it at the beginning of the pkt pointer */s32 send_dm(rfcomm_con *rfcomm, u8 dlci){	bt_tx_buf *tx_buf;	short_frame *dm_pkt;	u32 rfcomm_frame_size;  	D_CTRL("send_dm: Creating DM packet to DLCI %d\n",dlci);  	rfcomm_frame_size = sizeof(short_frame) + FCS_SIZE;	tx_buf = subscribe_bt_buf(sizeof(rfcomm_tx_buf) + rfcomm_frame_size);	if (!tx_buf) {		D_ERR("send_dm : didn't get a valid tx_buf\n");		return -ENOMEM;	}	tx_buf->cur_len = rfcomm_frame_size;  	dm_pkt = (short_frame*) (tx_buf->data + sizeof(rfcomm_tx_buf));	/* Always one in the address field */	dm_pkt->h.addr.ea = 1;	/* If we are the responder the cr bit should be set in a response */	dm_pkt->h.addr.cr =  ((~(rfcomm->initiator)) & 0x1);	/* The control channel is on DLCI 0, i.e. d-bit should not be set */	dm_pkt->h.addr.d = dlci & 0x1;	dm_pkt->h.addr.server_chn = dlci >> 0x1;	/* In RFCOMM the F-bit should always be set when sending DM packets */	dm_pkt->h.control = SET_PF(DM);	/* The DM packet has length zero, and then the ea bit in the length	   field should  be set */	dm_pkt->h.length.ea = 1;	dm_pkt->h.length.len = 0;	dm_pkt->data[0] = crc_calc((u8*) dm_pkt, LONG_CRC_CHECK);	return l2cap_send_data(tx_buf,rfcomm->l2cap);}s32 send_sabm(rfcomm_con *rfcomm, u8 dlci){	bt_tx_buf *tx_buf;	short_frame *sabm_pkt;	u32 rfcomm_frame_size;	D_CTRL("send_sabm: Creating SABM packet to DLCI %d\n",dlci);	rfcomm_frame_size = sizeof(short_frame) + FCS_SIZE;	tx_buf = subscribe_bt_buf(sizeof(rfcomm_tx_buf) + rfcomm_frame_size);		if (!tx_buf) {		D_ERR("send_sabm : didn't get a valid tx_buf\n");		return -ENOMEM;	}	tx_buf->cur_len = rfcomm_frame_size;  	sabm_pkt = (short_frame*) (tx_buf->data + sizeof(rfcomm_tx_buf));  	/* Always one in the address field */	sabm_pkt->h.addr.ea = 1;	/* If we are the responder the cr bit should be set in a response */	sabm_pkt->h.addr.cr = ((rfcomm->initiator) & 0x1);	sabm_pkt->h.addr.d = dlci & 0x1;	sabm_pkt->h.addr.server_chn = dlci >> 0x1;	/* In RFCOMM the F-bit should always be set when sending SABM packets	 */	sabm_pkt->h.control = SET_PF(SABM);	/* The SABM packet has length zero, and then the ea bit in the length	   field should  be set */	sabm_pkt->h.length.ea = 1;	sabm_pkt->h.length.len = 0;	sabm_pkt->data[0] = crc_calc((u8*) sabm_pkt, LONG_CRC_CHECK);  	return l2cap_send_data(tx_buf,rfcomm->l2cap);}s32 send_disc(rfcomm_con *rfcomm, u8 dlci){	bt_tx_buf *tx_buf;	short_frame *disc_pkt;	u32 rfcomm_frame_size;	D_CTRL("send_disc: Creating DISC packet to DLCI %d\n",dlci);	rfcomm_frame_size = sizeof(short_frame) + FCS_SIZE;	tx_buf = subscribe_bt_buf(sizeof(rfcomm_tx_buf) + rfcomm_frame_size);	if (!tx_buf) {		D_ERR("send_disc : didn't get a valid tx_buf\n");		return -ENOMEM;	}	tx_buf->cur_len = rfcomm_frame_size;  	disc_pkt = (short_frame*) (tx_buf->data + sizeof(rfcomm_tx_buf));  	/* Always one in the address field */	disc_pkt->h.addr.ea = 1;	/* If we are the responder the cr bit should be set in a response */	disc_pkt->h.addr.cr = ((rfcomm->initiator) & 0x1);	disc_pkt->h.addr.d = dlci & 0x1;	disc_pkt->h.addr.server_chn = dlci >> 0x1;	/* In RFCOMM the F-bit should always be set when sending DISC packets	 */	disc_pkt->h.control = SET_PF(DISC);	/* The DISC packet has length zero, and then the ea bit in the length	   field should  be set */	disc_pkt->h.length.ea = 1;	disc_pkt->h.length.len = 0;	disc_pkt->data[0] = crc_calc((u8*) disc_pkt, LONG_CRC_CHECK);  	return l2cap_send_data(tx_buf,rfcomm->l2cap);} /* Creates a UIH packet and puts it at the beginning of the pkt pointer   The funtion returns how many bytes the UIH packet consist of */s32 send_uih(u8 *data, u32 len, rfcomm_con *rfcomm, u8 dlci){	bt_tx_buf *tx_buf;	u32 rfcomm_frame_size;	u8  send_credit = 0;	s32 retval = 0;			D_CTRL(FNC"Creating UIH packet with %d bytes data to DLCI %d\n",	       len, dlci);	if (!rfcomm->l2cap->link_up) {		D_ERR(FNC"could not send data, baseband down\n");#ifdef __KERNEL__		return 0;#else		return -1; /* FIXME - see comment in rfcomm_send_data */#endif	}	if (rfcomm->credit_flow &&(rfcomm->dlci[dlci].remote_credits < MIN_CREDITS)) {			D_SND(FNC"Sending more credits to remote port\n");			send_credit = 1;		}		if (len > SHORT_PAYLOAD_SIZE) {		long_frame *l_pkt;    		rfcomm_frame_size = sizeof(long_frame) + len + FCS_SIZE + send_credit;		/* Check for space in buffer, don't forget the size of the		   L2CAP and HCI headers */		if (buf_write_room() < (rfcomm_frame_size					+ sizeof(rfcomm_tx_buf))) {			return 0;		}		tx_buf = subscribe_bt_buf(sizeof(rfcomm_tx_buf)					  + rfcomm_frame_size);    		if (!tx_buf) {			D_ERR(FNC"didn't get a valid tx_buf\n");			return -ENOMEM;		}		tx_buf->cur_len = rfcomm_frame_size;    		l_pkt = (long_frame*) (tx_buf->data + sizeof(rfcomm_tx_buf));		set_uih_hdr((void*) l_pkt, dlci, len, rfcomm->initiator);		if (send_credit) {			u8 newcredits = MAX_CREDITS - rfcomm->dlci[dlci].remote_credits;			l_pkt->h.control = SET_PF(UIH);			l_pkt->data[0] = (newcredits);			rfcomm->dlci[dlci].remote_credits += newcredits;			D_SND(FNC": Remote credits: %d\n",rfcomm->dlci[dlci].remote_credits);			memcpy(l_pkt->data + 1, data, len);		} else {			memcpy(l_pkt->data, data, len);		}		l_pkt->data[len + send_credit] = crc_calc((u8*) l_pkt, SHORT_CRC_CHECK);		swap_long_frame(l_pkt);	} else {		short_frame *s_pkt;		rfcomm_frame_size = sizeof(short_frame) + len + FCS_SIZE + send_credit;		/* Check for space in buffer, don't forget the size of the		   L2CAP and HCI headers */		if (buf_write_room() < (rfcomm_frame_size					+ sizeof(rfcomm_tx_buf))) {			return 0;		}		tx_buf = subscribe_bt_buf(sizeof(rfcomm_tx_buf)					  + rfcomm_frame_size);		if (!tx_buf) {			D_ERR(FNC"didn't get a valid tx_buf\n");			return -ENOMEM;		}		tx_buf->cur_len = rfcomm_frame_size;    		s_pkt = (short_frame*) (tx_buf->data + sizeof(rfcomm_tx_buf));		/* Always one */		set_uih_hdr((void*) s_pkt, dlci, len, rfcomm->initiator);		if (send_credit) {			u8 newcredits = MAX_CREDITS - rfcomm->dlci[dlci].remote_credits;						s_pkt->h.control = SET_PF(UIH);			s_pkt->data[0] = (newcredits);			rfcomm->dlci[dlci].remote_credits += newcredits;			D_SND(FNC": Remote credits: %d\n",rfcomm->dlci[dlci].remote_credits);			memcpy(s_pkt->data + 1, data, len);		} else {			memcpy(s_pkt->data, data, len);		}		s_pkt->data[len + send_credit] = crc_calc((u8*) s_pkt, SHORT_CRC_CHECK);	}	/* FIXME - How should we propagate result up to higher layers ?	   through len or success/no success? */	tx_buf->line = rfcomm->line;	if((retval = l2cap_send_data(tx_buf, rfcomm->l2cap)) < 0) {		return retval;	}		return len;}s32rfcomm_send_credits(rfcomm_con *rfcomm, u8 dlci, u8 credits){	bt_tx_buf *tx_buf;	short_frame *uih_pkt;	u32 rfcomm_frame_size;  	D_CTRL(FNC"give %d credits to dlci %d\n", credits, dlci);	rfcomm_frame_size = (sizeof(short_frame) + 1 + FCS_SIZE);	tx_buf = subscribe_bt_buf(sizeof(rfcomm_tx_buf) + rfcomm_frame_size);	if (!tx_buf) {		D_ERR("rfcomm_fcon_msg : didn't get a valid tx_buf\n");		return -ENOMEM;	}	tx_buf->cur_len = rfcomm_frame_size;  	uih_pkt = (short_frame*) (tx_buf->data + sizeof(rfcomm_tx_buf));	set_uih_hdr(uih_pkt, dlci, 0, (~rfcomm->initiator)^1);	uih_pkt->h.control = SET_PF(UIH);	uih_pkt->data[0] = credits;	uih_pkt->data[1] = crc_calc((u8*) uih_pkt, SHORT_CRC_CHECK);		return l2cap_send_data(tx_buf, rfcomm->l2cap);}/* Sends Multiplexer command packets funktions *//* Sends a test messages with a specific test pattern. */s32 rfcomm_test_msg(rfcomm_con *rfcomm, u8 *test_pattern, u32 len, u8 cr){	bt_tx_buf *tx_buf;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
人妖欧美一区二区| 亚洲色大成网站www久久九九| 精品国产凹凸成av人导航| 久久看人人爽人人| 国产精品你懂的| 视频在线观看一区| 成人午夜av在线| 欧美日本国产视频| 久久久国产一区二区三区四区小说| 久久国产尿小便嘘嘘尿| 91美女福利视频| 久久久国产精品不卡| 国产91精品露脸国语对白| 日韩一级黄色片| 成人免费观看视频| 中文在线一区二区| 蜜臀va亚洲va欧美va天堂| 欧美无砖砖区免费| 国产精品国产三级国产三级人妇| 黄网站免费久久| 91.com在线观看| 亚洲电影欧美电影有声小说| 成人av一区二区三区| 久久日一线二线三线suv| 亚洲国产日日夜夜| 91丨九色丨黑人外教| 午夜欧美大尺度福利影院在线看| 91精彩视频在线观看| 亚洲视频在线一区观看| 欧美日韩亚洲综合一区二区三区| 亚洲欧美日韩人成在线播放| 成人开心网精品视频| 香蕉成人伊视频在线观看| 精品国产乱码久久久久久夜甘婷婷| 白白色 亚洲乱淫| 国产精品久久久久久亚洲伦| 69精品人人人人| av网站一区二区三区| 日韩精品成人一区二区三区| 国产日产欧美一区| 国产凹凸在线观看一区二区| 亚洲bt欧美bt精品| 国产精品素人视频| 日韩精品在线网站| 国模一区二区三区白浆| 亚洲乱码中文字幕| 一本大道综合伊人精品热热| 一区二区三区在线免费播放| 欧美日韩电影在线播放| 不卡的电视剧免费网站有什么| 肉色丝袜一区二区| 中文字幕一区二区三区在线观看 | 在线精品视频小说1| 中文字幕一区二区三区四区不卡 | 日韩欧美电影在线| 在线观看国产一区二区| 国产a久久麻豆| 国产自产高清不卡| 男人的j进女人的j一区| 亚洲bt欧美bt精品| 亚洲欧美国产三级| 国产精品色呦呦| 国产午夜精品久久| 色哟哟国产精品| 高清在线不卡av| 国产传媒欧美日韩成人| 亚洲日穴在线视频| 中文字幕av不卡| 国产性做久久久久久| 精品99999| 精品国产1区二区| 91精品国产黑色紧身裤美女| 国产不卡视频在线播放| 国产麻豆精品95视频| 亚洲综合av网| 国产午夜精品福利| 国产情人综合久久777777| 亚洲精品一区二区三区福利| 日韩欧美专区在线| 日韩午夜精品视频| 日韩午夜在线观看视频| 日韩精品中文字幕一区二区三区| 91精品国产全国免费观看| 欧美精品视频www在线观看| 国产白丝精品91爽爽久久| 国产福利91精品| 懂色av一区二区三区免费观看| 成人深夜福利app| 99国产一区二区三精品乱码| 精品一区二区三区在线视频| 亚洲一区二区三区四区五区中文| 亚洲综合999| 日韩精品午夜视频| 久草精品在线观看| 国产成人在线观看免费网站| a在线播放不卡| 91国产成人在线| 欧美日本在线看| 日韩欧美黄色影院| 国产女人18水真多18精品一级做| 国产精品欧美一区二区三区| **性色生活片久久毛片| 亚洲在线免费播放| 美女一区二区三区在线观看| 国产乱一区二区| 经典三级在线一区| 成人av网站在线观看| 欧美性色欧美a在线播放| 欧美一级二级三级乱码| 久久精品网站免费观看| 中文字幕一区二区三区精华液| 亚洲国产一区二区在线播放| 理论片日本一区| 91在线观看一区二区| 欧美人狂配大交3d怪物一区| 国产亚洲人成网站| 亚洲综合偷拍欧美一区色| 久久国产人妖系列| 久久久精品国产免大香伊| 亚洲欧洲国产日本综合| 免费欧美日韩国产三级电影| 国产成人99久久亚洲综合精品| 欧美在线视频全部完| 久久久久久久网| 一区二区三区精品久久久| 激情都市一区二区| 在线观看国产日韩| 国产亚洲女人久久久久毛片| 亚洲h精品动漫在线观看| 国产成人午夜精品影院观看视频| 91久久精品网| 欧美国产禁国产网站cc| 天堂一区二区在线| 99精品欧美一区二区三区小说| 欧美一级免费观看| 亚洲欧洲成人精品av97| 蜜芽一区二区三区| 色综合久久99| 国产亚洲精久久久久久| 奇米精品一区二区三区在线观看 | 久久成人免费日本黄色| 在线观看网站黄不卡| 亚洲国产精品高清| 精品一区二区在线播放| 欧美日韩国产首页| 亚洲精品欧美专区| 成人一级视频在线观看| 日韩精品在线一区| 日日骚欧美日韩| 在线观看91视频| 亚洲理论在线观看| 99久久精品免费精品国产| 欧美国产激情二区三区| 国产乱子伦视频一区二区三区| 欧美一区日本一区韩国一区| 亚洲影院理伦片| 欧美最猛黑人xxxxx猛交| 《视频一区视频二区| 成人18视频在线播放| 国产欧美精品在线观看| 国产高清在线精品| 久久久综合精品| 国产在线乱码一区二区三区| 精品乱码亚洲一区二区不卡| 中文久久乱码一区二区| 国产成人午夜精品5599| 久久九九久精品国产免费直播| 韩国av一区二区| 久久这里只有精品视频网| 激情深爱一区二区| 26uuu精品一区二区在线观看| 久久成人免费日本黄色| 久久女同精品一区二区| 国产久卡久卡久卡久卡视频精品| 久久影院电视剧免费观看| 国产真实乱偷精品视频免| 久久精品一区八戒影视| 丁香桃色午夜亚洲一区二区三区| 亚洲国产激情av| 一道本成人在线| 午夜视频在线观看一区二区三区| 欧美男同性恋视频网站| 蜜桃传媒麻豆第一区在线观看| 精品精品国产高清一毛片一天堂| 国产乱子轮精品视频| 国产精品色哟哟网站| 色婷婷精品久久二区二区蜜臀av| 亚洲综合丁香婷婷六月香| 欧美肥妇free| 国产在线精品免费| 国产精品黄色在线观看| 91原创在线视频| 日韩成人av影视| 欧美天堂亚洲电影院在线播放| 亚洲va国产va欧美va观看| 欧美成人a∨高清免费观看| 国产成人日日夜夜| 亚洲黄色在线视频| 日韩欧美中文字幕一区| 成人va在线观看|