Index: hccontrol.h =================================================================== RCS file: /home/ncvs/src/usr.sbin/bluetooth/hccontrol/hccontrol.h,v retrieving revision 1.4 diff -u -r1.4 hccontrol.h --- hccontrol.h 9 Apr 2004 23:58:53 -0000 1.4 +++ hccontrol.h 15 Feb 2006 20:41:32 -0000 @@ -65,6 +65,7 @@ char const * const hci_vdata2str (int); char const * const hci_hmode2str (int, char *, int); char const * const hci_ver2str (int); +char const * const hci_lmpver2str (int); char const * const hci_manufacturer2str(int); char const * const hci_features2str (uint8_t *, char *, int); char const * const hci_cc2str (int); Index: info.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/bluetooth/hccontrol/info.c,v retrieving revision 1.3 diff -u -r1.3 info.c --- info.c 12 Oct 2003 22:04:23 -0000 1.3 +++ info.c 15 Feb 2006 20:41:32 -0000 @@ -59,7 +59,8 @@ hci_ver2str(rp.hci_version), rp.hci_version); fprintf(stdout, "HCI revision: %#04x\n", le16toh(rp.hci_revision)); - fprintf(stdout, "LMP version: %#02x\n", rp.lmp_version); + fprintf(stdout, "LMP version: %s [%#02x]\n", + hci_lmpver2str(rp.lmp_version), rp.lmp_version); fprintf(stdout, "LMP sub-version: %#04x\n", le16toh(rp.lmp_subversion)); fprintf(stdout, "Manufacturer: %s [%#04x]\n", Index: link_control.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/bluetooth/hccontrol/link_control.c,v retrieving revision 1.9 diff -u -r1.9 link_control.c --- link_control.c 4 Jan 2005 20:13:48 -0000 1.9 +++ link_control.c 15 Feb 2006 20:41:32 -0000 @@ -729,7 +729,8 @@ fprintf(stdout, "Connection handle: %d\n", le16toh(ep->con_handle)); - fprintf(stdout, "LMP version: %#02x\n", ep->lmp_version); + fprintf(stdout, "LMP version: %s [%#02x]\n", + hci_lmpver2str(ep->lmp_version), ep->lmp_version); fprintf(stdout, "LMP sub-version: %#04x\n", le16toh(ep->lmp_subversion)); fprintf(stdout, "Manufacturer: %s [%#04x]\n", Index: util.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/bluetooth/hccontrol/util.c,v retrieving revision 1.5 diff -u -r1.5 util.c --- util.c 9 Apr 2004 23:58:53 -0000 1.5 +++ util.c 15 Feb 2006 20:41:33 -0000 @@ -148,18 +148,33 @@ hci_ver2str(int ver) { static char const * const t[] = { - /* 0x00 */ "v1.0B", - /* 0x01 */ "v1.1" + /* 0x00 */ "Bluetooth HCI Specification 1.0B", + /* 0x01 */ "Bluetooth HCI Specification 1.1", + /* 0x02 */ "Bluetooth HCI Specification 1.2", + /* 0x03 */ "Bluetooth HCI Specification 2.0" }; return (ver >= SIZE(t)? "?" : t[ver]); } /* hci_ver2str */ char const * const +hci_lmpver2str(int ver) +{ + static char const * const t[] = { + /* 0x00 */ "Bluetooth LMP 1.0", + /* 0x01 */ "Bluetooth LMP 1.1", + /* 0x02 */ "Bluetooth LMP 1.2", + /* 0x03 */ "Bluetooth LMP 2.0" + }; + + return (ver >= SIZE(t)? "?" : t[ver]); +} /* hci_lmpver2str */ + +char const * const hci_manufacturer2str(int m) { static char const * const t[] = { - /* 0000 */ "Ericsson Mobile Communications", + /* 0000 */ "Ericsson Technology Licensing", /* 0001 */ "Nokia Mobile Phones", /* 0002 */ "Intel Corp.", /* 0003 */ "IBM Corp.", @@ -177,7 +192,7 @@ /* 0015 */ "Broadcom Corporation", /* 0016 */ "Mitel Semiconductor", /* 0017 */ "Widcomm, Inc.", - /* 0018 */ "Telencomm Inc.", + /* 0018 */ "Zeevo, Inc.", /* 0019 */ "Atmel Corporation", /* 0020 */ "Mitsubishi Electric Corporation", /* 0021 */ "RTX Telecom A/S", @@ -206,7 +221,24 @@ /* 0044 */ "Macronix International Co. Ltd.", /* 0045 */ "GCT Semiconductor", /* 0046 */ "Norwood Systems", - /* 0047 */ "MewTel Technology Inc." + /* 0047 */ "MewTel Technology Inc.", + /* 0048 */ "ST Microelectronics", + /* 0049 */ "Synopsys", + /* 0050 */ "Red-M (Communications) Ltd", + /* 0051 */ "Commil Ltd", + /* 0052 */ "Computer Access Technology Corporation (CATC)", + /* 0053 */ "Eclipse (HQ Espana) S.L.", + /* 0054 */ "Renesas Technology Corp.", + /* 0055 */ "Mobilian Corporation", + /* 0056 */ "Terax", + /* 0057 */ "Integrated System Solution Corp.", + /* 0058 */ "Matsushita Electric Industrial Co., Ltd.", + /* 0059 */ "Gennum Corporation", + /* 0060 */ "Research In Motion", + /* 0061 */ "IPextreme, Inc.", + /* 0062 */ "Systems and Chips, Inc", + /* 0063 */ "Bluetooth SIG, Inc", + /* 0064 */ "Seiko Epson Corporation" }; return (m >= SIZE(t)? "?" : t[m]); @@ -222,7 +254,7 @@ /* 2 */ " ", /* 3 */ " ", /* 4 */ " ", - /* 5 */ " ", + /* 5 */ " ", /* 6 */ " ", /* 7 */ " " }, @@ -244,7 +276,57 @@ /* 4 */ " ", /* 5 */ " ", /* 6 */ " ", - /* 7 */ " " + /* 7 */ " " + }, + { /* byte 3 */ + /* 0 */ " ", + /* 1 */ " ", + /* 2 */ " ", + /* 3 */ " ", + /* 4 */ " ", + /* 5 */ " ", + /* 6 */ " ", + /* 7 */ " " + }, + { /* byte 4 */ + /* 0 */ " ", + /* 1 */ " ", + /* 2 */ " ", + /* 3 */ " ", + /* 4 */ " ", + /* 5 */ " ", + /* 6 */ " ", + /* 7 */ "<3-Slot EDR ACL packets> " + }, + { /* byte 5 */ + /* 0 */ "<5-Slot EDR ACL packets> ", + /* 1 */ " ", + /* 2 */ " ", + /* 3 */ " ", + /* 4 */ " ", + /* 5 */ " ", + /* 6 */ " ", + /* 7 */ "<3-Slot EDR eSCO packets> " + }, + { /* byte 6 */ + /* 0 */ " ", + /* 1 */ " ", + /* 2 */ " ", + /* 3 */ " ", + /* 4 */ " ", + /* 5 */ " ", + /* 6 */ " ", + /* 7 */ " " + }, + { /* byte 7 */ + /* 0 */ " ", + /* 1 */ " ", + /* 2 */ " ", + /* 3 */ " ", + /* 4 */ " ", + /* 5 */ " ", + /* 6 */ " ", + /* 7 */ " " }}; if (buffer != NULL && size > 0) { @@ -344,7 +426,19 @@ /* 0x26 */ "Unit key used", /* 0x27 */ "QoS is not supported", /* 0x28 */ "Instant passed", - /* 0x29 */ "Pairing with unit key not supported" + /* 0x29 */ "Pairing with unit key not supported", + /* 0x2a */ "Different transaction collision", + /* 0x2b */ "Reserved", + /* 0x2c */ "QoS unacceptable parameter", + /* 0x2d */ "QoS rejected", + /* 0x2e */ "Channel classification not supported", + /* 0x2f */ "Insufficient security", + /* 0x30 */ "Parameter out of mandatory range", + /* 0x31 */ "Reserved", + /* 0x32 */ "Role switching pending", + /* 0x33 */ "Reserved", + /* 0x34 */ "Reserved slot violation", + /* 0x35 */ "Role switch failed" }; return (status >= SIZE(t)? "Unknown error" : t[status]);