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

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

?? capi.c

?? bluetooth 開發程序bluez-hcidump-1.28
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * *  BlueZ - Bluetooth protocol stack for Linux * *  Copyright (C) 2004-2005  Marcel Holtmann <marcel@holtmann.org> * * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA * */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include <stdio.h>#include <errno.h>#include <ctype.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <bluetooth/bluetooth.h>#include "parser.h"#define CAPI_U8(frm)  (get_u8(frm))#define CAPI_U16(frm) (btohs(htons(get_u16(frm))))#define CAPI_U32(frm) (btohl(htonl(get_u32(frm))))static char *cmd2str(uint8_t cmd){	switch (cmd) {	case 0x01:		return "ALERT";	case 0x02:		return "CONNECT";	case 0x03:		return "CONNECT_ACTIVE";	case 0x04:		return "DISCONNECT";	case 0x05:		return "LISTEN";	case 0x08:		return "INFO";	case 0x20:		return "INTEROPERABILITY";	case 0x41:		return "SELECT_B_PROTOCOL";	case 0x80:		return "FACILITY";	case 0x82:		return "CONNECT_B3";	case 0x83:		return "CONNECT_B3_ACTIVE";	case 0x84:		return "DISCONNECT_B3";	case 0x86:		return "DATA_B3";	case 0x87:		return "RESET_B3";	case 0x88:		return "CONNECT_B3_T90_ACTIVE";	case 0xff:		return "MANUFACTURER";	default:		return "UNKNOWN";	}}static char *subcmd2str(uint8_t subcmd){	switch (subcmd) {	case 0x80:		return "REQ";	case 0x81:		return "CONF";	case 0x82:		return "IND";	case 0x83:		return "RESP";	default:		return "UNKN";	}}static char *interopsel2str(uint16_t sel){	switch (sel) {	case 0x0000:		return "USB Device Management";	case 0x0001:		return "Bluetooth Device Management";	default:		return "Unknown";	}}static char *func2str(uint16_t func){	switch (func) {	case 0:		return "Register";	case 1:		return "Release";	case 2:		return "Get_Profile";	case 3:		return "Get_Manufacturer";	case 4:		return "Get_Version";	case 5:		return "Get_Serial_Number";	case 6:		return "Manufacturer";	case 7:		return "Echo_Loopback";	default:		return "Unknown";	}}static char *facilitysel2str(uint16_t sel){	switch (sel) {	case 0x0000:		return "Handset";	case 0x0001:		return "DTMF";	case 0x0002:		return "V.42 bis";	case 0x0003:		return "Supplementary Services";	case 0x0004:		return "Power management wakeup";	case 0x0005:		return "Line Interconnect";	case 0x0006:		return "DTMF";	default:		return "Unknown";	}}static char *info2str(uint16_t info){	switch (info) {	case 0x0000:		return "No error";	case 0x0001:		return "NCPI not supported by current protocol, NCPI ignored";	case 0x0002:		return "Flags not supported by current protocol, flags ignored";	case 0x2001:		return "Message not supported in current state";	case 0x2002:		return "Incorrect Controller/PLCI/NCCI";	case 0x2003:		return "No PLCI available";	case 0x2004:		return "No NCCI available";	case 0x2005:		return "No Listen resources available";	case 0x2007:		return "Illegal message parameter coding";	case 0x2008:		return "No interconnection resources available";	case 0x3001:		return "B1 protocol not supported";	case 0x3002:		return "B2 protocol not supported";	case 0x3003:		return "B3 protocol not supported";	case 0x3004:		return "B1 protocol parameter not supported";	case 0x3005:		return "B2 protocol parameter not supported";	case 0x3006:		return "B3 protocol parameter not supported";	case 0x3007:		return "B protocol combination not supported";	case 0x3008:		return "NCPI not supported";	case 0x3009:		return "CIP Value unknown";	case 0x300A:		return "Flags not supported (reserved bits)";	case 0x300B:		return "Facility not supported";	case 0x300C:		return "Data length not supported by current protocol";	case 0x300D:		return "Reset procedure not supported by current protocol";	case 0x300F:		return "Unsupported interoperability";	case 0x3011:		return "Facility specific function not supported";	case 0x3301:		return "Protocol error, Layer 1";	case 0x3302:		return "Protocol error, Layer 2";	case 0x3303:		return "Protocol error, Layer 3";	case 0x3304:		return "Another application got that call";	case 0x3305:		return "Cleared by Call Control Supervision";	case 0x3400:		/* The cause value received from the network in a cause		 * information element (Octet 4) is indicated in the field 00 */		return "Disconnect cause from the network in accordance with Q.850/ETS 300 102-1";	default:		return "Unknown";	}}static void profile(int level, struct frame *frm){	uint16_t nctr, nchn;	uint32_t value;	nctr = CAPI_U16(frm);	nchn = CAPI_U16(frm);	if (nchn > 0) {		p_indent(level, frm);		printf("Controller: %d\n", nctr);		p_indent(level, frm);		printf("Number of B-channels: %d\n", nchn);		value = CAPI_U32(frm);		p_indent(level, frm);		printf("Global options: 0x%04x\n", value);		value = CAPI_U32(frm);		p_indent(level, frm);		printf("B1 protocol support: 0x%08x\n", value);		value = CAPI_U32(frm);		p_indent(level, frm);		printf("B2 protocol support: 0x%08x\n", value);		value = CAPI_U32(frm);		p_indent(level, frm);		printf("B3 protocol support: 0x%08x\n", value);		frm->ptr += 24;		frm->len -= 24;		p_indent(level, frm);		printf("Manufacturer-specific information:\n");		hex_dump(level, frm, 20);	} else {		p_indent(level, frm);		printf("Number of controllers: %d\n", nctr);	}}static void cmd_common(int level, uint8_t subcmd, struct frame *frm){	uint32_t val;	uint16_t info, ncci;	uint8_t ctr, plci;	val = CAPI_U32(frm);	ctr = val & 0xff;	plci = (val & 0xff00) >> 8;	ncci = (val & 0xffff0000) >> 16;	p_indent(level, frm);	printf("Controller: %d %s\n", ctr & 0x7f, ctr & 0x80 ? "Ext." : "Int.");	if (plci > 0) {		p_indent(level, frm);		printf("PLCI: 0x%02x\n", plci);	}	if (ncci > 0) {		p_indent(level, frm);		printf("NCCI: 0x%04x\n", ncci);	}	if (subcmd == 0x81) {		info = CAPI_U16(frm);		p_indent(level, frm);		printf("Info: 0x%04x (%s)\n", info, info2str(info));	}}static void cmd_alert(int level, uint8_t subcmd, struct frame *frm){	uint8_t len;	cmd_common(level, subcmd, frm);	if (subcmd == 0x80) {		len = CAPI_U8(frm);		if (len > 0) {			p_indent(level, frm);			printf("Additional info:\n");			hex_dump(level, frm, len);		}	}}static void cmd_connect(int level, uint8_t subcmd, struct frame *frm){	uint16_t cip;	uint8_t len;	cmd_common(level, subcmd, frm);	if (subcmd == 0x81)		return;	cip = CAPI_U16(frm);	p_indent(level, frm);	printf("CIP value: 0x%04x\n", cip);	len = CAPI_U8(frm);	frm->ptr += len;	frm->len -= len;	len = CAPI_U8(frm);	frm->ptr += len;	frm->len -= len;	len = CAPI_U8(frm);	frm->ptr += len;	frm->len -= len;	len = CAPI_U8(frm);	frm->ptr += len;	frm->len -= len;	raw_dump(level, frm);}static void cmd_disconnect(int level, uint8_t subcmd, struct frame *frm){	uint16_t reason;	uint8_t len;	cmd_common(level, subcmd, frm);	if (subcmd == 0x80) {		len = CAPI_U8(frm);		if (len > 0) {			p_indent(level, frm);			printf("Additional info:\n");			hex_dump(level, frm, len);		}	}	if (subcmd == 0x82) {		reason = CAPI_U16(frm);		p_indent(level, frm);		printf("Reason: 0x%04x (%s)\n", reason, info2str(reason));	}}static void cmd_connect_active(int level, uint8_t subcmd, struct frame *frm){	uint8_t len;	cmd_common(level, subcmd, frm);	if (subcmd == 0x82) {		len = CAPI_U8(frm);		if (len > 0) {			p_indent(level, frm);			printf("Connected number:\n");			hex_dump(level, frm, len);		}		len = CAPI_U8(frm);		if (len > 0) {			p_indent(level, frm);			printf("Connected subaddress:\n");			hex_dump(level, frm, len);		}		len = CAPI_U8(frm);		if (len > 0) {			p_indent(level, frm);			printf("LLC:\n");			hex_dump(level, frm, len);		}	}}static void cmd_listen(int level, uint8_t subcmd, struct frame *frm){	uint32_t mask;	uint8_t len;	cmd_common(level, subcmd, frm);	if (subcmd == 0x80) {		mask = CAPI_U32(frm);		p_indent(level, frm);		printf("Info mask: 0x%08x\n", mask);		mask = CAPI_U32(frm);		p_indent(level, frm);		printf("CIP mask:  0x%08x", mask);		mask = CAPI_U32(frm);		if (mask > 0)			printf(" 0x%08x\n", mask);		else			printf("\n");		len = CAPI_U8(frm);		if (len > 0) {			p_indent(level, frm);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久综合网97色综合| 亚洲va在线va天堂| 国内精品视频一区二区三区八戒| 91激情五月电影| 精品日韩欧美在线| 美女视频网站久久| 日韩一区二区三区免费看 | 一区二区三区日本| 93久久精品日日躁夜夜躁欧美| 国产欧美一区二区三区在线老狼 | 亚洲狠狠爱一区二区三区| 成年人国产精品| 国产精品视频一二三| 成人精品一区二区三区中文字幕| 国产女主播一区| 成人午夜大片免费观看| 国产精品乱码人人做人人爱| 99热99精品| 国产偷国产偷精品高清尤物| 国产最新精品精品你懂的| 26uuu亚洲| 成人精品免费看| 中文字幕在线观看不卡视频| 99精品久久99久久久久| 亚洲图片你懂的| 欧美日韩精品一区二区三区| 日欧美一区二区| 制服丝袜亚洲播放| 日韩国产欧美在线视频| 欧美一区二区三区视频| 久久超碰97中文字幕| wwww国产精品欧美| 99久久久久免费精品国产| 一二三四社区欧美黄| 91成人在线观看喷潮| 美女在线视频一区| 国产精品欧美久久久久无广告| aa级大片欧美| 亚洲一区二区三区在线| 欧美一区二区三区在线| 国产精品1区2区| 亚洲人亚洲人成电影网站色| 欧美日韩一本到| 国产剧情一区二区三区| 国产精品白丝在线| 欧美一区二区在线观看| 成人综合日日夜夜| 亚洲综合成人在线| 久久色成人在线| 一本色道a无线码一区v| 免费成人性网站| 《视频一区视频二区| 欧美色偷偷大香| 成人小视频在线观看| 天天操天天干天天综合网| 久久久高清一区二区三区| 欧美影院精品一区| 久久99国内精品| 一区二区三区在线高清| 国产欧美一区视频| 日韩欧美精品三级| 在线欧美日韩国产| 国产真实乱子伦精品视频| 亚洲最大色网站| 国产精品久久影院| 日韩精品一区二区在线| 色婷婷久久一区二区三区麻豆| 丝袜亚洲另类欧美| 国产精品三级av| 精品国产伦一区二区三区观看方式 | 91麻豆高清视频| 国产成人在线视频播放| 青青草97国产精品免费观看 | 亚洲男人的天堂在线aⅴ视频| 欧美人与禽zozo性伦| 国产91丝袜在线观看| 日本不卡免费在线视频| 亚洲一区二区三区自拍| 亚洲理论在线观看| 中文在线一区二区| 欧美精品一区二区在线观看| 337p亚洲精品色噜噜狠狠| 欧美写真视频网站| 97精品国产97久久久久久久久久久久 | 亚洲另类在线视频| 亚洲欧洲日产国产综合网| 精品精品国产高清a毛片牛牛| 欧美美女一区二区在线观看| 一本色道a无线码一区v| 成人污视频在线观看| 美女爽到高潮91| 麻豆精品一区二区三区| 日本va欧美va精品发布| 一区二区欧美在线观看| 亚洲综合偷拍欧美一区色| 亚洲欧美综合在线精品| 中文字幕一区二区不卡| 日韩你懂的在线播放| 日韩精品影音先锋| 26uuuu精品一区二区| 26uuu国产一区二区三区| 久久中文娱乐网| 一区精品在线播放| 日韩激情在线观看| 国产不卡视频一区二区三区| 91在线视频免费观看| 91精品一区二区三区久久久久久 | 136国产福利精品导航| 亚洲图片欧美综合| 国内精品国产成人国产三级粉色 | 国产在线精品一区二区不卡了| 成人少妇影院yyyy| 欧美精品自拍偷拍| 国产欧美精品区一区二区三区| 亚洲综合在线电影| 国产乱码精品一区二区三区av| av电影在线观看完整版一区二区| 欧美日韩亚洲另类| 欧美高清在线视频| 免费成人在线观看视频| 91在线国产观看| 精品人在线二区三区| 亚洲欧美视频在线观看| 精品亚洲免费视频| 欧美日韩中文字幕精品| 国产日韩亚洲欧美综合| 日本女人一区二区三区| 99re热这里只有精品视频| 精品国产自在久精品国产| 亚洲精品免费看| 国产精品一区二区久久不卡| 欧美性猛交xxxxxx富婆| 国产精品久久久久影院亚瑟| 蜜桃精品在线观看| 欧美视频完全免费看| 国产精品欧美久久久久一区二区| 麻豆精品精品国产自在97香蕉 | 制服丝袜国产精品| 亚洲裸体xxx| 成人免费的视频| 欧美成人精品3d动漫h| 亚洲一区在线观看视频| 不卡免费追剧大全电视剧网站| 精品美女一区二区三区| 日韩中文字幕区一区有砖一区| 色综合中文综合网| 中文字幕中文字幕在线一区 | 美女视频免费一区| 欧美日韩久久不卡| 一区二区理论电影在线观看| 成人免费毛片高清视频| 国产亚洲欧美在线| 国产乱人伦精品一区二区在线观看| 91精品国产一区二区| 午夜久久久久久| 欧美无乱码久久久免费午夜一区| 亚洲精品日韩一| 99久久伊人精品| 国产精品国产三级国产专播品爱网| 精品制服美女久久| 欧美不卡在线视频| 精品一区二区三区久久久| 3d动漫精品啪啪一区二区竹菊| 调教+趴+乳夹+国产+精品| 欧美日韩精品一二三区| 亚洲一区二区高清| 欧美三级资源在线| 亚洲成人激情自拍| 在线播放中文一区| 奇米777欧美一区二区| 日韩精品一区二区三区老鸭窝| 美国精品在线观看| 久久精品无码一区二区三区| 激情六月婷婷久久| 久久久久国产精品人| 成人听书哪个软件好| 亚洲美女一区二区三区| 欧美亚洲免费在线一区| 午夜视频久久久久久| 日韩一区二区在线播放| 经典一区二区三区| 国产欧美日韩亚州综合 | 国产日韩高清在线| 99这里都是精品| 一区二区欧美精品| 91精品国产色综合久久ai换脸 | 国产欧美1区2区3区| 99视频精品免费视频| 亚洲一区在线看| 日韩美女天天操| 成人午夜激情影院| 亚洲国产精品一区二区www在线 | 国产精品久99| 欧美影片第一页| 韩国v欧美v日本v亚洲v| 国产精品伦理在线| 欧美丰满少妇xxxxx高潮对白| 欧美美女一区二区三区| 国产精品888| 五月婷婷另类国产|