svn commit: r360116 - in head: sys/netgraph/bluetooth/hci sys/netgraph/bluetooth/include usr.sbin/bluetooth/hccontrol

Hans Petter Selasky hselasky at FreeBSD.org
Mon Apr 20 13:44:15 UTC 2020


Author: hselasky
Date: Mon Apr 20 13:44:14 2020
New Revision: 360116
URL: https://svnweb.freebsd.org/changeset/base/360116

Log:
  Substitute le_read_supported_status with le_read_supported_states.
  Refer to bluetooth core v5.2 specifications Vol4. Part E. 7.8.27.
  
  PR:		245763
  Submitted by:	Marc Veldman <marc at bumblingdork.com>
  MFC after:	1 week
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c
  head/sys/netgraph/bluetooth/include/ng_hci.h
  head/usr.sbin/bluetooth/hccontrol/le.c

Modified: head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c
==============================================================================
--- head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c	Mon Apr 20 13:36:01 2020	(r360115)
+++ head/sys/netgraph/bluetooth/hci/ng_hci_cmds.c	Mon Apr 20 13:44:14 2020	(r360116)
@@ -842,7 +842,7 @@ process_le_params(ng_hci_unit_p unit, u_int16_t ocf,
 	case NG_HCI_OCF_LE_RAND:
 	case NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_REPLY:
 	case NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY:
-	case NG_HCI_OCF_LE_READ_SUPPORTED_STATUS:
+	case NG_HCI_OCF_LE_READ_SUPPORTED_STATES:
 	case NG_HCI_OCF_LE_RECEIVER_TEST:
 	case NG_HCI_OCF_LE_TRANSMITTER_TEST:
 	case NG_HCI_OCF_LE_TEST_END:
@@ -913,7 +913,7 @@ process_le_status(ng_hci_unit_p unit,ng_hci_command_st
 	case NG_HCI_OCF_LE_RAND:
 	case NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_REPLY:
 	case NG_HCI_OCF_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY:
-	case NG_HCI_OCF_LE_READ_SUPPORTED_STATUS:
+	case NG_HCI_OCF_LE_READ_SUPPORTED_STATES:
 	case NG_HCI_OCF_LE_RECEIVER_TEST:
 	case NG_HCI_OCF_LE_TRANSMITTER_TEST:
 	case NG_HCI_OCF_LE_TEST_END:

Modified: head/sys/netgraph/bluetooth/include/ng_hci.h
==============================================================================
--- head/sys/netgraph/bluetooth/include/ng_hci.h	Mon Apr 20 13:36:01 2020	(r360115)
+++ head/sys/netgraph/bluetooth/include/ng_hci.h	Mon Apr 20 13:44:14 2020	(r360116)
@@ -1673,12 +1673,12 @@ typedef struct {
 }__attribute__ ((packed)) ng_hci_le_long_term_key_request_negative_reply_rp;
 
 
-#define NG_HCI_OCF_LE_READ_SUPPORTED_STATUS		0x001c
+#define NG_HCI_OCF_LE_READ_SUPPORTED_STATES		0x001c
 /*No command parameter*/
 typedef struct {
 	u_int8_t status;
-	u_int64_t le_status;
-}__attribute__ ((packed)) ng_hci_le_read_supported_status_rp;
+	u_int64_t le_states;
+}__attribute__ ((packed)) ng_hci_le_read_supported_states_rp;
 
 #define NG_HCI_OCF_LE_RECEIVER_TEST			0x001d
 typedef struct{

Modified: head/usr.sbin/bluetooth/hccontrol/le.c
==============================================================================
--- head/usr.sbin/bluetooth/hccontrol/le.c	Mon Apr 20 13:36:01 2020	(r360115)
+++ head/usr.sbin/bluetooth/hccontrol/le.c	Mon Apr 20 13:44:14 2020	(r360116)
@@ -52,7 +52,7 @@ static int le_set_scan_param(int s, int argc, char *ar
 static int le_set_scan_enable(int s, int argc, char *argv[]);
 static int parse_param(int argc, char *argv[], char *buf, int *len);
 static int le_set_scan_response(int s, int argc, char *argv[]);
-static int le_read_supported_status(int s, int argc, char *argv[]);
+static int le_read_supported_states(int s, int argc, char *argv[]);
 static int le_read_local_supported_features(int s, int argc ,char *argv[]);
 static int set_le_event_mask(int s, uint64_t mask);
 static int set_event_mask(int s, uint64_t mask);
@@ -259,20 +259,26 @@ le_read_local_supported_features(int s, int argc ,char
 }
 
 static int
-le_read_supported_status(int s, int argc, char *argv[])
+le_read_supported_states(int s, int argc, char *argv[])
 {
-	ng_hci_le_read_supported_status_rp rp;
-	int e;
+	ng_hci_le_read_supported_states_rp rp;
 	int n = sizeof(rp);
 
-	e = hci_simple_request(s, NG_HCI_OPCODE(
+	if (hci_simple_request(s, NG_HCI_OPCODE(
 					NG_HCI_OGF_LE,
-					NG_HCI_OCF_LE_READ_SUPPORTED_STATUS),
-			       		(void *)&rp, &n);
+					NG_HCI_OCF_LE_READ_SUPPORTED_STATES),
+			       		(void *)&rp, &n) == ERROR)
+		return (ERROR);
 
-	printf("LE_STATUS: %d %d %jx\n", e, rp.status, (uintmax_t)rp.le_status);
+	if (rp.status != 0x00) {
+		fprintf(stdout, "Status: %s [%#02x]\n", 
+			hci_status2str(rp.status), rp.status);
+		return (FAILED);
+	}
 
-	return 0;
+	fprintf(stdout, "LE States: %jx\n", rp.le_states);
+	
+	return (OK); 
 }
 
 static int
@@ -347,11 +353,11 @@ struct hci_command le_commands[] = {
 	  &le_read_local_supported_features,
   },
   {
-	  "le_read_supported_status",
-	  "le_read_supported_status\n"
+	  "le_read_supported_states",
+	  "le_read_supported_states\n"
 	  "read supported status"	  
 	  ,
-	  &le_read_supported_status,
+	  &le_read_supported_states,
   },
   {
 	  "le_set_scan_response",


More information about the svn-src-head mailing list