You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2016/04/05 04:15:38 UTC
[1/3] incubator-mynewt-core git commit: ble host: reduce code size.
Repository: incubator-mynewt-core
Updated Branches:
refs/heads/develop f41a1090a -> 2fef21d6a
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_att_svr_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_att_svr_test.c b/net/nimble/host/src/test/ble_att_svr_test.c
index f9787e4..fda86d8 100644
--- a/net/nimble/host/src/test/ble_att_svr_test.c
+++ b/net/nimble/host/src/test/ble_att_svr_test.c
@@ -297,8 +297,7 @@ ble_att_svr_test_misc_verify_tx_err_rsp(struct ble_l2cap_chan *chan,
rc = os_mbuf_copydata(ble_hs_test_util_prev_tx, 0, sizeof buf, buf);
TEST_ASSERT(rc == 0);
- rc = ble_att_error_rsp_parse(buf, sizeof buf, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_error_rsp_parse(buf, sizeof buf, &rsp);
TEST_ASSERT(rsp.baep_req_op == req_op);
TEST_ASSERT(rsp.baep_handle == handle);
@@ -373,8 +372,7 @@ ble_att_svr_test_misc_rx_read_mult_req(struct ble_hs_conn *conn,
int rc;
int i;
- rc = ble_att_read_mult_req_write(buf, sizeof buf);
- TEST_ASSERT(rc == 0);
+ ble_att_read_mult_req_write(buf, sizeof buf);
off = BLE_ATT_READ_MULT_REQ_BASE_SZ;
for (i = 0; i < num_handles; i++) {
@@ -477,8 +475,7 @@ ble_att_svr_test_misc_verify_tx_mtu_rsp(struct ble_l2cap_chan *chan)
rc = os_mbuf_copydata(ble_hs_test_util_prev_tx, 0, sizeof buf, buf);
TEST_ASSERT(rc == 0);
- rc = ble_att_mtu_cmd_parse(buf, sizeof buf, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_mtu_cmd_parse(buf, sizeof buf, &rsp);
TEST_ASSERT(rsp.bamc_mtu == chan->blc_my_mtu);
@@ -515,8 +512,7 @@ ble_att_svr_test_misc_verify_tx_find_info_rsp(
TEST_ASSERT(rc == 0);
off += sizeof buf;
- rc = ble_att_find_info_rsp_parse(buf, sizeof buf, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_rsp_parse(buf, sizeof buf, &rsp);
for (entry = entries; entry->handle != 0; entry++) {
rc = os_mbuf_copydata(ble_hs_test_util_prev_tx, off, 2, &handle);
@@ -627,8 +623,7 @@ ble_att_svr_test_misc_verify_tx_read_group_type_rsp(
BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ);
TEST_ASSERT_FATAL(om != NULL);
- rc = ble_att_read_group_type_rsp_parse(om->om_data, om->om_len, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_rsp_parse(om->om_data, om->om_len, &rsp);
off = BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ;
for (entry = entries; entry->start_handle != 0; entry++) {
@@ -700,8 +695,7 @@ ble_att_svr_test_misc_verify_tx_read_type_rsp(
BLE_ATT_READ_TYPE_RSP_BASE_SZ);
TEST_ASSERT_FATAL(om != NULL);
- rc = ble_att_read_type_rsp_parse(om->om_data, om->om_len, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_rsp_parse(om->om_data, om->om_len, &rsp);
off = BLE_ATT_READ_TYPE_RSP_BASE_SZ;
for (entry = entries; entry->handle != 0; entry++) {
@@ -740,8 +734,7 @@ ble_att_svr_test_misc_verify_tx_prep_write_rsp(struct ble_l2cap_chan *chan,
OS_MBUF_PKTLEN(ble_hs_test_util_prev_tx), buf);
TEST_ASSERT_FATAL(rc == 0);
- rc = ble_att_prep_write_rsp_parse(buf, sizeof buf, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_prep_write_rsp_parse(buf, sizeof buf, &rsp);
TEST_ASSERT(rsp.bapc_handle == attr_handle);
TEST_ASSERT(rsp.bapc_offset == offset);
@@ -756,15 +749,13 @@ static void
ble_att_svr_test_misc_verify_tx_exec_write_rsp(struct ble_l2cap_chan *chan)
{
struct os_mbuf *om;
- int rc;
ble_hs_test_util_tx_all();
om = os_mbuf_pullup(ble_hs_test_util_prev_tx, BLE_ATT_EXEC_WRITE_RSP_SZ);
TEST_ASSERT_FATAL(om != NULL);
- rc = ble_att_exec_write_rsp_parse(om->om_data, om->om_len);
- TEST_ASSERT(rc == 0);
+ ble_att_exec_write_rsp_parse(om->om_data, om->om_len);
}
static void
@@ -782,8 +773,7 @@ ble_att_svr_test_misc_mtu_exchange(uint16_t my_mtu, uint16_t peer_sent,
chan->blc_my_mtu = my_mtu;
req.bamc_mtu = peer_sent;
- rc = ble_att_mtu_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_mtu_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -807,8 +797,7 @@ ble_att_svr_test_misc_prep_write(struct ble_hs_conn *conn,
prep_req.bapc_handle = handle;
prep_req.bapc_offset = offset;
- rc = ble_att_prep_write_req_write(buf, sizeof buf, &prep_req);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_prep_write_req_write(buf, sizeof buf, &prep_req);
memcpy(buf + BLE_ATT_PREP_WRITE_CMD_BASE_SZ, data, data_len);
rc = ble_hs_test_util_l2cap_rx_payload_flat(
conn, chan, buf, BLE_ATT_PREP_WRITE_CMD_BASE_SZ + data_len);
@@ -835,8 +824,7 @@ ble_att_svr_test_misc_exec_write(struct ble_hs_conn *conn,
int rc;
exec_req.baeq_flags = flags;
- rc = ble_att_exec_write_req_write(buf, sizeof buf, &exec_req);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_exec_write_req_write(buf, sizeof buf, &exec_req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf,
BLE_ATT_EXEC_WRITE_REQ_SZ);
@@ -863,8 +851,7 @@ ble_att_svr_test_misc_rx_notify(struct ble_hs_conn *conn,
int rc;
req.banq_handle = attr_handle;
- rc = ble_att_notify_req_write(buf, sizeof buf, &req);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_notify_req_write(buf, sizeof buf, &req);
off = BLE_ATT_NOTIFY_REQ_BASE_SZ;
memcpy(buf + off, attr_val, attr_len);
@@ -931,15 +918,13 @@ static void
ble_att_svr_test_misc_verify_tx_indicate_rsp(struct ble_l2cap_chan *chan)
{
struct os_mbuf *om;
- int rc;
ble_hs_test_util_tx_all();
om = os_mbuf_pullup(ble_hs_test_util_prev_tx, BLE_ATT_INDICATE_RSP_SZ);
TEST_ASSERT_FATAL(om != NULL);
- rc = ble_att_indicate_rsp_parse(om->om_data, om->om_len);
- TEST_ASSERT(rc == 0);
+ ble_att_indicate_rsp_parse(om->om_data, om->om_len);
}
static void
@@ -954,8 +939,7 @@ ble_att_svr_test_misc_rx_indicate(struct ble_hs_conn *conn,
int rc;
req.baiq_handle = attr_handle;
- rc = ble_att_indicate_req_write(buf, sizeof buf, &req);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_indicate_req_write(buf, sizeof buf, &req);
off = BLE_ATT_INDICATE_REQ_BASE_SZ;
memcpy(buf + off, attr_val, attr_len);
@@ -1029,8 +1013,7 @@ TEST_CASE(ble_att_svr_test_read)
/*** Nonexistent attribute. */
req.barq_handle = 0;
- rc = ble_att_read_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1044,8 +1027,7 @@ TEST_CASE(ble_att_svr_test_read)
ble_att_svr_test_misc_attr_fn_r_1, NULL);
TEST_ASSERT(rc == 0);
- rc = ble_att_read_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1058,8 +1040,7 @@ TEST_CASE(ble_att_svr_test_read)
22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39};
ble_att_svr_test_attr_r_1_len = 40;
- rc = ble_att_read_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1081,8 +1062,7 @@ TEST_CASE(ble_att_svr_test_read_blob)
/*** Nonexistent attribute. */
req.babq_handle = 0;
req.babq_offset = 0;
- rc = ble_att_read_blob_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_blob_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1098,8 +1078,7 @@ TEST_CASE(ble_att_svr_test_read_blob)
ble_att_svr_test_misc_attr_fn_r_1, NULL);
TEST_ASSERT(rc == 0);
- rc = ble_att_read_blob_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_blob_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1110,8 +1089,7 @@ TEST_CASE(ble_att_svr_test_read_blob)
/*** Successful partial read. */
ble_att_svr_test_attr_r_1_len = 40;
- rc = ble_att_read_blob_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_blob_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1121,8 +1099,7 @@ TEST_CASE(ble_att_svr_test_read_blob)
/*** Read remainder of attribute. */
req.babq_offset = BLE_ATT_MTU_DFLT - 1;
- rc = ble_att_read_blob_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_blob_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1132,8 +1109,7 @@ TEST_CASE(ble_att_svr_test_read_blob)
/*** Zero-length read. */
req.babq_offset = ble_att_svr_test_attr_r_1_len;
- rc = ble_att_read_blob_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_blob_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1223,8 +1199,7 @@ TEST_CASE(ble_att_svr_test_write)
/*** Nonexistent attribute. */
req.bawq_handle = 0;
- rc = ble_att_write_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_write_req_write(buf, sizeof buf, &req);
memcpy(buf + BLE_ATT_READ_REQ_SZ, ((uint8_t[]){0,1,2,3,4,5,6,7}), 8);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
@@ -1237,8 +1212,7 @@ TEST_CASE(ble_att_svr_test_write)
ble_att_svr_test_misc_attr_fn_w_1, NULL);
TEST_ASSERT(rc == 0);
- rc = ble_att_write_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_write_req_write(buf, sizeof buf, &req);
memcpy(buf + BLE_ATT_WRITE_REQ_BASE_SZ,
((uint8_t[]){0,1,2,3,4,5,6,7}), 8);
@@ -1275,8 +1249,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = 0;
req.bafq_end_handle = 0;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1287,8 +1260,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = 101;
req.bafq_end_handle = 100;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1299,8 +1271,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = 200;
req.bafq_end_handle = 300;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1315,8 +1286,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = 200;
req.bafq_end_handle = 300;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1327,8 +1297,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = handle1;
req.bafq_end_handle = handle1;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1348,8 +1317,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = handle1;
req.bafq_end_handle = handle2;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1372,8 +1340,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = handle1;
req.bafq_end_handle = handle3;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1392,8 +1359,7 @@ TEST_CASE(ble_att_svr_test_find_info)
req.bafq_start_handle = handle3;
req.bafq_end_handle = handle3;
- rc = ble_att_find_info_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1447,8 +1413,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_end_handle = 0;
req.bavq_attr_type = 0x0001;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1460,8 +1425,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = 101;
req.bavq_end_handle = 100;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1473,8 +1437,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = 200;
req.bavq_end_handle = 300;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1490,8 +1453,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = 200;
req.bavq_end_handle = 300;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc != 0);
@@ -1503,8 +1465,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = handle1;
req.bavq_end_handle = handle1;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1524,8 +1485,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = handle1;
req.bavq_end_handle = handle2;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1549,8 +1509,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = 0x0001;
req.bavq_end_handle = 0xffff;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1572,8 +1531,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = 0x0001;
req.bavq_end_handle = 0xffff;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1595,8 +1553,7 @@ TEST_CASE(ble_att_svr_test_find_type_value)
req.bavq_start_handle = 0x0001;
req.bavq_end_handle = 0xffff;
- rc = ble_att_find_type_value_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_find_type_value_req_write(buf, sizeof buf, &req);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -1631,8 +1588,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 0;
req.batq_end_handle = 0;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1646,8 +1602,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 101;
req.batq_end_handle = 100;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1661,8 +1616,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 1;
req.batq_end_handle = 0xffff;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1677,8 +1631,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 200;
req.batq_end_handle = 300;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1692,8 +1645,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 1;
req.batq_end_handle = 2;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_CHARACTERISTIC);
@@ -1712,8 +1664,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 1;
req.batq_end_handle = 10;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_CHARACTERISTIC);
@@ -1736,8 +1687,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 11;
req.batq_end_handle = 0xffff;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_CHARACTERISTIC);
@@ -1755,8 +1705,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 13;
req.batq_end_handle = 0xffff;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_CHARACTERISTIC);
@@ -1774,8 +1723,7 @@ TEST_CASE(ble_att_svr_test_read_type)
req.batq_start_handle = 15;
req.batq_end_handle = 0xffff;
- rc = ble_att_read_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_CHARACTERISTIC);
@@ -1810,8 +1758,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 0;
req.bagq_end_handle = 0;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1825,8 +1772,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 101;
req.bagq_end_handle = 100;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1840,8 +1786,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 110;
req.bagq_end_handle = 150;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ, 0x1234);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
@@ -1854,8 +1799,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 1;
req.bagq_end_handle = 0xffff;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1870,8 +1814,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 200;
req.bagq_end_handle = 300;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1885,8 +1828,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 1;
req.bagq_end_handle = 5;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1905,8 +1847,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 1;
req.bagq_end_handle = 10;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1929,8 +1870,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 1;
req.bagq_end_handle = 100;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -1953,8 +1893,7 @@ TEST_CASE(ble_att_svr_test_read_group_type)
req.bagq_start_handle = 11;
req.bagq_end_handle = 100;
- rc = ble_att_read_group_type_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_group_type_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ,
BLE_ATT_UUID_PRIMARY_SERVICE);
@@ -2152,6 +2091,7 @@ TEST_SUITE(ble_att_svr_suite)
int
ble_att_svr_test_all(void)
{
+ tu_config.tc_system_assert = 1;
ble_att_svr_suite();
return tu_any_failed;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_gatt_disc_c_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatt_disc_c_test.c b/net/nimble/host/src/test/ble_gatt_disc_c_test.c
index 3f24586..d2d9acb 100644
--- a/net/nimble/host/src/test/ble_gatt_disc_c_test.c
+++ b/net/nimble/host/src/test/ble_gatt_disc_c_test.c
@@ -72,8 +72,7 @@ ble_gatt_disc_c_test_misc_rx_rsp_once(
BLE_GATT_CHR_DECL_SZ_128;
}
- rc = ble_att_read_type_rsp_write(buf, BLE_ATT_READ_TYPE_RSP_BASE_SZ, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_read_type_rsp_write(buf, BLE_ATT_READ_TYPE_RSP_BASE_SZ, &rsp);
off = BLE_ATT_READ_TYPE_RSP_BASE_SZ;
for (i = 0; ; i++) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_gatt_disc_d_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatt_disc_d_test.c b/net/nimble/host/src/test/ble_gatt_disc_d_test.c
index 3a40864..a3c76a5 100644
--- a/net/nimble/host/src/test/ble_gatt_disc_d_test.c
+++ b/net/nimble/host/src/test/ble_gatt_disc_d_test.c
@@ -71,8 +71,7 @@ ble_gatt_disc_d_test_misc_rx_rsp_once(
rsp.bafp_format = BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT;
}
- rc = ble_att_find_info_rsp_write(buf, BLE_ATT_FIND_INFO_RSP_BASE_SZ, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_find_info_rsp_write(buf, BLE_ATT_FIND_INFO_RSP_BASE_SZ, &rsp);
off = BLE_ATT_FIND_INFO_RSP_BASE_SZ;
for (i = 0; ; i++) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_gatt_disc_s_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatt_disc_s_test.c b/net/nimble/host/src/test/ble_gatt_disc_s_test.c
index d8e66c5..533340a 100644
--- a/net/nimble/host/src/test/ble_gatt_disc_s_test.c
+++ b/net/nimble/host/src/test/ble_gatt_disc_s_test.c
@@ -71,9 +71,8 @@ ble_gatt_disc_s_test_misc_rx_all_rsp_once(
ble_hs_test_util_tx_all();
rsp.bagp_length = ble_gatt_disc_s_test_misc_svc_length(services);
- rc = ble_att_read_group_type_rsp_write(
- buf, BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_read_group_type_rsp_write(buf, BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ,
+ &rsp);
off = BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ;
for (i = 0; ; i++) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_gatt_find_s_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatt_find_s_test.c b/net/nimble/host/src/test/ble_gatt_find_s_test.c
index d68135d..24b2dcc 100644
--- a/net/nimble/host/src/test/ble_gatt_find_s_test.c
+++ b/net/nimble/host/src/test/ble_gatt_find_s_test.c
@@ -114,9 +114,7 @@ ble_gatt_find_s_test_misc_rx_read_type(
return 0;
}
- rc = ble_att_read_type_rsp_write(buf + 0, BLE_ATT_READ_TYPE_RSP_BASE_SZ,
- &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_read_type_rsp_write(buf + 0, BLE_ATT_READ_TYPE_RSP_BASE_SZ, &rsp);
chan = ble_hs_conn_chan_find(conn, BLE_L2CAP_CID_ATT);
TEST_ASSERT_FATAL(chan != NULL);
@@ -151,7 +149,6 @@ ble_gatt_find_s_test_misc_verify_tx_read_type(uint16_t start_handle,
struct ble_att_read_type_req req;
struct os_mbuf *om;
uint16_t uuid16;
- int rc;
ble_hs_test_util_tx_all();
@@ -161,8 +158,7 @@ ble_gatt_find_s_test_misc_verify_tx_read_type(uint16_t start_handle,
OS_MBUF_PKTLEN(ble_hs_test_util_prev_tx));
TEST_ASSERT_FATAL(om != NULL);
- rc = ble_att_read_type_req_parse(om->om_data, om->om_len, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_type_req_parse(om->om_data, om->om_len, &req);
TEST_ASSERT(req.batq_start_handle == start_handle);
TEST_ASSERT(req.batq_end_handle == end_handle);
@@ -176,7 +172,6 @@ ble_gatt_find_s_test_misc_verify_tx_read(uint16_t handle)
{
struct ble_att_read_req req;
struct os_mbuf *om;
- int rc;
ble_hs_test_util_tx_all();
@@ -186,8 +181,7 @@ ble_gatt_find_s_test_misc_verify_tx_read(uint16_t handle)
OS_MBUF_PKTLEN(ble_hs_test_util_prev_tx));
TEST_ASSERT_FATAL(om != NULL);
- rc = ble_att_read_req_parse(om->om_data, om->om_len, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_read_req_parse(om->om_data, om->om_len, &req);
TEST_ASSERT(req.barq_handle == handle);
TEST_ASSERT(om->om_len == BLE_ATT_READ_REQ_SZ);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_gatt_read_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatt_read_test.c b/net/nimble/host/src/test/ble_gatt_read_test.c
index 44dcd84..47392fb 100644
--- a/net/nimble/host/src/test/ble_gatt_read_test.c
+++ b/net/nimble/host/src/test/ble_gatt_read_test.c
@@ -254,8 +254,7 @@ ble_gatt_read_test_misc_uuid_rx_rsp_good(struct ble_hs_conn *conn,
ble_hs_test_util_tx_all();
rsp.batp_length = 2 + attrs[0].value_len;
- rc = ble_att_read_type_rsp_write(buf, sizeof buf, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_read_type_rsp_write(buf, sizeof buf, &rsp);
prev_len = 0;
off = BLE_ATT_READ_TYPE_RSP_BASE_SZ;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_gatt_write_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatt_write_test.c b/net/nimble/host/src/test/ble_gatt_write_test.c
index 4444053..3c17114 100644
--- a/net/nimble/host/src/test/ble_gatt_write_test.c
+++ b/net/nimble/host/src/test/ble_gatt_write_test.c
@@ -105,8 +105,7 @@ ble_gatt_write_test_rx_prep_rsp(struct ble_hs_conn *conn, uint16_t attr_handle,
rsp.bapc_handle = attr_handle;
rsp.bapc_offset = offset;
- rc = ble_att_prep_write_rsp_write(buf, sizeof buf, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_prep_write_rsp_write(buf, sizeof buf, &rsp);
memcpy(buf + BLE_ATT_PREP_WRITE_CMD_BASE_SZ, attr_data, attr_data_len);
@@ -364,7 +363,6 @@ TEST_CASE(ble_gatt_write_test_rsp)
{
struct ble_hs_conn *conn;
int attr_len;
- int rc;
ble_gatt_write_test_init();
@@ -372,9 +370,8 @@ TEST_CASE(ble_gatt_write_test_rsp)
NULL, NULL);
attr_len = 4;
- rc = ble_gattc_write(2, 100, ble_gatt_write_test_attr_value,
- attr_len, ble_gatt_write_test_cb_good, &attr_len);
- TEST_ASSERT(rc == 0);
+ ble_gattc_write(2, 100, ble_gatt_write_test_attr_value, attr_len,
+ ble_gatt_write_test_cb_good, &attr_len);
/* Send the pending ATT Write Command. */
ble_hs_test_util_tx_all();
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_gatts_notify_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatts_notify_test.c b/net/nimble/host/src/test/ble_gatts_notify_test.c
index f2d9bd1..26fc55c 100644
--- a/net/nimble/host/src/test/ble_gatts_notify_test.c
+++ b/net/nimble/host/src/test/ble_gatts_notify_test.c
@@ -100,8 +100,7 @@ ble_gatts_notify_test_misc_enable_notify(struct ble_hs_conn *conn,
int rc;
req.bawq_handle = chr_def_handle + 2;
- rc = ble_att_write_req_write(buf, sizeof buf, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_write_req_write(buf, sizeof buf, &req);
htole16(buf + BLE_ATT_WRITE_REQ_BASE_SZ, flags);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
@@ -166,8 +165,7 @@ ble_gatts_notify_test_misc_rx_indicate_rsp(struct ble_hs_conn *conn,
uint8_t buf[BLE_ATT_INDICATE_RSP_SZ];
int rc;
- rc = ble_att_indicate_rsp_write(buf, sizeof buf);
- TEST_ASSERT(rc == 0);
+ ble_att_indicate_rsp_write(buf, sizeof buf);
rc = ble_hs_test_util_l2cap_rx_payload_flat(conn, chan, buf, sizeof buf);
TEST_ASSERT(rc == 0);
@@ -190,8 +188,7 @@ ble_gatts_notify_test_misc_verify_tx_n(struct ble_l2cap_chan *chan,
rc = os_mbuf_copydata(ble_hs_test_util_prev_tx, 0, req_len, buf);
TEST_ASSERT_FATAL(rc == 0);
- rc = ble_att_notify_req_parse(buf, req_len, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_notify_req_parse(buf, req_len, &req);
for (i = 0; i < attr_len; i++) {
TEST_ASSERT(buf[BLE_ATT_NOTIFY_REQ_BASE_SZ + i] == attr_data[i]);
@@ -214,8 +211,7 @@ ble_gatts_notify_test_misc_verify_tx_i(struct ble_l2cap_chan *chan,
rc = os_mbuf_copydata(ble_hs_test_util_prev_tx, 0, req_len, buf);
TEST_ASSERT_FATAL(rc == 0);
- rc = ble_att_indicate_req_parse(buf, req_len, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_indicate_req_parse(buf, req_len, &req);
for (i = 0; i < attr_len; i++) {
TEST_ASSERT(buf[BLE_ATT_INDICATE_REQ_BASE_SZ + i] == attr_data[i]);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_hs_test_util.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_test_util.c b/net/nimble/host/src/test/ble_hs_test_util.c
index 63307b1..d2f179c 100644
--- a/net/nimble/host/src/test/ble_hs_test_util.c
+++ b/net/nimble/host/src/test/ble_hs_test_util.c
@@ -19,7 +19,6 @@
#include <string.h>
#include <errno.h>
-#include <assert.h>
#include "stats/stats.h"
#include "testutil/testutil.h"
#include "nimble/ble.h"
@@ -165,6 +164,20 @@ ble_hs_test_util_rx_le_ack(uint16_t ocf, uint8_t status)
}
int
+ble_hs_test_util_l2cap_rx_first_frag(struct ble_hs_conn *conn, uint16_t cid,
+ struct hci_data_hdr *hci_hdr,
+ struct os_mbuf *om)
+{
+ int rc;
+
+ om = ble_l2cap_prepend_hdr(om, cid, OS_MBUF_PKTLEN(om));
+ TEST_ASSERT_FATAL(om != NULL);
+
+ rc = ble_hs_test_util_l2cap_rx(conn, hci_hdr, om);
+ return rc;
+}
+
+int
ble_hs_test_util_l2cap_rx(struct ble_hs_conn *conn,
struct hci_data_hdr *hci_hdr,
struct os_mbuf *om)
@@ -175,8 +188,8 @@ ble_hs_test_util_l2cap_rx(struct ble_hs_conn *conn,
rc = ble_l2cap_rx(conn, hci_hdr, om, &rx_cb, &rx_buf);
if (rc == 0) {
- assert(rx_cb != NULL);
- assert(rx_buf != NULL);
+ TEST_ASSERT_FATAL(rx_cb != NULL);
+ TEST_ASSERT_FATAL(rx_buf != NULL);
rc = rx_cb(conn->bhc_handle, &rx_buf);
os_mbuf_free_chain(rx_buf);
} else if (rc == BLE_HS_EAGAIN) {
@@ -199,20 +212,16 @@ ble_hs_test_util_l2cap_rx_payload_flat(struct ble_hs_conn *conn,
om = ble_hs_misc_pkthdr();
TEST_ASSERT_FATAL(om != NULL);
- om->om_data += BLE_L2CAP_HDR_SZ;
-
rc = os_mbuf_append(om, data, len);
TEST_ASSERT_FATAL(rc == 0);
- om = ble_l2cap_prepend_hdr(om, chan->blc_cid, OS_MBUF_PKTLEN(om));
- TEST_ASSERT_FATAL(om != NULL);
-
hci_hdr.hdh_handle_pb_bc =
host_hci_handle_pb_bc_join(conn->bhc_handle,
BLE_HCI_PB_FIRST_FLUSH, 0);
hci_hdr.hdh_len = OS_MBUF_PKTHDR(om)->omp_len;
- rc = ble_hs_test_util_l2cap_rx(conn, &hci_hdr, om);
+ rc = ble_hs_test_util_l2cap_rx_first_frag(conn, chan->blc_cid, &hci_hdr,
+ om);
return rc;
}
@@ -229,8 +238,7 @@ ble_hs_test_util_rx_att_err_rsp(struct ble_hs_conn *conn, uint8_t req_op,
rsp.baep_handle = err_handle;
rsp.baep_error_code = error_code;
- rc = ble_att_error_rsp_write(buf, sizeof buf, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_att_error_rsp_write(buf, sizeof buf, &rsp);
chan = ble_hs_conn_chan_find(conn, BLE_L2CAP_CID_ATT);
TEST_ASSERT_FATAL(chan != NULL);
@@ -276,7 +284,7 @@ ble_hs_test_util_rx_num_completed_pkts_event(
for (entry = entries; entry->handle_id != 0; entry++) {
num_entries++;
}
- assert(num_entries <= UINT8_MAX);
+ TEST_ASSERT_FATAL(num_entries <= UINT8_MAX);
buf[0] = BLE_HCI_EVCODE_NUM_COMP_PKTS;
buf[2] = num_entries;
@@ -428,16 +436,16 @@ ble_hs_test_util_init(void)
BLE_HS_TEST_UTIL_MEMBLOCK_SIZE,
ble_hs_test_util_mbuf_mpool_data,
"ble_hs_test_util_mbuf_data");
- assert(rc == 0);
+ TEST_ASSERT_FATAL(rc == 0);
rc = os_mbuf_pool_init(&ble_hs_test_util_mbuf_pool,
&ble_hs_test_util_mbuf_mpool,
BLE_HS_TEST_UTIL_MEMBLOCK_SIZE,
BLE_HS_TEST_UTIL_NUM_MBUFS);
- assert(rc == 0);
+ TEST_ASSERT_FATAL(rc == 0);
rc = os_msys_register(&ble_hs_test_util_mbuf_pool);
- assert(rc == 0);
+ TEST_ASSERT_FATAL(rc == 0);
/* Don't limit a connection's ability to transmit; simplify tests. */
ble_hs_cfg.max_outstanding_pkts_per_conn = 0;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_hs_test_util.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_hs_test_util.h b/net/nimble/host/src/test/ble_hs_test_util.h
index 8a97ab8..d1d696e 100644
--- a/net/nimble/host/src/test/ble_hs_test_util.h
+++ b/net/nimble/host/src/test/ble_hs_test_util.h
@@ -48,6 +48,10 @@ void ble_hs_test_util_rx_ack(uint16_t opcode, uint8_t status);
void ble_hs_test_util_rx_ack_param(uint16_t opcode, uint8_t status,
void *param, int param_len);
void ble_hs_test_util_rx_le_ack(uint16_t ocf, uint8_t status);
+int ble_hs_test_util_l2cap_rx_first_frag(struct ble_hs_conn *conn,
+ uint16_t cid,
+ struct hci_data_hdr *hci_hdr,
+ struct os_mbuf *om);
int ble_hs_test_util_l2cap_rx(struct ble_hs_conn *conn,
struct hci_data_hdr *hci_hdr,
struct os_mbuf *om);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_l2cap_sm_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_l2cap_sm_test.c b/net/nimble/host/src/test/ble_l2cap_sm_test.c
index 113b697..f29675c 100644
--- a/net/nimble/host/src/test/ble_l2cap_sm_test.c
+++ b/net/nimble/host/src/test/ble_l2cap_sm_test.c
@@ -90,17 +90,14 @@ ble_l2cap_sm_test_util_rx_pair_cmd(struct ble_hs_conn *conn, uint8_t op,
payload_len = BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CMD_SZ;
- om = ble_l2cap_prepend_hdr(om, BLE_L2CAP_CID_SM, payload_len);
- TEST_ASSERT_FATAL(om != NULL);
-
v = os_mbuf_extend(om, payload_len);
TEST_ASSERT_FATAL(v != NULL);
- rc = ble_l2cap_sm_pair_cmd_write(v, payload_len,
- op == BLE_L2CAP_SM_OP_PAIR_REQ, cmd);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sm_pair_cmd_write(v, payload_len, op == BLE_L2CAP_SM_OP_PAIR_REQ,
+ cmd);
- rc = ble_hs_test_util_l2cap_rx(conn, &hci_hdr, om);
+ rc = ble_hs_test_util_l2cap_rx_first_frag(conn, BLE_L2CAP_CID_SM, &hci_hdr,
+ om);
TEST_ASSERT_FATAL(rc == 0);
}
@@ -137,16 +134,13 @@ ble_l2cap_sm_test_util_rx_confirm(struct ble_hs_conn *conn,
payload_len = BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CONFIRM_SZ;
- om = ble_l2cap_prepend_hdr(om, BLE_L2CAP_CID_SM, payload_len);
- TEST_ASSERT_FATAL(om != NULL);
-
v = os_mbuf_extend(om, payload_len);
TEST_ASSERT_FATAL(v != NULL);
- rc = ble_l2cap_sm_pair_confirm_write(v, payload_len, cmd);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sm_pair_confirm_write(v, payload_len, cmd);
- rc = ble_hs_test_util_l2cap_rx(conn, &hci_hdr, om);
+ rc = ble_hs_test_util_l2cap_rx_first_frag(conn, BLE_L2CAP_CID_SM, &hci_hdr,
+ om);
TEST_ASSERT_FATAL(rc == 0);
}
@@ -169,16 +163,13 @@ ble_l2cap_sm_test_util_rx_random(struct ble_hs_conn *conn,
payload_len = BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_RANDOM_SZ;
- om = ble_l2cap_prepend_hdr(om, BLE_L2CAP_CID_SM, payload_len);
- TEST_ASSERT_FATAL(om != NULL);
-
v = os_mbuf_extend(om, payload_len);
TEST_ASSERT_FATAL(v != NULL);
- rc = ble_l2cap_sm_pair_random_write(v, payload_len, cmd);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sm_pair_random_write(v, payload_len, cmd);
- rc = ble_hs_test_util_l2cap_rx(conn, &hci_hdr, om);
+ rc = ble_hs_test_util_l2cap_rx_first_frag(conn, BLE_L2CAP_CID_SM, &hci_hdr,
+ om);
TEST_ASSERT_FATAL(rc == 0);
}
@@ -201,14 +192,12 @@ ble_l2cap_sm_test_util_verify_tx_pair_cmd(
struct ble_l2cap_sm_pair_cmd *exp_cmd)
{
struct ble_l2cap_sm_pair_cmd cmd;
- int rc;
ble_l2cap_sm_test_util_verify_tx_hdr(op, BLE_L2CAP_SM_PAIR_CMD_SZ);
- rc = ble_l2cap_sm_pair_cmd_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len,
- &cmd);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sm_pair_cmd_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len,
+ &cmd);
TEST_ASSERT(cmd.io_cap == exp_cmd->io_cap);
TEST_ASSERT(cmd.oob_data_flag == exp_cmd->oob_data_flag);
@@ -239,15 +228,13 @@ ble_l2cap_sm_test_util_verify_tx_pair_confirm(
struct ble_l2cap_sm_pair_confirm *exp_cmd)
{
struct ble_l2cap_sm_pair_confirm cmd;
- int rc;
ble_l2cap_sm_test_util_verify_tx_hdr(BLE_L2CAP_SM_OP_PAIR_CONFIRM,
BLE_L2CAP_SM_PAIR_CONFIRM_SZ);
- rc = ble_l2cap_sm_pair_confirm_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len,
- &cmd);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sm_pair_confirm_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len,
+ &cmd);
TEST_ASSERT(memcmp(cmd.value, exp_cmd->value, 16) == 0);
}
@@ -257,15 +244,13 @@ ble_l2cap_sm_test_util_verify_tx_pair_random(
struct ble_l2cap_sm_pair_random *exp_cmd)
{
struct ble_l2cap_sm_pair_random cmd;
- int rc;
ble_l2cap_sm_test_util_verify_tx_hdr(BLE_L2CAP_SM_OP_PAIR_RANDOM,
BLE_L2CAP_SM_PAIR_RANDOM_SZ);
- rc = ble_l2cap_sm_pair_random_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len,
- &cmd);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sm_pair_random_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len,
+ &cmd);
TEST_ASSERT(memcmp(cmd.value, exp_cmd->value, 16) == 0);
}
@@ -275,15 +260,13 @@ ble_l2cap_sm_test_util_verify_tx_pair_fail(
struct ble_l2cap_sm_pair_fail *exp_cmd)
{
struct ble_l2cap_sm_pair_fail cmd;
- int rc;
ble_l2cap_sm_test_util_verify_tx_hdr(BLE_L2CAP_SM_OP_PAIR_FAIL,
BLE_L2CAP_SM_PAIR_FAIL_SZ);
- rc = ble_l2cap_sm_pair_fail_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len,
- &cmd);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sm_pair_fail_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len,
+ &cmd);
TEST_ASSERT(cmd.reason == exp_cmd->reason);
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_l2cap_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_l2cap_test.c b/net/nimble/host/src/test/ble_l2cap_test.c
index 106b757..6ace301 100644
--- a/net/nimble/host/src/test/ble_l2cap_test.c
+++ b/net/nimble/host/src/test/ble_l2cap_test.c
@@ -54,7 +54,6 @@ ble_l2cap_test_util_rx_update_req(struct ble_hs_conn *conn, uint8_t id,
struct ble_l2cap_sig_update_params *params)
{
struct ble_l2cap_sig_update_req req;
- struct ble_l2cap_sig_hdr sig_hdr;
struct hci_data_hdr hci_hdr;
struct os_mbuf *om;
void *v;
@@ -64,30 +63,18 @@ ble_l2cap_test_util_rx_update_req(struct ble_hs_conn *conn, uint8_t id,
2, BLE_HCI_PB_FIRST_FLUSH,
BLE_L2CAP_HDR_SZ + BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_REQ_SZ);
- om = ble_hs_misc_pkthdr();
- TEST_ASSERT_FATAL(om != NULL);
-
- om = ble_l2cap_prepend_hdr(om, BLE_L2CAP_CID_SIG,
- BLE_L2CAP_SIG_HDR_SZ +
- BLE_L2CAP_SIG_UPDATE_REQ_SZ);
- TEST_ASSERT_FATAL(om != NULL);
+ rc = ble_l2cap_sig_init_cmd(BLE_L2CAP_SIG_OP_UPDATE_REQ, id,
+ BLE_L2CAP_SIG_UPDATE_REQ_SZ, &om, &v);
+ TEST_ASSERT_FATAL(rc == 0);
- sig_hdr.op = BLE_L2CAP_SIG_OP_UPDATE_REQ;
- sig_hdr.identifier = id;
- sig_hdr.length = BLE_L2CAP_SIG_UPDATE_REQ_SZ;
req.itvl_min = params->itvl_min;
req.itvl_max = params->itvl_max;
req.slave_latency = params->slave_latency;
req.timeout_multiplier = params->timeout_multiplier;
+ ble_l2cap_sig_update_req_write(v, BLE_L2CAP_SIG_UPDATE_REQ_SZ, &req);
- v = os_mbuf_extend(om, BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_REQ_SZ);
- TEST_ASSERT_FATAL(v != NULL);
-
- rc = ble_l2cap_sig_update_req_write(
- v, BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_REQ_SZ, &sig_hdr, &req);
- TEST_ASSERT_FATAL(rc == 0);
-
- rc = ble_hs_test_util_l2cap_rx(conn, &hci_hdr, om);
+ rc = ble_hs_test_util_l2cap_rx_first_frag(conn, BLE_L2CAP_CID_SIG,
+ &hci_hdr, om);
TEST_ASSERT_FATAL(rc == 0);
}
@@ -96,7 +83,6 @@ ble_l2cap_test_util_rx_update_rsp(struct ble_hs_conn *conn,
uint8_t id, uint16_t result)
{
struct ble_l2cap_sig_update_rsp rsp;
- struct ble_l2cap_sig_hdr sig_hdr;
struct hci_data_hdr hci_hdr;
struct os_mbuf *om;
void *v;
@@ -106,27 +92,15 @@ ble_l2cap_test_util_rx_update_rsp(struct ble_hs_conn *conn,
2, BLE_HCI_PB_FIRST_FLUSH,
BLE_L2CAP_HDR_SZ + BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_RSP_SZ);
- om = ble_hs_misc_pkthdr();
- TEST_ASSERT_FATAL(om != NULL);
-
- om = ble_l2cap_prepend_hdr(om, BLE_L2CAP_CID_SIG,
- BLE_L2CAP_SIG_HDR_SZ +
- BLE_L2CAP_SIG_UPDATE_RSP_SZ);
- TEST_ASSERT_FATAL(om != NULL);
+ rc = ble_l2cap_sig_init_cmd(BLE_L2CAP_SIG_OP_UPDATE_RSP, id,
+ BLE_L2CAP_SIG_UPDATE_RSP_SZ, &om, &v);
+ TEST_ASSERT_FATAL(rc == 0);
- sig_hdr.op = BLE_L2CAP_SIG_OP_UPDATE_RSP;
- sig_hdr.identifier = id;
- sig_hdr.length = BLE_L2CAP_SIG_UPDATE_RSP_SZ;
rsp.result = result;
+ ble_l2cap_sig_update_rsp_write(v, BLE_L2CAP_SIG_UPDATE_RSP_SZ, &rsp);
- v = os_mbuf_extend(om, BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_RSP_SZ);
- TEST_ASSERT_FATAL(v != NULL);
-
- rc = ble_l2cap_sig_update_rsp_write(
- v, BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_RSP_SZ, &sig_hdr, &rsp);
- TEST_ASSERT_FATAL(rc == 0);
-
- rc = ble_hs_test_util_l2cap_rx(conn, &hci_hdr, om);
+ rc = ble_hs_test_util_l2cap_rx_first_frag(conn, BLE_L2CAP_CID_SIG,
+ &hci_hdr, om);
return rc;
}
@@ -139,21 +113,19 @@ ble_l2cap_test_util_verify_tx_update_req(
{
struct ble_l2cap_sig_update_req req;
struct ble_l2cap_sig_hdr hdr;
- int rc;
TEST_ASSERT_FATAL(ble_hs_test_util_prev_tx != NULL);
TEST_ASSERT(OS_MBUF_PKTLEN(ble_hs_test_util_prev_tx) ==
BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_REQ_SZ);
- rc = ble_l2cap_sig_hdr_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len, &hdr);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sig_hdr_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len, &hdr);
ble_hs_test_util_prev_tx->om_data += BLE_L2CAP_SIG_HDR_SZ;
ble_hs_test_util_prev_tx->om_len -= BLE_L2CAP_SIG_HDR_SZ;
- rc = ble_l2cap_sig_update_req_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len,
- &req);
+ ble_l2cap_sig_update_req_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len,
+ &req);
TEST_ASSERT(hdr.op == BLE_L2CAP_SIG_OP_UPDATE_REQ);
TEST_ASSERT(hdr.length == BLE_L2CAP_SIG_UPDATE_REQ_SZ);
TEST_ASSERT(req.itvl_min == params->itvl_min);
@@ -169,21 +141,19 @@ ble_l2cap_test_util_verify_tx_update_rsp(uint8_t exp_id, uint16_t exp_result)
{
struct ble_l2cap_sig_update_rsp rsp;
struct ble_l2cap_sig_hdr hdr;
- int rc;
TEST_ASSERT_FATAL(ble_hs_test_util_prev_tx != NULL);
TEST_ASSERT(OS_MBUF_PKTLEN(ble_hs_test_util_prev_tx) ==
BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_RSP_SZ);
- rc = ble_l2cap_sig_hdr_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len, &hdr);
- TEST_ASSERT_FATAL(rc == 0);
+ ble_l2cap_sig_hdr_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len, &hdr);
ble_hs_test_util_prev_tx->om_data += BLE_L2CAP_SIG_HDR_SZ;
ble_hs_test_util_prev_tx->om_len -= BLE_L2CAP_SIG_HDR_SZ;
- rc = ble_l2cap_sig_update_rsp_parse(ble_hs_test_util_prev_tx->om_data,
- ble_hs_test_util_prev_tx->om_len,
- &rsp);
+ ble_l2cap_sig_update_rsp_parse(ble_hs_test_util_prev_tx->om_data,
+ ble_hs_test_util_prev_tx->om_len,
+ &rsp);
TEST_ASSERT(hdr.op == BLE_L2CAP_SIG_OP_UPDATE_RSP);
TEST_ASSERT(hdr.identifier == exp_id);
TEST_ASSERT(hdr.length == BLE_L2CAP_SIG_UPDATE_RSP_SZ);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/include/nimble/ble.h
----------------------------------------------------------------------
diff --git a/net/nimble/include/nimble/ble.h b/net/nimble/include/nimble/ble.h
index 0660c5b..27026fd 100644
--- a/net/nimble/include/nimble/ble.h
+++ b/net/nimble/include/nimble/ble.h
@@ -20,6 +20,7 @@
#ifndef H_BLE_
#define H_BLE_
+#include <inttypes.h>
/* XXX: some or all of these should not be here */
#include "os/os.h"
[3/3] incubator-mynewt-core git commit: ble host: reduce code size.
Posted by cc...@apache.org.
ble host: reduce code size.
* Use packed structs for over-the-air ATT and L2CAP commands.
* Compile-out ~90% of asserts except when BLE_HS_DEBUG is defined.
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/2fef21d6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/2fef21d6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/2fef21d6
Branch: refs/heads/develop
Commit: 2fef21d6a1f9d3d83b88ecf11b825a6e5a354a47
Parents: f41a109
Author: Christopher Collins <cc...@apache.org>
Authored: Fri Apr 1 18:02:21 2016 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Mon Apr 4 18:41:14 2016 -0700
----------------------------------------------------------------------
apps/bletiny/src/main.c | 4 +
net/nimble/host/src/ble_att.c | 1 -
net/nimble/host/src/ble_att_clt.c | 231 ++---
net/nimble/host/src/ble_att_cmd.c | 987 +++++++------------
net/nimble/host/src/ble_att_cmd.h | 168 ++--
net/nimble/host/src/ble_att_priv.h | 16 +-
net/nimble/host/src/ble_att_svr.c | 348 ++-----
net/nimble/host/src/ble_fsm.c | 26 +-
net/nimble/host/src/ble_fsm_priv.h | 2 +
net/nimble/host/src/ble_gap.c | 124 +--
net/nimble/host/src/ble_gattc.c | 19 +-
net/nimble/host/src/ble_gatts.c | 43 +-
net/nimble/host/src/ble_hci_sched.c | 22 +-
net/nimble/host/src/ble_hs.c | 2 +-
net/nimble/host/src/ble_hs_adv.c | 3 +-
net/nimble/host/src/ble_hs_conn.c | 11 +-
net/nimble/host/src/ble_hs_endian.h | 57 ++
net/nimble/host/src/ble_hs_misc.c | 12 +-
net/nimble/host/src/ble_hs_priv.h | 26 +-
net/nimble/host/src/ble_hs_startup.c | 26 +-
net/nimble/host/src/ble_l2cap.c | 5 +-
net/nimble/host/src/ble_l2cap_priv.h | 40 +-
net/nimble/host/src/ble_l2cap_sig.c | 16 +-
net/nimble/host/src/ble_l2cap_sig_cmd.c | 318 +++---
net/nimble/host/src/ble_l2cap_sm.c | 39 +-
net/nimble/host/src/ble_l2cap_sm.h | 40 +-
net/nimble/host/src/ble_l2cap_sm_cmd.c | 84 +-
net/nimble/host/src/ble_uuid.c | 5 +-
net/nimble/host/src/host_dbg.c | 4 +
net/nimble/host/src/host_hci.c | 23 +-
net/nimble/host/src/host_hci_cmd.c | 4 +-
net/nimble/host/src/test/ble_att_clt_test.c | 33 +-
net/nimble/host/src/test/ble_att_svr_test.c | 180 ++--
net/nimble/host/src/test/ble_gatt_disc_c_test.c | 3 +-
net/nimble/host/src/test/ble_gatt_disc_d_test.c | 3 +-
net/nimble/host/src/test/ble_gatt_disc_s_test.c | 5 +-
net/nimble/host/src/test/ble_gatt_find_s_test.c | 12 +-
net/nimble/host/src/test/ble_gatt_read_test.c | 3 +-
net/nimble/host/src/test/ble_gatt_write_test.c | 9 +-
.../host/src/test/ble_gatts_notify_test.c | 12 +-
net/nimble/host/src/test/ble_hs_test_util.c | 38 +-
net/nimble/host/src/test/ble_hs_test_util.h | 4 +
net/nimble/host/src/test/ble_l2cap_sm_test.c | 61 +-
net/nimble/host/src/test/ble_l2cap_test.c | 74 +-
net/nimble/include/nimble/ble.h | 1 +
45 files changed, 1269 insertions(+), 1875 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/apps/bletiny/src/main.c
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/main.c b/apps/bletiny/src/main.c
index d0eb018..e27a31c 100755
--- a/apps/bletiny/src/main.c
+++ b/apps/bletiny/src/main.c
@@ -42,6 +42,10 @@
#include "host/ble_gap.h"
#include "host/ble_gatt.h"
#include "controller/ble_ll.h"
+
+/* XXX: An app should not include private headers from a library. The bletiny
+ * app uses some of nimble's internal details for logging.
+ */
#include "../src/ble_hs_conn.h"
#include "../src/ble_hci_sched.h"
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_att.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att.c b/net/nimble/host/src/ble_att.c
index a621ec0..c9fa0bb 100644
--- a/net/nimble/host/src/ble_att.c
+++ b/net/nimble/host/src/ble_att.c
@@ -19,7 +19,6 @@
#include <stddef.h>
#include <errno.h>
-#include <assert.h>
#include "bsp/bsp.h"
#include "ble_hs_priv.h"
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_att_clt.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_clt.c b/net/nimble/host/src/ble_att_clt.c
index 402636c..0206ddf 100644
--- a/net/nimble/host/src/ble_att_clt.c
+++ b/net/nimble/host/src/ble_att_clt.c
@@ -48,7 +48,7 @@ ble_att_clt_init_req(uint16_t initial_sz, struct os_mbuf **out_txom)
}
/* The caller expects the initial buffer to be at the start of the mbuf. */
- assert(buf == (*out_txom)->om_data);
+ BLE_HS_DBG_ASSERT(buf == (*out_txom)->om_data);
return 0;
@@ -130,7 +130,7 @@ ble_att_clt_tx_req(uint16_t conn_handle, struct os_mbuf *txom)
int rc;
rc = os_mbuf_copydata(txom, 0, 1, &att_op);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
ble_att_inc_tx_stat(att_op);
@@ -171,9 +171,7 @@ ble_att_clt_rx_error(uint16_t conn_handle, struct os_mbuf **om)
return rc;
}
- rc = ble_att_error_rsp_parse((*om)->om_data, (*om)->om_len, &rsp);
- assert(rc == 0);
-
+ ble_att_error_rsp_parse((*om)->om_data, (*om)->om_len, &rsp);
ble_gattc_rx_err(conn_handle, &rsp);
return 0;
@@ -200,8 +198,7 @@ ble_att_clt_build_mtu_req(struct ble_att_mtu_cmd *req,
goto done;
}
- rc = ble_att_mtu_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_mtu_req_write(txom->om_data, txom->om_len, req);
done:
if (rc != 0) {
@@ -267,8 +264,7 @@ ble_att_clt_rx_mtu(uint16_t conn_handle, struct os_mbuf **om)
rc = ble_hs_misc_pullup_base(om, BLE_ATT_MTU_CMD_SZ);
if (rc == 0) {
- rc = ble_att_mtu_cmd_parse((*om)->om_data, (*om)->om_len, &rsp);
- assert(rc == 0);
+ ble_att_mtu_cmd_parse((*om)->om_data, (*om)->om_len, &rsp);
ble_hs_conn_lock();
@@ -299,24 +295,15 @@ ble_att_clt_build_find_info_req(struct ble_att_find_info_req *req,
struct os_mbuf *txom;
int rc;
- txom = NULL;
-
rc = ble_att_clt_init_req(BLE_ATT_FIND_INFO_REQ_SZ, &txom);
if (rc != 0) {
- goto done;
- }
-
- rc = ble_att_find_info_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
-
-done:
- if (rc != 0) {
- os_mbuf_free_chain(txom);
- txom = NULL;
+ return rc;
}
+ ble_att_find_info_req_write(txom->om_data, txom->om_len, req);
*out_txom = txom;
- return rc;
+
+ return 0;
}
/**
@@ -353,6 +340,59 @@ ble_att_clt_tx_find_info(uint16_t conn_handle,
return 0;
}
+static int
+ble_att_clt_parse_find_info_entry(struct os_mbuf **rxom, uint8_t rsp_format,
+ struct ble_att_find_info_idata *idata)
+{
+ uint16_t uuid16;
+ int entry_len;
+ int rc;
+
+ switch (rsp_format) {
+ case BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT:
+ entry_len = 2 + 2;
+ break;
+
+ case BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT:
+ entry_len = 2 + 16;
+ break;
+
+ default:
+ return BLE_HS_EBADDATA;
+ }
+
+ rc = ble_hs_misc_pullup_base(rxom, entry_len);
+ if (rc != 0) {
+ return rc;
+ }
+
+ idata->attr_handle = le16toh((*rxom)->om_data);
+
+ switch (rsp_format) {
+ case BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT:
+ uuid16 = le16toh((*rxom)->om_data + 2);
+ rc = ble_uuid_16_to_128(uuid16, idata->uuid128);
+ if (rc != 0) {
+ return BLE_HS_EBADDATA;
+ }
+ break;
+
+ case BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT:
+ rc = os_mbuf_copydata(*rxom, 2, 16, idata->uuid128);
+ if (rc != 0) {
+ return BLE_HS_EBADDATA;
+ }
+ break;
+
+ default:
+ BLE_HS_DBG_ASSERT(0);
+ break;
+ }
+
+ os_mbuf_adj(*rxom, entry_len);
+ return 0;
+}
+
/**
* Lock restrictions:
* o Caller unlocks all ble_hs mutexes.
@@ -364,76 +404,34 @@ ble_att_clt_rx_find_info(uint16_t conn_handle, struct os_mbuf **om)
return BLE_HS_ENOTSUP;
#endif
- struct ble_att_find_info_rsp rsp;
struct ble_att_find_info_idata idata;
- struct os_mbuf *rxom;
- uint16_t uuid16;
+ struct ble_att_find_info_rsp rsp;
int rc;
- rxom = NULL;
-
rc = ble_hs_misc_pullup_base(om, BLE_ATT_FIND_INFO_RSP_BASE_SZ);
if (rc != 0) {
goto done;
}
- /* Double indirection is unwieldy; use rxom for remainder of function. */
- rxom = *om;
-
- rc = ble_att_find_info_rsp_parse(rxom->om_data, rxom->om_len, &rsp);
- assert(rc == 0);
+ ble_att_find_info_rsp_parse((*om)->om_data, (*om)->om_len, &rsp);
/* Strip the response base from the front of the mbuf. */
- os_mbuf_adj(rxom, BLE_ATT_FIND_INFO_RSP_BASE_SZ);
+ os_mbuf_adj((*om), BLE_ATT_FIND_INFO_RSP_BASE_SZ);
- idata.attr_handle = 0;
- while (OS_MBUF_PKTLEN(rxom) > 0) {
- rc = ble_hs_misc_pullup_base(&rxom, 2);
+ while (OS_MBUF_PKTLEN(*om) > 0) {
+ rc = ble_att_clt_parse_find_info_entry(om, rsp.bafp_format, &idata);
if (rc != 0) {
goto done;
}
- idata.attr_handle = le16toh(rxom->om_data);
- os_mbuf_adj(rxom, 2);
-
- switch (rsp.bafp_format) {
- case BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT:
- rc = ble_hs_misc_pullup_base(&rxom, 2);
- if (rc != 0) {
- goto done;
- }
- uuid16 = le16toh(rxom->om_data);
- os_mbuf_adj(rxom, 2);
-
- rc = ble_uuid_16_to_128(uuid16, idata.uuid128);
- if (rc != 0) {
- rc = BLE_HS_EBADDATA;
- goto done;
- }
- break;
-
- case BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT:
- rc = os_mbuf_copydata(rxom, 0, 16, idata.uuid128);
- if (rc != 0) {
- rc = BLE_HS_EBADDATA;
- goto done;
- }
- os_mbuf_adj(rxom, 16);
- break;
-
- default:
- rc = BLE_HS_EBADDATA;
- goto done;
- }
-
+ /* Hand find-info entry to GATT. */
ble_gattc_rx_find_info_idata(conn_handle, &idata);
}
rc = 0;
done:
- *om = rxom;
-
+ /* Notify GATT that response processing is done. */
ble_gattc_rx_find_info_complete(conn_handle, rc);
return rc;
}
@@ -450,33 +448,23 @@ ble_att_clt_build_find_type_value_req(struct ble_att_find_type_value_req *req,
void *attribute_value, int value_len,
struct os_mbuf **out_txom)
{
- struct os_mbuf *txom;
int rc;
- txom = NULL;
-
- rc = ble_att_clt_init_req(BLE_ATT_FIND_TYPE_VALUE_REQ_BASE_SZ, &txom);
+ rc = ble_att_clt_init_req(BLE_ATT_FIND_TYPE_VALUE_REQ_BASE_SZ, out_txom);
if (rc != 0) {
- goto done;
- }
-
- rc = ble_att_find_type_value_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
-
- rc = os_mbuf_append(txom, attribute_value, value_len);
- if (rc != 0) {
- rc = BLE_HS_ENOMEM;
- goto done;
+ return rc;
}
-done:
+ ble_att_find_type_value_req_write((*out_txom)->om_data,
+ (*out_txom)->om_len,
+ req);
+ rc = os_mbuf_append(*out_txom, attribute_value, value_len);
if (rc != 0) {
- os_mbuf_free_chain(txom);
- txom = NULL;
+ os_mbuf_free_chain(*out_txom);
+ return BLE_HS_ENOMEM;
}
- *out_txom = txom;
- return rc;
+ return 0;
}
/**
@@ -520,18 +508,17 @@ ble_att_clt_tx_find_type_value(uint16_t conn_handle,
*/
static int
ble_att_clt_parse_find_type_value_hinfo(
- struct os_mbuf **om, struct ble_att_find_type_value_hinfo *hinfo)
+ struct os_mbuf **om, struct ble_att_find_type_value_hinfo *dst)
{
int rc;
- rc = ble_hs_misc_pullup_base(om,
- BLE_ATT_FIND_TYPE_VALUE_HINFO_BASE_SZ);
+ rc = os_mbuf_copydata(*om, 0, BLE_ATT_FIND_TYPE_VALUE_HINFO_BASE_SZ, dst);
if (rc != 0) {
- return rc;
+ return BLE_HS_EBADDATA;
}
- hinfo->attr_handle = le16toh((*om)->om_data + 0);
- hinfo->group_end_handle = le16toh((*om)->om_data + 2);
+ dst->attr_handle = TOFROMLE16(dst->attr_handle);
+ dst->group_end_handle = TOFROMLE16(dst->group_end_handle);
return 0;
}
@@ -551,12 +538,12 @@ ble_att_clt_rx_find_type_value(uint16_t conn_handle, struct os_mbuf **rxom)
int rc;
/* Reponse consists of a one-byte opcode (already verified) and a variable
- * length Handles Information List field. Strip the opcode from the
+ * length Handles-Information-List field. Strip the opcode from the
* response.
*/
os_mbuf_adj(*rxom, BLE_ATT_FIND_TYPE_VALUE_RSP_BASE_SZ);
- /* Parse the Handles Information List field, passing each entry to GATT. */
+ /* Parse the Handles-Information-List field, passing each entry to GATT. */
rc = 0;
while (OS_MBUF_PKTLEN(*rxom) > 0) {
rc = ble_att_clt_parse_find_type_value_hinfo(rxom, &hinfo);
@@ -595,8 +582,7 @@ ble_att_clt_build_read_type_req(struct ble_att_read_type_req *req,
goto done;
}
- rc = ble_att_read_type_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_read_type_req_write(txom->om_data, txom->om_len, req);
rc = ble_uuid_append(txom, uuid128);
if (rc != 0) {
@@ -690,8 +676,7 @@ ble_att_clt_rx_read_type(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_read_type_rsp_parse((*rxom)->om_data, (*rxom)->om_len, &rsp);
- assert(rc == 0);
+ ble_att_read_type_rsp_parse((*rxom)->om_data, (*rxom)->om_len, &rsp);
/* Strip the response base from the front of the mbuf. */
os_mbuf_adj(*rxom, BLE_ATT_READ_TYPE_RSP_BASE_SZ);
@@ -735,8 +720,7 @@ ble_att_clt_build_read_req(struct ble_att_read_req *req,
goto done;
}
- rc = ble_att_read_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_read_req_write(txom->om_data, txom->om_len, req);
done:
if (rc != 0) {
@@ -828,8 +812,7 @@ ble_att_clt_build_read_blob_req(struct ble_att_read_blob_req *req,
goto done;
}
- rc = ble_att_read_blob_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_read_blob_req_write(txom->om_data, txom->om_len, req);
done:
if (rc != 0) {
@@ -924,8 +907,7 @@ ble_att_clt_build_read_mult_req(uint16_t *att_handles, int num_att_handles,
goto done;
}
- rc = ble_att_read_mult_req_write(txom->om_data, txom->om_len);
- assert(rc == 0);
+ ble_att_read_mult_req_write(txom->om_data, txom->om_len);
for (i = 0; i < num_att_handles; i++) {
buf = os_mbuf_extend(txom, 2);
@@ -1030,8 +1012,7 @@ ble_att_clt_build_read_group_type_req(struct ble_att_read_group_type_req *req,
goto done;
}
- rc = ble_att_read_group_type_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_read_group_type_req_write(txom->om_data, txom->om_len, req);
rc = ble_uuid_append(txom, uuid128);
if (rc != 0) {
@@ -1127,15 +1108,12 @@ ble_att_clt_rx_read_group_type(uint16_t conn_handle, struct os_mbuf **rxom)
struct ble_att_read_group_type_rsp rsp;
int rc;
- rc = ble_hs_misc_pullup_base(rxom,
- BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ);
+ rc = ble_hs_misc_pullup_base(rxom, BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ);
if (rc != 0) {
goto done;
}
- rc = ble_att_read_group_type_rsp_parse((*rxom)->om_data, (*rxom)->om_len,
- &rsp);
- assert(rc == 0);
+ ble_att_read_group_type_rsp_parse((*rxom)->om_data, (*rxom)->om_len, &rsp);
/* Strip the base from the front of the response. */
os_mbuf_adj(*rxom, BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ);
@@ -1183,11 +1161,10 @@ ble_att_clt_build_write_req_or_cmd(uint16_t conn_handle,
}
if (is_req) {
- rc = ble_att_write_req_write(txom->om_data, txom->om_len, req);
+ ble_att_write_req_write(txom->om_data, txom->om_len, req);
} else {
- rc = ble_att_write_cmd_write(txom->om_data, txom->om_len, req);
+ ble_att_write_cmd_write(txom->om_data, txom->om_len, req);
}
- assert(rc == 0);
rc = ble_att_clt_append_blob(conn_handle, txom, value, value_len);
if (rc != 0) {
@@ -1310,8 +1287,7 @@ ble_att_clt_build_prep_write_req(uint16_t conn_handle,
goto done;
}
- rc = ble_att_prep_write_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_prep_write_req_write(txom->om_data, txom->om_len, req);
rc = ble_att_clt_append_blob(conn_handle, txom, value, value_len);
if (rc != 0) {
@@ -1398,8 +1374,7 @@ ble_att_clt_rx_prep_write(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_prep_write_rsp_parse((*rxom)->om_data, (*rxom)->om_len, &rsp);
- assert(rc == 0);
+ ble_att_prep_write_rsp_parse((*rxom)->om_data, (*rxom)->om_len, &rsp);
/* Strip the base from the front of the response. */
os_mbuf_adj(*rxom, BLE_ATT_PREP_WRITE_CMD_BASE_SZ);
@@ -1434,8 +1409,7 @@ ble_att_clt_build_exec_write_req(struct ble_att_exec_write_req *req,
goto done;
}
- rc = ble_att_exec_write_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_exec_write_req_write(txom->om_data, txom->om_len, req);
done:
if (rc != 0) {
@@ -1494,8 +1468,7 @@ ble_att_clt_rx_exec_write(uint16_t conn_handle, struct os_mbuf **rxom)
rc = ble_hs_misc_pullup_base(rxom, BLE_ATT_EXEC_WRITE_RSP_SZ);
if (rc == 0) {
- rc = ble_att_exec_write_rsp_parse((*rxom)->om_data, (*rxom)->om_len);
- assert(rc == 0);
+ ble_att_exec_write_rsp_parse((*rxom)->om_data, (*rxom)->om_len);
}
ble_gattc_rx_exec_write_rsp(conn_handle, rc);
@@ -1526,8 +1499,7 @@ ble_att_clt_build_notify_req(uint16_t conn_handle,
goto done;
}
- rc = ble_att_notify_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_notify_req_write(txom->om_data, txom->om_len, req);
rc = ble_att_clt_append_blob(conn_handle, txom, value, value_len);
if (rc != 0) {
@@ -1601,8 +1573,7 @@ ble_att_clt_build_indicate_req(uint16_t conn_handle,
goto done;
}
- rc = ble_att_indicate_req_write(txom->om_data, txom->om_len, req);
- assert(rc == 0);
+ ble_att_indicate_req_write(txom->om_data, txom->om_len, req);
rc = ble_att_clt_append_blob(conn_handle, txom, value, value_len);
if (rc != 0) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_att_cmd.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_cmd.c b/net/nimble/host/src/ble_att_cmd.c
index 4aef8f0..ff4c19e 100644
--- a/net/nimble/host/src/ble_att_cmd.c
+++ b/net/nimble/host/src/ble_att_cmd.c
@@ -26,854 +26,613 @@
#include "host/ble_uuid.h"
#include "ble_hs_priv.h"
-int
-ble_att_error_rsp_parse(void *payload, int len, struct ble_att_error_rsp *rsp)
+static void *
+ble_att_init_parse(uint8_t op, void *payload, int min_len, int actual_len)
{
uint8_t *u8ptr;
- if (len < BLE_ATT_ERROR_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ BLE_HS_DBG_ASSERT(actual_len >= min_len);
u8ptr = payload;
+ BLE_HS_DBG_ASSERT(u8ptr[0] == op);
- if (u8ptr[0] != BLE_ATT_OP_ERROR_RSP) {
- return BLE_HS_EINVAL;
- }
-
- rsp->baep_req_op = u8ptr[1];
- rsp->baep_handle = le16toh(u8ptr + 2);
- rsp->baep_error_code = u8ptr[4];
-
- return 0;
+ return u8ptr + 1;
}
-int
-ble_att_error_rsp_write(void *payload, int len, struct ble_att_error_rsp *rsp)
+static void *
+ble_att_init_parse_2op(uint8_t op1, uint8_t op2, void *payload,
+ int min_len, int actual_len)
{
uint8_t *u8ptr;
- if (len < BLE_ATT_ERROR_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ BLE_HS_DBG_ASSERT(actual_len >= min_len);
u8ptr = payload;
+ BLE_HS_DBG_ASSERT(u8ptr[0] == op1 || u8ptr[0] == op2);
- u8ptr[0] = BLE_ATT_OP_ERROR_RSP;
- u8ptr[1] = rsp->baep_req_op;
- htole16(u8ptr + 2, rsp->baep_handle);
- u8ptr[4] = rsp->baep_error_code;
-
- return 0;
+ return u8ptr + 1;
}
-int
-ble_att_mtu_cmd_parse(void *payload, int len, struct ble_att_mtu_cmd *cmd)
+static void *
+ble_att_init_write(uint8_t op, void *payload, int min_len, int actual_len)
{
uint8_t *u8ptr;
- if (len < BLE_ATT_MTU_CMD_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ BLE_HS_DBG_ASSERT(actual_len >= min_len);
u8ptr = payload;
+ u8ptr[0] = op;
- if (u8ptr[0] != BLE_ATT_OP_MTU_REQ &&
- u8ptr[0] != BLE_ATT_OP_MTU_RSP) {
+ return u8ptr + 1;
+}
- return BLE_HS_EINVAL;
- }
+static void
+ble_att_error_rsp_swap(struct ble_att_error_rsp *dst,
+ struct ble_att_error_rsp *src)
+{
+ dst->baep_req_op = src->baep_req_op;
+ dst->baep_handle = TOFROMLE16(src->baep_handle);
+ dst->baep_error_code = src->baep_error_code;
+}
- cmd->bamc_mtu = le16toh(u8ptr + 1);
+void
+ble_att_error_rsp_parse(void *payload, int len, struct ble_att_error_rsp *dst)
+{
+ struct ble_att_error_rsp *src;
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_ERROR_RSP, payload,
+ BLE_ATT_ERROR_RSP_SZ, len);
+ ble_att_error_rsp_swap(dst, src);
}
-int
-ble_att_mtu_req_write(void *payload, int len,
- struct ble_att_mtu_cmd *cmd)
+void
+ble_att_error_rsp_write(void *payload, int len, struct ble_att_error_rsp *src)
{
- uint8_t *u8ptr;
+ struct ble_att_error_rsp *dst;
- if (len < BLE_ATT_MTU_CMD_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ dst = ble_att_init_write(BLE_ATT_OP_ERROR_RSP, payload,
+ BLE_ATT_ERROR_RSP_SZ, len);
+ ble_att_error_rsp_swap(dst, src);
+}
- u8ptr = payload;
+static void
+ble_att_mtu_cmd_swap(struct ble_att_mtu_cmd *dst, struct ble_att_mtu_cmd *src)
+{
+ dst->bamc_mtu = src->bamc_mtu;
+}
- u8ptr[0] = BLE_ATT_OP_MTU_REQ;
- htole16(u8ptr + 1, cmd->bamc_mtu);
+void
+ble_att_mtu_cmd_parse(void *payload, int len, struct ble_att_mtu_cmd *dst)
+{
+ struct ble_att_mtu_cmd *src;
- return 0;
+ src = ble_att_init_parse_2op(BLE_ATT_OP_MTU_REQ, BLE_ATT_OP_MTU_RSP,
+ payload, BLE_ATT_MTU_CMD_SZ, len);
+ ble_att_mtu_cmd_swap(dst, src);
}
-int
-ble_att_mtu_rsp_write(void *payload, int len, struct ble_att_mtu_cmd *cmd)
+void
+ble_att_mtu_req_write(void *payload, int len, struct ble_att_mtu_cmd *src)
{
- uint8_t *u8ptr;
+ struct ble_att_mtu_cmd *dst;
- if (len < BLE_ATT_MTU_CMD_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ dst = ble_att_init_write(BLE_ATT_OP_MTU_REQ, payload,
+ BLE_ATT_MTU_CMD_SZ, len);
+ ble_att_mtu_cmd_swap(dst, src);
+}
- u8ptr = payload;
+void
+ble_att_mtu_rsp_write(void *payload, int len, struct ble_att_mtu_cmd *src)
+{
+ struct ble_att_mtu_cmd *dst;
- u8ptr[0] = BLE_ATT_OP_MTU_RSP;
- htole16(u8ptr + 1, cmd->bamc_mtu);
+ dst = ble_att_init_write(BLE_ATT_OP_MTU_RSP, payload,
+ BLE_ATT_MTU_CMD_SZ, len);
+ ble_att_mtu_cmd_swap(dst, src);
+}
- return 0;
+static void
+ble_att_find_info_req_swap(struct ble_att_find_info_req *dst,
+ struct ble_att_find_info_req *src)
+{
+ dst->bafq_start_handle = TOFROMLE16(src->bafq_start_handle);
+ dst->bafq_end_handle = TOFROMLE16(src->bafq_end_handle);
}
-int
+void
ble_att_find_info_req_parse(void *payload, int len,
- struct ble_att_find_info_req *req)
+ struct ble_att_find_info_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_FIND_INFO_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_FIND_INFO_REQ) {
- return BLE_HS_EINVAL;
- }
+ struct ble_att_find_info_req *src;
- req->bafq_start_handle = le16toh(u8ptr + 1);
- req->bafq_end_handle = le16toh(u8ptr + 3);
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_FIND_INFO_REQ, payload,
+ BLE_ATT_FIND_INFO_REQ_SZ, len);
+ ble_att_find_info_req_swap(dst, src);
}
-int
+void
ble_att_find_info_req_write(void *payload, int len,
- struct ble_att_find_info_req *req)
+ struct ble_att_find_info_req *src)
{
- uint8_t *u8ptr;
+ struct ble_att_find_info_req *dst;
- if (len < BLE_ATT_FIND_INFO_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- u8ptr[0] = BLE_ATT_OP_FIND_INFO_REQ;
- htole16(u8ptr + 1, req->bafq_start_handle);
- htole16(u8ptr + 3, req->bafq_end_handle);
+ dst = ble_att_init_write(BLE_ATT_OP_FIND_INFO_REQ, payload,
+ BLE_ATT_FIND_INFO_REQ_SZ, len);
+ ble_att_find_info_req_swap(dst, src);
+}
- return 0;
+static void
+ble_att_find_info_rsp_swap(struct ble_att_find_info_rsp *dst,
+ struct ble_att_find_info_rsp *src)
+{
+ dst->bafp_format = src->bafp_format;
}
-int
+void
ble_att_find_info_rsp_parse(void *payload, int len,
- struct ble_att_find_info_rsp *rsp)
+ struct ble_att_find_info_rsp *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_FIND_INFO_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
+ struct ble_att_find_info_rsp *src;
- if (u8ptr[0] != BLE_ATT_OP_FIND_INFO_RSP) {
- return BLE_HS_EINVAL;
- }
-
- rsp->bafp_format = u8ptr[1];
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_FIND_INFO_RSP, payload,
+ BLE_ATT_FIND_INFO_RSP_BASE_SZ, len);
+ ble_att_find_info_rsp_swap(dst, src);
}
-int
+void
ble_att_find_info_rsp_write(void *payload, int len,
- struct ble_att_find_info_rsp *rsp)
+ struct ble_att_find_info_rsp *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_FIND_INFO_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ struct ble_att_find_info_rsp *dst;
- u8ptr = payload;
-
- u8ptr[0] = BLE_ATT_OP_FIND_INFO_RSP;
- u8ptr[1] = rsp->bafp_format;
+ dst = ble_att_init_write(BLE_ATT_OP_FIND_INFO_RSP, payload,
+ BLE_ATT_FIND_INFO_RSP_BASE_SZ, len);
+ ble_att_find_info_rsp_swap(dst, src);
+}
- return 0;
+static void
+ble_att_find_type_value_req_swap(struct ble_att_find_type_value_req *dst,
+ struct ble_att_find_type_value_req *src)
+{
+ dst->bavq_start_handle = TOFROMLE16(src->bavq_start_handle);
+ dst->bavq_end_handle = TOFROMLE16(src->bavq_end_handle);
+ dst->bavq_attr_type = TOFROMLE16(src->bavq_attr_type);
}
-int
+void
ble_att_find_type_value_req_parse(void *payload, int len,
- struct ble_att_find_type_value_req *req)
+ struct ble_att_find_type_value_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_FIND_TYPE_VALUE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_FIND_TYPE_VALUE_REQ) {
- return BLE_HS_EINVAL;
- }
+ struct ble_att_find_type_value_req *src;
- req->bavq_start_handle = le16toh(u8ptr + 1);
- req->bavq_end_handle = le16toh(u8ptr + 3);
- req->bavq_attr_type = le16toh(u8ptr + 5);
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_FIND_TYPE_VALUE_REQ, payload,
+ BLE_ATT_FIND_TYPE_VALUE_REQ_BASE_SZ, len);
+ ble_att_find_type_value_req_swap(dst, src);
}
-int
+void
ble_att_find_type_value_req_write(void *payload, int len,
- struct ble_att_find_type_value_req *req)
+ struct ble_att_find_type_value_req *src)
{
- uint8_t *u8ptr;
+ struct ble_att_find_type_value_req *dst;
- if (len < BLE_ATT_FIND_TYPE_VALUE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- u8ptr[0] = BLE_ATT_OP_FIND_TYPE_VALUE_REQ;
- htole16(u8ptr + 1, req->bavq_start_handle);
- htole16(u8ptr + 3, req->bavq_end_handle);
- htole16(u8ptr + 5, req->bavq_attr_type);
+ dst = ble_att_init_write(BLE_ATT_OP_FIND_TYPE_VALUE_REQ, payload,
+ BLE_ATT_FIND_TYPE_VALUE_REQ_BASE_SZ, len);
+ ble_att_find_type_value_req_swap(dst, src);
+}
- return 0;
+static void
+ble_att_read_type_req_swap(struct ble_att_read_type_req *dst,
+ struct ble_att_read_type_req *src)
+{
+ dst->batq_start_handle = TOFROMLE16(src->batq_start_handle);
+ dst->batq_end_handle = TOFROMLE16(src->batq_end_handle);
}
-int
+void
ble_att_read_type_req_parse(void *payload, int len,
- struct ble_att_read_type_req *req)
+ struct ble_att_read_type_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_TYPE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_READ_TYPE_REQ) {
- return BLE_HS_EINVAL;
- }
-
- req->batq_start_handle = le16toh(u8ptr + 1);
- req->batq_end_handle = le16toh(u8ptr + 3);
+ struct ble_att_read_type_req *src;
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_READ_TYPE_REQ, payload,
+ BLE_ATT_READ_TYPE_REQ_BASE_SZ, len);
+ ble_att_read_type_req_swap(dst, src);
}
-int
+void
ble_att_read_type_req_write(void *payload, int len,
- struct ble_att_read_type_req *req)
+ struct ble_att_read_type_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_TYPE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
+ struct ble_att_read_type_req *dst;
- u8ptr[0] = BLE_ATT_OP_READ_TYPE_REQ;
- htole16(u8ptr + 1, req->batq_start_handle);
- htole16(u8ptr + 3, req->batq_end_handle);
+ dst = ble_att_init_write(BLE_ATT_OP_READ_TYPE_REQ, payload,
+ BLE_ATT_READ_TYPE_REQ_BASE_SZ, len);
+ ble_att_read_type_req_swap(dst, src);
+}
- return 0;
+static void
+ble_att_read_type_rsp_swap(struct ble_att_read_type_rsp *dst,
+ struct ble_att_read_type_rsp *src)
+{
+ dst->batp_length = src->batp_length;
}
-int
+void
ble_att_read_type_rsp_parse(void *payload, int len,
- struct ble_att_read_type_rsp *rsp)
+ struct ble_att_read_type_rsp *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_TYPE_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ struct ble_att_read_type_rsp *src;
- u8ptr = payload;
-
- rsp->batp_length = u8ptr[1];
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_READ_TYPE_RSP, payload,
+ BLE_ATT_READ_TYPE_RSP_BASE_SZ, len);
+ ble_att_read_type_rsp_swap(dst, src);
}
-int
+void
ble_att_read_type_rsp_write(void *payload, int len,
- struct ble_att_read_type_rsp *rsp)
+ struct ble_att_read_type_rsp *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_TYPE_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
+ struct ble_att_read_type_rsp *dst;
- u8ptr[0] = BLE_ATT_OP_READ_TYPE_RSP;
- u8ptr[1] = rsp->batp_length;
-
- return 0;
+ dst = ble_att_init_write(BLE_ATT_OP_READ_TYPE_RSP, payload,
+ BLE_ATT_READ_TYPE_RSP_BASE_SZ, len);
+ ble_att_read_type_rsp_swap(dst, src);
}
-
-int
-ble_att_read_req_parse(void *payload, int len, struct ble_att_read_req *req)
+static void
+ble_att_read_req_swap(struct ble_att_read_req *dst,
+ struct ble_att_read_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_READ_REQ) {
- return BLE_HS_EINVAL;
- }
-
- req->barq_handle = le16toh(u8ptr + 1);
-
- return 0;
+ dst->barq_handle = TOFROMLE16(src->barq_handle);
}
-int
-ble_att_read_req_write(void *payload, int len, struct ble_att_read_req *req)
+void
+ble_att_read_req_parse(void *payload, int len, struct ble_att_read_req *dst)
{
- uint8_t *u8ptr;
+ struct ble_att_read_req *src;
- if (len < BLE_ATT_READ_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ src = ble_att_init_parse(BLE_ATT_OP_READ_REQ, payload,
+ BLE_ATT_READ_REQ_SZ, len);
+ ble_att_read_req_swap(dst, src);
+}
- u8ptr = payload;
+void
+ble_att_read_req_write(void *payload, int len, struct ble_att_read_req *src)
+{
+ struct ble_att_read_req *dst;
- u8ptr[0] = BLE_ATT_OP_READ_REQ;
- htole16(u8ptr + 1, req->barq_handle);
+ dst = ble_att_init_write(BLE_ATT_OP_READ_REQ, payload,
+ BLE_ATT_READ_REQ_SZ, len);
+ ble_att_read_req_swap(dst, src);
+}
- return 0;
+static void
+ble_att_read_blob_req_swap(struct ble_att_read_blob_req *dst,
+ struct ble_att_read_blob_req *src)
+{
+ dst->babq_handle = src->babq_handle;
+ dst->babq_offset = src->babq_offset;
}
-int
+void
ble_att_read_blob_req_parse(void *payload, int len,
- struct ble_att_read_blob_req *req)
+ struct ble_att_read_blob_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_BLOB_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
+ struct ble_att_read_blob_req *src;
- if (u8ptr[0] != BLE_ATT_OP_READ_BLOB_REQ) {
- return BLE_HS_EINVAL;
- }
-
- req->babq_handle = le16toh(u8ptr + 1);
- req->babq_offset = le16toh(u8ptr + 3);
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_READ_BLOB_REQ, payload,
+ BLE_ATT_READ_BLOB_REQ_SZ, len);
+ ble_att_read_blob_req_swap(dst, src);
}
-int
+void
ble_att_read_blob_req_write(void *payload, int len,
- struct ble_att_read_blob_req *req)
+ struct ble_att_read_blob_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_BLOB_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ struct ble_att_read_blob_req *dst;
- u8ptr = payload;
-
- u8ptr[0] = BLE_ATT_OP_READ_BLOB_REQ;
- htole16(u8ptr + 1, req->babq_handle);
- htole16(u8ptr + 3, req->babq_offset);
-
- return 0;
+ dst = ble_att_init_write(BLE_ATT_OP_READ_BLOB_REQ, payload,
+ BLE_ATT_READ_BLOB_REQ_SZ, len);
+ ble_att_read_blob_req_swap(dst, src);
}
-int
+void
ble_att_read_mult_req_parse(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_MULT_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- if (u8ptr[0] != BLE_ATT_OP_READ_MULT_REQ) {
- return BLE_HS_EINVAL;
- }
-
- return 0;
+ ble_att_init_parse(BLE_ATT_OP_READ_MULT_REQ, payload,
+ BLE_ATT_READ_MULT_REQ_BASE_SZ, len);
}
-int
+void
ble_att_read_mult_req_write(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_MULT_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- u8ptr[0] = BLE_ATT_OP_READ_MULT_REQ;
-
- return 0;
+ ble_att_init_write(BLE_ATT_OP_READ_MULT_REQ, payload,
+ BLE_ATT_READ_MULT_REQ_BASE_SZ, len);
}
-int
+void
ble_att_read_mult_rsp_parse(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_MULT_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- if (u8ptr[0] != BLE_ATT_OP_READ_MULT_RSP) {
- return BLE_HS_EINVAL;
- }
-
- return 0;
+ ble_att_init_parse(BLE_ATT_OP_READ_MULT_RSP, payload,
+ BLE_ATT_READ_MULT_RSP_BASE_SZ, len);
}
-int
+void
ble_att_read_mult_rsp_write(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_MULT_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- u8ptr[0] = BLE_ATT_OP_READ_MULT_RSP;
+ ble_att_init_write(BLE_ATT_OP_READ_MULT_RSP, payload,
+ BLE_ATT_READ_MULT_RSP_BASE_SZ, len);
+}
- return 0;
+static void
+ble_att_read_group_type_req_swap(struct ble_att_read_group_type_req *dst,
+ struct ble_att_read_group_type_req *src)
+{
+ dst->bagq_start_handle = src->bagq_start_handle;
+ dst->bagq_end_handle = src->bagq_end_handle;
}
-int
+void
ble_att_read_group_type_req_parse(void *payload, int len,
- struct ble_att_read_group_type_req *req)
+ struct ble_att_read_group_type_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_READ_GROUP_TYPE_REQ) {
- return BLE_HS_EINVAL;
- }
-
- req->bagq_start_handle = le16toh(u8ptr + 1);
- req->bagq_end_handle = le16toh(u8ptr + 3);
+ struct ble_att_read_group_type_req *src;
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_READ_GROUP_TYPE_REQ, payload,
+ BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ, len);
+ ble_att_read_group_type_req_swap(dst, src);
}
-int
+void
ble_att_read_group_type_req_write(void *payload, int len,
- struct ble_att_read_group_type_req *req)
+ struct ble_att_read_group_type_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
+ struct ble_att_read_group_type_req *dst;
- u8ptr[0] = BLE_ATT_OP_READ_GROUP_TYPE_REQ;
- htole16(u8ptr + 1, req->bagq_start_handle);
- htole16(u8ptr + 3, req->bagq_end_handle);
+ dst = ble_att_init_write(BLE_ATT_OP_READ_GROUP_TYPE_REQ, payload,
+ BLE_ATT_READ_GROUP_TYPE_REQ_BASE_SZ, len);
+ ble_att_read_group_type_req_swap(dst, src);
+}
- return 0;
+static void
+ble_att_read_group_type_rsp_swap(struct ble_att_read_group_type_rsp *dst,
+ struct ble_att_read_group_type_rsp *src)
+{
+ dst->bagp_length = src->bagp_length;
}
-int
+void
ble_att_read_group_type_rsp_parse(void *payload, int len,
- struct ble_att_read_group_type_rsp *rsp)
+ struct ble_att_read_group_type_rsp *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ struct ble_att_read_group_type_rsp *src;
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_READ_GROUP_TYPE_RSP) {
- return BLE_HS_EINVAL;
- }
-
- rsp->bagp_length = u8ptr[1];
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_READ_GROUP_TYPE_RSP, payload,
+ BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ, len);
+ ble_att_read_group_type_rsp_swap(dst, src);
}
-int
+void
ble_att_read_group_type_rsp_write(void *payload, int len,
- struct ble_att_read_group_type_rsp *rsp)
+ struct ble_att_read_group_type_rsp *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
+ struct ble_att_read_group_type_rsp *dst;
- u8ptr[0] = BLE_ATT_OP_READ_GROUP_TYPE_RSP;
- u8ptr[1] = rsp->bagp_length;
-
- return 0;
+ dst = ble_att_init_write(BLE_ATT_OP_READ_GROUP_TYPE_RSP, payload,
+ BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ, len);
+ ble_att_read_group_type_rsp_swap(dst, src);
}
-int
-ble_att_write_req_parse(void *payload, int len, struct ble_att_write_req *req)
+static void
+ble_att_write_req_swap(struct ble_att_write_req *dst,
+ struct ble_att_write_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_WRITE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_WRITE_REQ) {
- return BLE_HS_EINVAL;
- }
-
- req->bawq_handle = le16toh(u8ptr + 1);
-
- return 0;
+ dst->bawq_handle = src->bawq_handle;
}
-int
-ble_att_write_cmd_parse(void *payload, int len, struct ble_att_write_req *req)
+void
+ble_att_write_req_parse(void *payload, int len, struct ble_att_write_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_WRITE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_WRITE_CMD) {
- return BLE_HS_EINVAL;
- }
+ struct ble_att_write_req *src;
- req->bawq_handle = le16toh(u8ptr + 1);
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_WRITE_REQ, payload,
+ BLE_ATT_WRITE_REQ_BASE_SZ, len);
+ ble_att_write_req_swap(dst, src);
}
-int
-ble_att_write_req_write(void *payload, int len, struct ble_att_write_req *req)
+void
+ble_att_write_cmd_parse(void *payload, int len, struct ble_att_write_req *dst)
{
- uint8_t *u8ptr;
+ struct ble_att_write_req *src;
- if (len < BLE_ATT_WRITE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- u8ptr[0] = BLE_ATT_OP_WRITE_REQ;
- htole16(u8ptr + 1, req->bawq_handle);
-
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_WRITE_CMD, payload,
+ BLE_ATT_WRITE_REQ_BASE_SZ, len);
+ ble_att_write_req_swap(dst, src);
}
-int
-ble_att_write_cmd_write(void *payload, int len, struct ble_att_write_req *req)
+void
+ble_att_write_req_write(void *payload, int len, struct ble_att_write_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_WRITE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- u8ptr[0] = BLE_ATT_OP_WRITE_CMD;
- htole16(u8ptr + 1, req->bawq_handle);
+ struct ble_att_write_req *dst;
- return 0;
+ dst = ble_att_init_write(BLE_ATT_OP_WRITE_REQ, payload,
+ BLE_ATT_WRITE_REQ_BASE_SZ, len);
+ ble_att_write_req_swap(dst, src);
}
-static int
-ble_att_prep_write_cmd_parse(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd, int is_req)
+void
+ble_att_write_cmd_write(void *payload, int len, struct ble_att_write_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_PREP_WRITE_CMD_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (is_req) {
- if (u8ptr[0] != BLE_ATT_OP_PREP_WRITE_REQ) {
- return BLE_HS_EINVAL;
- }
- } else {
- if (u8ptr[0] != BLE_ATT_OP_PREP_WRITE_RSP) {
- return BLE_HS_EINVAL;
- }
- }
-
- cmd->bapc_handle = le16toh(u8ptr + 1);
- cmd->bapc_offset = le16toh(u8ptr + 3);
+ struct ble_att_write_req *dst;
- return 0;
+ dst = ble_att_init_write(BLE_ATT_OP_WRITE_CMD, payload,
+ BLE_ATT_WRITE_REQ_BASE_SZ, len);
+ ble_att_write_req_swap(dst, src);
}
-static int
-ble_att_prep_write_cmd_write(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd, int is_req)
+static void
+ble_att_prep_write_cmd_swap(struct ble_att_prep_write_cmd *dst,
+ struct ble_att_prep_write_cmd *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_PREP_WRITE_CMD_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (is_req) {
- u8ptr[0] = BLE_ATT_OP_PREP_WRITE_REQ;
- } else {
- u8ptr[0] = BLE_ATT_OP_PREP_WRITE_RSP;
- }
- htole16(u8ptr + 1, cmd->bapc_handle);
- htole16(u8ptr + 3, cmd->bapc_offset);
-
- return 0;
+ dst->bapc_handle = src->bapc_handle;
+ dst->bapc_offset = src->bapc_offset;
}
-int
+void
ble_att_prep_write_req_parse(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd)
+ struct ble_att_prep_write_cmd *dst)
{
- return ble_att_prep_write_cmd_parse(payload, len, cmd, 1);
+ struct ble_att_prep_write_cmd *src;
+
+ src = ble_att_init_parse(BLE_ATT_OP_PREP_WRITE_REQ, payload,
+ BLE_ATT_PREP_WRITE_CMD_BASE_SZ, len);
+ ble_att_prep_write_cmd_swap(dst, src);
}
-int
+void
ble_att_prep_write_req_write(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd)
+ struct ble_att_prep_write_cmd *src)
{
- return ble_att_prep_write_cmd_write(payload, len, cmd, 1);
+ struct ble_att_prep_write_cmd *dst;
+
+ dst = ble_att_init_write(BLE_ATT_OP_PREP_WRITE_REQ, payload,
+ BLE_ATT_PREP_WRITE_CMD_BASE_SZ, len);
+ ble_att_prep_write_cmd_swap(dst, src);
}
-int
+void
ble_att_prep_write_rsp_parse(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd)
+ struct ble_att_prep_write_cmd *dst)
{
- return ble_att_prep_write_cmd_parse(payload, len, cmd, 0);
+ struct ble_att_prep_write_cmd *src;
+
+ src = ble_att_init_parse(BLE_ATT_OP_PREP_WRITE_RSP, payload,
+ BLE_ATT_PREP_WRITE_CMD_BASE_SZ, len);
+ ble_att_prep_write_cmd_swap(dst, src);
}
-int
+void
ble_att_prep_write_rsp_write(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd)
+ struct ble_att_prep_write_cmd *src)
{
- return ble_att_prep_write_cmd_write(payload, len, cmd, 0);
+ struct ble_att_prep_write_cmd *dst;
+
+ dst = ble_att_init_write(BLE_ATT_OP_PREP_WRITE_RSP, payload,
+ BLE_ATT_PREP_WRITE_CMD_BASE_SZ, len);
+ ble_att_prep_write_cmd_swap(dst, src);
}
-int
-ble_att_exec_write_req_parse(void *payload, int len,
- struct ble_att_exec_write_req *req)
+static void
+ble_att_exec_write_req_swap(struct ble_att_exec_write_req *dst,
+ struct ble_att_exec_write_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_EXEC_WRITE_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_EXEC_WRITE_REQ) {
- return BLE_HS_EINVAL;
- }
+ dst->baeq_flags = src->baeq_flags;
+}
- req->baeq_flags = u8ptr[1];
+void
+ble_att_exec_write_req_parse(void *payload, int len,
+ struct ble_att_exec_write_req *dst)
+{
+ struct ble_att_exec_write_req *src;
- return 0;
+ src = ble_att_init_parse(BLE_ATT_OP_EXEC_WRITE_REQ, payload,
+ BLE_ATT_EXEC_WRITE_REQ_SZ, len);
+ ble_att_exec_write_req_swap(dst, src);
}
-int
+void
ble_att_exec_write_req_write(void *payload, int len,
- struct ble_att_exec_write_req *req)
+ struct ble_att_exec_write_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_EXEC_WRITE_REQ_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- u8ptr[0] = BLE_ATT_OP_EXEC_WRITE_REQ;
- u8ptr[1] = req->baeq_flags;
+ struct ble_att_exec_write_req *dst;
- return 0;
+ dst = ble_att_init_write(BLE_ATT_OP_EXEC_WRITE_REQ, payload,
+ BLE_ATT_EXEC_WRITE_REQ_SZ, len);
+ ble_att_exec_write_req_swap(dst, src);
}
-int
+void
ble_att_exec_write_rsp_parse(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_EXEC_WRITE_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- if (u8ptr[0] != BLE_ATT_OP_EXEC_WRITE_RSP) {
- return BLE_HS_EINVAL;
- }
-
- return 0;
+ ble_att_init_parse(BLE_ATT_OP_EXEC_WRITE_RSP, payload,
+ BLE_ATT_EXEC_WRITE_RSP_SZ, len);
}
-int
+void
ble_att_exec_write_rsp_write(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_EXEC_WRITE_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- u8ptr[0] = BLE_ATT_OP_EXEC_WRITE_RSP;
+ ble_att_init_write(BLE_ATT_OP_EXEC_WRITE_RSP, payload,
+ BLE_ATT_EXEC_WRITE_RSP_SZ, len);
+}
- return 0;
+static void
+ble_att_notify_req_swap(struct ble_att_notify_req *dst,
+ struct ble_att_notify_req *src)
+{
+ dst->banq_handle = src->banq_handle;
}
-int
+void
ble_att_notify_req_parse(void *payload, int len,
- struct ble_att_notify_req *req)
+ struct ble_att_notify_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_NOTIFY_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_NOTIFY_REQ) {
- return BLE_HS_EINVAL;
- }
-
- req->banq_handle = le16toh(u8ptr + 1);
-
- return 0;
+ struct ble_att_notify_req *src;
+ src = ble_att_init_parse(BLE_ATT_OP_NOTIFY_REQ, payload,
+ BLE_ATT_NOTIFY_REQ_BASE_SZ, len);
+ ble_att_notify_req_swap(dst, src);
}
-int
+void
ble_att_notify_req_write(void *payload, int len,
- struct ble_att_notify_req *req)
+ struct ble_att_notify_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_NOTIFY_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ struct ble_att_notify_req *dst;
- u8ptr = payload;
- u8ptr[0] = BLE_ATT_OP_NOTIFY_REQ;
- htole16(u8ptr + 1, req->banq_handle);
+ dst = ble_att_init_write(BLE_ATT_OP_NOTIFY_REQ, payload,
+ BLE_ATT_NOTIFY_REQ_BASE_SZ, len);
+ ble_att_notify_req_swap(dst, src);
+}
- return 0;
+static void
+ble_att_indicate_req_swap(struct ble_att_indicate_req *dst,
+ struct ble_att_indicate_req *src)
+{
+ dst->baiq_handle = src->baiq_handle;
}
-int
+void
ble_att_indicate_req_parse(void *payload, int len,
- struct ble_att_indicate_req *req)
+ struct ble_att_indicate_req *dst)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_INDICATE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
-
- if (u8ptr[0] != BLE_ATT_OP_INDICATE_REQ) {
- return BLE_HS_EINVAL;
- }
-
- req->baiq_handle = le16toh(u8ptr + 1);
-
- return 0;
+ struct ble_att_indicate_req *src;
+ src = ble_att_init_parse(BLE_ATT_OP_INDICATE_REQ, payload,
+ BLE_ATT_INDICATE_REQ_BASE_SZ, len);
+ ble_att_indicate_req_swap(dst, src);
}
-int
+void
ble_att_indicate_req_write(void *payload, int len,
- struct ble_att_indicate_req *req)
+ struct ble_att_indicate_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_INDICATE_REQ_BASE_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- u8ptr[0] = BLE_ATT_OP_INDICATE_REQ;
- htole16(u8ptr + 1, req->baiq_handle);
+ struct ble_att_indicate_req *dst;
- return 0;
+ dst = ble_att_init_write(BLE_ATT_OP_INDICATE_REQ, payload,
+ BLE_ATT_INDICATE_REQ_BASE_SZ, len);
+ ble_att_indicate_req_swap(dst, src);
}
-int
+void
ble_att_indicate_rsp_parse(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_INDICATE_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- if (u8ptr[0] != BLE_ATT_OP_INDICATE_RSP) {
- return BLE_HS_EINVAL;
- }
-
- return 0;
+ ble_att_init_parse(BLE_ATT_OP_INDICATE_RSP, payload,
+ BLE_ATT_INDICATE_RSP_SZ, len);
}
-int
+void
ble_att_indicate_rsp_write(void *payload, int len)
{
- uint8_t *u8ptr;
-
- if (len < BLE_ATT_INDICATE_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- u8ptr = payload;
- u8ptr[0] = BLE_ATT_OP_INDICATE_RSP;
-
- return 0;
+ ble_att_init_write(BLE_ATT_OP_INDICATE_RSP, payload,
+ BLE_ATT_INDICATE_RSP_SZ, len);
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_att_cmd.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_cmd.h b/net/nimble/host/src/ble_att_cmd.h
index 702c2dc..e3b0444 100644
--- a/net/nimble/host/src/ble_att_cmd.h
+++ b/net/nimble/host/src/ble_att_cmd.h
@@ -36,7 +36,7 @@ struct ble_att_error_rsp {
uint8_t baep_req_op;
uint16_t baep_handle;
uint8_t baep_error_code;
-};
+} __attribute__((packed));
/**
* | Parameter | Size (octets) |
@@ -47,7 +47,7 @@ struct ble_att_error_rsp {
#define BLE_ATT_MTU_CMD_SZ 3
struct ble_att_mtu_cmd {
uint16_t bamc_mtu;
-};
+} __attribute__((packed));
/**
* | Parameter | Size (octets) |
@@ -304,87 +304,87 @@ struct ble_att_indicate_req {
*/
#define BLE_ATT_INDICATE_RSP_SZ 1
-int ble_att_error_rsp_parse(void *payload, int len,
- struct ble_att_error_rsp *rsp);
-int ble_att_error_rsp_write(void *payload, int len,
- struct ble_att_error_rsp *rsp);
-int ble_att_mtu_cmd_parse(void *payload, int len,
- struct ble_att_mtu_cmd *cmd);
-int ble_att_mtu_req_write(void *payload, int len,
- struct ble_att_mtu_cmd *cmd);
-int ble_att_mtu_rsp_write(void *payload, int len,
- struct ble_att_mtu_cmd *cmd);
-int ble_att_find_info_req_parse(void *payload, int len,
- struct ble_att_find_info_req *req);
-int ble_att_find_info_req_write(void *payload, int len,
- struct ble_att_find_info_req *req);
-int ble_att_find_info_rsp_parse(void *payload, int len,
- struct ble_att_find_info_rsp *rsp);
-int ble_att_find_info_rsp_write(void *payload, int len,
- struct ble_att_find_info_rsp *rsp);
-int ble_att_find_type_value_req_parse(void *payload, int len,
- struct ble_att_find_type_value_req *req);
-int ble_att_find_type_value_req_write(void *payload, int len,
- struct ble_att_find_type_value_req *req);
-int ble_att_read_type_req_parse(void *payload, int len,
- struct ble_att_read_type_req *req);
-int ble_att_read_type_req_write(void *payload, int len,
- struct ble_att_read_type_req *req);
-int ble_att_read_type_rsp_parse(void *payload, int len,
- struct ble_att_read_type_rsp *rsp);
-int ble_att_read_type_rsp_write(void *payload, int len,
- struct ble_att_read_type_rsp *rsp);
-int ble_att_read_req_parse(void *payload, int len,
- struct ble_att_read_req *req);
-int ble_att_read_req_write(void *payload, int len,
- struct ble_att_read_req *req);
-int ble_att_read_blob_req_parse(void *payload, int len,
- struct ble_att_read_blob_req *req);
-int ble_att_read_blob_req_write(void *payload, int len,
- struct ble_att_read_blob_req *req);
-int ble_att_read_mult_req_parse(void *payload, int len);
-int ble_att_read_mult_req_write(void *payload, int len);
-int ble_att_read_mult_rsp_parse(void *payload, int len);
-int ble_att_read_mult_rsp_write(void *payload, int len);
-int ble_att_read_group_type_req_parse(void *payload, int len,
- struct ble_att_read_group_type_req *req);
-int ble_att_read_group_type_req_write(void *payload, int len,
- struct ble_att_read_group_type_req *req);
-int ble_att_read_group_type_rsp_parse(void *payload, int len,
- struct ble_att_read_group_type_rsp *rsp);
-int ble_att_read_group_type_rsp_write(void *payload, int len,
- struct ble_att_read_group_type_rsp *rsp);
-int ble_att_write_req_parse(void *payload, int len,
- struct ble_att_write_req *req);
-int ble_att_write_req_write(void *payload, int len,
- struct ble_att_write_req *req);
-int ble_att_write_cmd_parse(void *payload, int len,
- struct ble_att_write_req *req);
-int ble_att_write_cmd_write(void *payload, int len,
- struct ble_att_write_req *req);
-int ble_att_prep_write_req_parse(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd);
-int ble_att_prep_write_req_write(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd);
-int ble_att_prep_write_rsp_parse(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd);
-int ble_att_prep_write_rsp_write(void *payload, int len,
- struct ble_att_prep_write_cmd *cmd);
-int ble_att_exec_write_req_parse(void *payload, int len,
- struct ble_att_exec_write_req *req);
-int ble_att_exec_write_req_write(void *payload, int len,
- struct ble_att_exec_write_req *req);
-int ble_att_exec_write_rsp_parse(void *payload, int len);
-int ble_att_exec_write_rsp_write(void *payload, int len);
-int ble_att_notify_req_parse(void *payload, int len,
- struct ble_att_notify_req *req);
-int ble_att_notify_req_write(void *payload, int len,
- struct ble_att_notify_req *req);
-int ble_att_indicate_req_parse(void *payload, int len,
- struct ble_att_indicate_req *req);
-int ble_att_indicate_req_write(void *payload, int len,
- struct ble_att_indicate_req *req);
-int ble_att_indicate_rsp_parse(void *payload, int len);
-int ble_att_indicate_rsp_write(void *payload, int len);
+void ble_att_error_rsp_parse(void *payload, int len,
+ struct ble_att_error_rsp *rsp);
+void ble_att_error_rsp_write(void *payload, int len,
+ struct ble_att_error_rsp *rsp);
+void ble_att_mtu_cmd_parse(void *payload, int len,
+ struct ble_att_mtu_cmd *cmd);
+void ble_att_mtu_req_write(void *payload, int len,
+ struct ble_att_mtu_cmd *cmd);
+void ble_att_mtu_rsp_write(void *payload, int len,
+ struct ble_att_mtu_cmd *cmd);
+void ble_att_find_info_req_parse(void *payload, int len,
+ struct ble_att_find_info_req *req);
+void ble_att_find_info_req_write(void *payload, int len,
+ struct ble_att_find_info_req *req);
+void ble_att_find_info_rsp_parse(void *payload, int len,
+ struct ble_att_find_info_rsp *rsp);
+void ble_att_find_info_rsp_write(void *payload, int len,
+ struct ble_att_find_info_rsp *rsp);
+void ble_att_find_type_value_req_parse(void *payload, int len,
+ struct ble_att_find_type_value_req *req);
+void ble_att_find_type_value_req_write(void *payload, int len,
+ struct ble_att_find_type_value_req *req);
+void ble_att_read_type_req_parse(void *payload, int len,
+ struct ble_att_read_type_req *req);
+void ble_att_read_type_req_write(void *payload, int len,
+ struct ble_att_read_type_req *req);
+void ble_att_read_type_rsp_parse(void *payload, int len,
+ struct ble_att_read_type_rsp *rsp);
+void ble_att_read_type_rsp_write(void *payload, int len,
+ struct ble_att_read_type_rsp *rsp);
+void ble_att_read_req_parse(void *payload, int len,
+ struct ble_att_read_req *req);
+void ble_att_read_req_write(void *payload, int len,
+ struct ble_att_read_req *req);
+void ble_att_read_blob_req_parse(void *payload, int len,
+ struct ble_att_read_blob_req *req);
+void ble_att_read_blob_req_write(void *payload, int len,
+ struct ble_att_read_blob_req *req);
+void ble_att_read_mult_req_parse(void *payload, int len);
+void ble_att_read_mult_req_write(void *payload, int len);
+void ble_att_read_mult_rsp_parse(void *payload, int len);
+void ble_att_read_mult_rsp_write(void *payload, int len);
+void ble_att_read_group_type_req_parse(void *payload, int len,
+ struct ble_att_read_group_type_req *req);
+void ble_att_read_group_type_req_write(void *payload, int len,
+ struct ble_att_read_group_type_req *req);
+void ble_att_read_group_type_rsp_parse(void *payload, int len,
+ struct ble_att_read_group_type_rsp *rsp);
+void ble_att_read_group_type_rsp_write(void *payload, int len,
+ struct ble_att_read_group_type_rsp *rsp);
+void ble_att_write_req_parse(void *payload, int len,
+ struct ble_att_write_req *req);
+void ble_att_write_req_write(void *payload, int len,
+ struct ble_att_write_req *req);
+void ble_att_write_cmd_parse(void *payload, int len,
+ struct ble_att_write_req *req);
+void ble_att_write_cmd_write(void *payload, int len,
+ struct ble_att_write_req *req);
+void ble_att_prep_write_req_parse(void *payload, int len,
+ struct ble_att_prep_write_cmd *cmd);
+void ble_att_prep_write_req_write(void *payload, int len,
+ struct ble_att_prep_write_cmd *cmd);
+void ble_att_prep_write_rsp_parse(void *payload, int len,
+ struct ble_att_prep_write_cmd *cmd);
+void ble_att_prep_write_rsp_write(void *payload, int len,
+ struct ble_att_prep_write_cmd *cmd);
+void ble_att_exec_write_req_parse(void *payload, int len,
+ struct ble_att_exec_write_req *req);
+void ble_att_exec_write_req_write(void *payload, int len,
+ struct ble_att_exec_write_req *req);
+void ble_att_exec_write_rsp_parse(void *payload, int len);
+void ble_att_exec_write_rsp_write(void *payload, int len);
+void ble_att_notify_req_parse(void *payload, int len,
+ struct ble_att_notify_req *req);
+void ble_att_notify_req_write(void *payload, int len,
+ struct ble_att_notify_req *req);
+void ble_att_indicate_req_parse(void *payload, int len,
+ struct ble_att_indicate_req *req);
+void ble_att_indicate_req_write(void *payload, int len,
+ struct ble_att_indicate_req *req);
+void ble_att_indicate_rsp_parse(void *payload, int len);
+void ble_att_indicate_rsp_write(void *payload, int len);
#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_att_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_priv.h b/net/nimble/host/src/ble_att_priv.h
index ad5937f..3a0bc6d 100644
--- a/net/nimble/host/src/ble_att_priv.h
+++ b/net/nimble/host/src/ble_att_priv.h
@@ -132,19 +132,6 @@ struct ble_att_svr_entry {
void *ha_cb_arg;
};
-/**
- * Called from ble_att_svr_walk(). Called on each entry in the
- * ble_att_svr_list.
- *
- * @param Contains the current ble_att being iterated through
- * @param The user supplied argument to ble_att_svr_walk()
- *
- * @return 0 on continue, 1 on stop
- */
-typedef int (*ble_att_svr_walk_func_t)(struct ble_att_svr_entry *entry,
- void *arg);
-
-
#define HA_OPCODE_METHOD_START (0)
#define HA_OPCODE_METHOD_END (5)
#define HA_OPCODE_COMMAND_FLAG (1 << 6)
@@ -170,7 +157,8 @@ int ble_att_init(void);
extern ble_att_svr_notify_fn *ble_att_svr_notify_cb;
extern void *ble_att_svr_notify_cb_arg;
-int ble_att_svr_find_by_uuid(uint8_t *uuid, struct ble_att_svr_entry **ha_ptr);
+struct ble_att_svr_entry *
+ble_att_svr_find_by_uuid(struct ble_att_svr_entry *start_at, uint8_t *uuid);
uint16_t ble_att_svr_prev_handle(void);
int ble_att_svr_rx_mtu(uint16_t conn_handle, struct os_mbuf **om);
int ble_att_svr_rx_find_info(uint16_t conn_handle, struct os_mbuf **rxom);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_att_svr.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_att_svr.c b/net/nimble/host/src/ble_att_svr.c
index 483a315..b5b1bd6 100644
--- a/net/nimble/host/src/ble_att_svr.c
+++ b/net/nimble/host/src/ble_att_svr.c
@@ -19,7 +19,6 @@
#include <string.h>
#include <errno.h>
-#include <assert.h>
#include "bsp/bsp.h"
#include "os/os.h"
#include "nimble/ble.h"
@@ -65,9 +64,8 @@ static uint16_t
ble_att_svr_next_id(void)
{
/* Rollover is fatal. */
- assert(ble_att_svr_id != UINT16_MAX);
-
- return (++ble_att_svr_id);
+ BLE_HS_DBG_ASSERT(ble_att_svr_id != UINT16_MAX);
+ return ++ble_att_svr_id;
}
/**
@@ -143,70 +141,6 @@ ble_att_svr_prev_handle(void)
}
/**
- * Walk the host attribute list, calling walk_func on each entry with argument.
- * If walk_func wants to stop iteration, it returns 1. To continue iteration
- * it returns 0.
- *
- * Lock restrictions: None.
- *
- * @param walk_func The function to call for each element in the
- * host attribute list.
- * @param arg The argument to provide to walk_func
- * @param ha_ptr On input: Indicates the starting point of the
- * walk; null means start at the beginning of
- * the list, non-null means start at the
- * following entry.
- * On output: Indicates the last ble_att element
- * processed, or NULL if the entire list has
- * been processed.
- *
- * @return 1 on stopped, 0 on fully processed and an error code otherwise.
- */
-int
-ble_att_svr_walk(ble_att_svr_walk_func_t walk_func, void *arg,
- struct ble_att_svr_entry **ha_ptr)
-{
- struct ble_att_svr_entry *ha;
- int rc;
-
- assert(ha_ptr != NULL);
-
- if (*ha_ptr == NULL) {
- ha = STAILQ_FIRST(&ble_att_svr_list);
- } else {
- ha = STAILQ_NEXT(*ha_ptr, ha_next);
- }
-
- while (ha != NULL) {
- rc = walk_func(ha, arg);
- if (rc == 1) {
- *ha_ptr = ha;
- goto done;
- }
-
- ha = STAILQ_NEXT(ha, ha_next);
- }
-
- rc = 0;
-
-done:
- return rc;
-}
-
-/**
- * Lock restrictions: None.
- */
-static int
-ble_att_svr_match_handle(struct ble_att_svr_entry *ha, void *arg)
-{
- if (ha->ha_handle_id == *(uint16_t *) arg) {
- return (1);
- } else {
- return (0);
- }
-}
-
-/**
* Find a host attribute by handle id.
*
* Lock restrictions: None.
@@ -222,37 +156,21 @@ ble_att_svr_match_handle(struct ble_att_svr_entry *ha, void *arg)
*
* @return 0 on success; BLE_HS_ENOENT on not found.
*/
-int
-ble_att_svr_find_by_handle(uint16_t handle_id,
- struct ble_att_svr_entry **ha_ptr)
+struct ble_att_svr_entry *
+ble_att_svr_find_by_handle(uint16_t handle_id)
{
- int rc;
-
- rc = ble_att_svr_walk(ble_att_svr_match_handle, &handle_id, ha_ptr);
- if (rc == 1) {
- /* Found a matching handle */
- return 0;
- } else {
- /* Not found */
- return BLE_HS_ENOENT;
- }
-}
-
-/**
- * Lock restrictions: None.
- */
-static int
-ble_att_svr_match_uuid(struct ble_att_svr_entry *ha, void *arg)
-{
- uint8_t *uuid;
+ struct ble_att_svr_entry *entry;
- uuid = arg;
+ for (entry = STAILQ_FIRST(&ble_att_svr_list);
+ entry != NULL;
+ entry = STAILQ_NEXT(entry, ha_next)) {
- if (memcmp(ha->ha_uuid, uuid, sizeof ha->ha_uuid) == 0) {
- return (1);
- } else {
- return (0);
+ if (entry->ha_handle_id == handle_id) {
+ return entry;
+ }
}
+
+ return NULL;
}
/**
@@ -271,19 +189,24 @@ ble_att_svr_match_uuid(struct ble_att_svr_entry *ha, void *arg)
*
* @return 0 on success; BLE_HS_ENOENT on not found.
*/
-int
-ble_att_svr_find_by_uuid(uint8_t *uuid, struct ble_att_svr_entry **ha_ptr)
+struct ble_att_svr_entry *
+ble_att_svr_find_by_uuid(struct ble_att_svr_entry *prev, uint8_t *uuid)
{
- int rc;
+ struct ble_att_svr_entry *entry;
- rc = ble_att_svr_walk(ble_att_svr_match_uuid, uuid, ha_ptr);
- if (rc == 1) {
- /* Found a matching handle */
- return 0;
+ if (prev == NULL) {
+ entry = STAILQ_FIRST(&ble_att_svr_list);
} else {
- /* No match */
- return BLE_HS_ENOENT;
+ entry = STAILQ_NEXT(prev, ha_next);
}
+
+ for (; entry != NULL; entry = STAILQ_NEXT(entry, ha_next)) {
+ if (memcmp(entry->ha_uuid, uuid, sizeof entry->ha_uuid) == 0) {
+ return entry;
+ }
+ }
+
+ return NULL;
}
static int
@@ -335,7 +258,7 @@ ble_att_svr_read(uint16_t conn_handle, struct ble_att_svr_entry *entry,
/* XXX: Check security. */
- assert(entry->ha_cb != NULL);
+ BLE_HS_DBG_ASSERT(entry->ha_cb != NULL);
rc = entry->ha_cb(conn_handle, entry->ha_handle_id,
entry->ha_uuid, BLE_ATT_ACCESS_OP_READ, ctxt,
entry->ha_cb_arg);
@@ -365,11 +288,10 @@ ble_att_svr_read_handle(uint16_t conn_handle, uint16_t attr_handle,
struct ble_att_svr_entry *entry;
int rc;
- entry = NULL;
- rc = ble_att_svr_find_by_handle(attr_handle, &entry);
- if (rc != 0) {
+ entry = ble_att_svr_find_by_handle(attr_handle);
+ if (entry == NULL) {
*out_att_err = BLE_ATT_ERR_INVALID_HANDLE;
- return rc;
+ return BLE_HS_ENOENT;
}
rc = ble_att_svr_read(conn_handle, entry, ctxt, out_att_err);
@@ -390,7 +312,7 @@ ble_att_svr_write(uint16_t conn_handle, struct ble_att_svr_entry *entry,
uint8_t att_err;
int rc;
- assert(!ble_hs_conn_locked_by_cur_task());
+ BLE_HS_DBG_ASSERT(!ble_hs_conn_locked_by_cur_task());
if (conn_handle != BLE_HS_CONN_HANDLE_NONE &&
!(entry->ha_flags & HA_FLAG_PERM_WRITE)) {
@@ -402,7 +324,7 @@ ble_att_svr_write(uint16_t conn_handle, struct ble_att_svr_entry *entry,
/* XXX: Check security. */
- assert(entry->ha_cb != NULL);
+ BLE_HS_DBG_ASSERT(entry->ha_cb != NULL);
rc = entry->ha_cb(conn_handle, entry->ha_handle_id,
entry->ha_uuid, BLE_ATT_ACCESS_OP_WRITE, ctxt,
entry->ha_cb_arg);
@@ -429,11 +351,10 @@ ble_att_svr_write_handle(uint16_t conn_handle, uint16_t attr_handle,
struct ble_att_svr_entry *entry;
int rc;
- entry = NULL;
- rc = ble_att_svr_find_by_handle(attr_handle, &entry);
- if (rc != 0) {
+ entry = ble_att_svr_find_by_handle(attr_handle);
+ if (entry == NULL) {
*out_att_err = BLE_ATT_ERR_INVALID_HANDLE;
- return rc;
+ return BLE_HS_ENOENT;
}
rc = ble_att_svr_write(conn_handle, entry, ctxt, out_att_err);
@@ -456,7 +377,7 @@ ble_att_svr_tx_error_rsp(struct ble_hs_conn *conn, struct ble_l2cap_chan *chan,
void *dst;
int rc;
- assert(error_code != 0);
+ BLE_HS_DBG_ASSERT(error_code != 0);
txom = ble_hs_misc_pkthdr();
if (txom == NULL) {
@@ -474,8 +395,7 @@ ble_att_svr_tx_error_rsp(struct ble_hs_conn *conn, struct ble_l2cap_chan *chan,
rsp.baep_handle = handle;
rsp.baep_error_code = error_code;
- rc = ble_att_error_rsp_write(dst, BLE_ATT_ERROR_RSP_SZ, &rsp);
- assert(rc == 0);
+ ble_att_error_rsp_write(dst, BLE_ATT_ERROR_RSP_SZ, &rsp);
rc = ble_l2cap_tx(conn, chan, txom);
txom = NULL;
@@ -541,7 +461,7 @@ ble_att_svr_tx_rsp(uint16_t conn_handle, int rc, struct os_mbuf *txom,
rc = BLE_HS_ENOTCONN;
} else {
if (rc == 0) {
- assert(txom != NULL);
+ BLE_HS_DBG_ASSERT(txom != NULL);
rc = ble_l2cap_tx(conn, chan, txom);
txom = NULL;
if (rc != 0) {
@@ -607,8 +527,7 @@ ble_att_svr_build_mtu_rsp(uint16_t conn_handle, struct os_mbuf **out_txom,
cmd.bamc_mtu = mtu;
- rc = ble_att_mtu_rsp_write(dst, BLE_ATT_MTU_CMD_SZ, &cmd);
- assert(rc == 0);
+ ble_att_mtu_rsp_write(dst, BLE_ATT_MTU_CMD_SZ, &cmd);
rc = 0;
@@ -637,8 +556,7 @@ ble_att_svr_rx_mtu(uint16_t conn_handle, struct os_mbuf **om)
goto done;
}
- rc = ble_att_mtu_cmd_parse((*om)->om_data, (*om)->om_len, &cmd);
- assert(rc == 0);
+ ble_att_mtu_cmd_parse((*om)->om_data, (*om)->om_len, &cmd);
rc = ble_att_svr_build_mtu_rsp(conn_handle, &txom, &att_err);
if (rc != 0) {
@@ -685,10 +603,10 @@ ble_att_svr_fill_info(struct ble_att_find_info_req *req, struct os_mbuf *om,
uint16_t mtu, uint8_t *format)
{
struct ble_att_svr_entry *ha;
- uint16_t handle_id;
uint16_t uuid16;
+ uint8_t *buf;
int num_entries;
- int rsp_sz;
+ int entry_sz;
int rc;
*format = 0;
@@ -703,66 +621,49 @@ ble_att_svr_fill_info(struct ble_att_find_info_req *req, struct os_mbuf *om,
if (ha->ha_handle_id >= req->bafq_start_handle) {
uuid16 = ble_uuid_128_to_16(ha->ha_uuid);
- if (*format == 0) {
- if (uuid16 != 0) {
+ if (uuid16 != 0) {
+ if (*format == 0) {
*format = BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT;
- } else {
- *format = BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT;
- }
- }
-
- switch (*format) {
- case BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT:
- if (uuid16 == 0) {
+ } else if (*format != BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT) {
rc = 0;
goto done;
}
- rsp_sz = OS_MBUF_PKTHDR(om)->omp_len + 4;
- if (rsp_sz > mtu) {
+ entry_sz = 4;
+ } else {
+ if (*format == 0) {
+ *format = BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT;
+ } else if (*format != BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT) {
rc = 0;
goto done;
}
+ entry_sz = 18;
+ }
- htole16(&handle_id, ha->ha_handle_id);
- rc = os_mbuf_append(om, &handle_id, 2);
- if (rc != 0) {
- goto done;
- }
+ if (OS_MBUF_PKTLEN(om) + entry_sz > mtu) {
+ rc = 0;
+ goto done;
+ }
- htole16(&uuid16, uuid16);
- rc = os_mbuf_append(om, &uuid16, 2);
- if (rc != 0) {
- goto done;
- }
- break;
+ buf = os_mbuf_extend(om, entry_sz);
+ if (buf == NULL) {
+ rc = BLE_HS_ENOMEM;
+ goto done;
+ }
- case BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT:
- if (uuid16 != 0) {
- rc = 0;
- goto done;
- }
+ htole16(buf + 0, ha->ha_handle_id);
- rsp_sz = OS_MBUF_PKTHDR(om)->omp_len + 18;
- if (rsp_sz > mtu) {
- rc = 0;
- goto done;
- }
-
- htole16(&handle_id, ha->ha_handle_id);
- rc = os_mbuf_append(om, &handle_id, 2);
- if (rc != 0) {
- goto done;
- }
+ switch (*format) {
+ case BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT:
+ htole16(buf + 2, uuid16);
+ break;
- rc = os_mbuf_append(om, &ha->ha_uuid, 16);
- if (rc != 0) {
- goto done;
- }
+ case BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT:
+ memcpy(buf + 2, ha->ha_uuid, sizeof ha->ha_uuid);
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
break;
}
@@ -771,7 +672,6 @@ ble_att_svr_fill_info(struct ble_att_find_info_req *req, struct os_mbuf *om,
}
done:
-
if (rc == 0 && num_entries == 0) {
return BLE_HS_ENOENT;
} else {
@@ -819,8 +719,7 @@ ble_att_svr_build_find_info_rsp(uint16_t conn_handle,
goto done;
}
- rc = ble_att_find_info_rsp_write(buf, BLE_ATT_FIND_INFO_RSP_BASE_SZ, &rsp);
- assert(rc == 0);
+ ble_att_find_info_rsp_write(buf, BLE_ATT_FIND_INFO_RSP_BASE_SZ, &rsp);
/* Write the variable length Information Data field, populating the format
* field as appropriate.
@@ -866,8 +765,7 @@ ble_att_svr_rx_find_info(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_find_info_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_find_info_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
/* Tx error response if start handle is greater than end handle or is equal
* to 0 (Vol. 3, Part F, 3.4.3.1).
@@ -1192,9 +1090,7 @@ ble_att_svr_rx_find_type_value(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_find_type_value_req_parse((*rxom)->om_data, (*rxom)->om_len,
- &req);
- assert(rc == 0);
+ ble_att_find_type_value_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
/* Tx error response if start handle is greater than end handle or is equal
* to 0 (Vol. 3, Part F, 3.4.3.3).
@@ -1280,13 +1176,10 @@ ble_att_svr_build_read_type_rsp(uint16_t conn_handle,
/* Find all matching attributes, writing a record for each. */
entry = NULL;
while (1) {
- rc = ble_att_svr_find_by_uuid(uuid128, &entry);
- if (rc == BLE_HS_ENOENT) {
+ entry = ble_att_svr_find_by_uuid(entry, uuid128);
+ if (entry == NULL) {
+ rc = BLE_HS_ENOENT;
break;
- } else if (rc != 0) {
- *att_err = BLE_ATT_ERR_UNLIKELY;
- *err_handle = 0;
- goto done;
}
if (entry->ha_handle_id > req->batq_end_handle) {
@@ -1346,8 +1239,7 @@ done:
/* Fill the response base. */
rsp.batp_length = BLE_ATT_READ_TYPE_ADATA_BASE_SZ + prev_attr_len;
- rc = ble_att_read_type_rsp_write(txom->om_data, txom->om_len, &rsp);
- assert(rc == 0);
+ ble_att_read_type_rsp_write(txom->om_data, txom->om_len, &rsp);
}
*out_txom = txom;
@@ -1391,8 +1283,7 @@ ble_att_svr_rx_read_type(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_read_type_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_read_type_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
if (req.batq_start_handle > req.batq_end_handle ||
req.batq_start_handle == 0) {
@@ -1527,8 +1418,7 @@ ble_att_svr_rx_read(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_read_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_read_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
ctxt.offset = 0;
rc = ble_att_svr_read_handle(conn_handle, req.barq_handle, &ctxt,
@@ -1638,13 +1528,7 @@ ble_att_svr_rx_read_blob(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_read_blob_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- if (rc != 0) {
- att_err = BLE_ATT_ERR_INVALID_PDU;
- err_handle = 0;
- rc = BLE_HS_EBADDATA;
- goto done;
- }
+ ble_att_read_blob_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
ctxt.offset = req.babq_offset;
rc = ble_att_svr_read_handle(conn_handle, req.babq_handle, &ctxt,
@@ -1718,8 +1602,7 @@ ble_att_svr_build_read_mult_rsp(uint16_t conn_handle,
rc = BLE_HS_ENOMEM;
goto done;
}
- rc = ble_att_read_mult_rsp_write(dptr, BLE_ATT_READ_MULT_RSP_BASE_SZ);
- assert(rc == 0);
+ ble_att_read_mult_rsp_write(dptr, BLE_ATT_READ_MULT_RSP_BASE_SZ);
tx_space = mtu - OS_MBUF_PKTLEN(txom);
@@ -1801,13 +1684,7 @@ ble_att_svr_rx_read_mult(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_read_mult_req_parse((*rxom)->om_data, (*rxom)->om_len);
- if (rc != 0) {
- att_err = BLE_ATT_ERR_INVALID_PDU;
- err_handle = 0;
- rc = BLE_HS_EBADDATA;
- goto done;
- }
+ ble_att_read_mult_req_parse((*rxom)->om_data, (*rxom)->om_len);
/* Strip opcode from request. */
os_mbuf_adj(*rxom, BLE_ATT_READ_MULT_REQ_BASE_SZ);
@@ -1998,7 +1875,7 @@ ble_att_svr_build_read_group_type_rsp(uint16_t conn_handle,
if (rc == BLE_HS_ENOMEM) {
*att_err = BLE_ATT_ERR_INSUFFICIENT_RES;
} else {
- assert(rc == BLE_HS_EMSGSIZE);
+ BLE_HS_DBG_ASSERT(rc == BLE_HS_EMSGSIZE);
}
goto done;
}
@@ -2046,7 +1923,7 @@ ble_att_svr_build_read_group_type_rsp(uint16_t conn_handle,
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
goto done;
}
@@ -2088,9 +1965,9 @@ done:
}
if (rc == 0 || rc == BLE_HS_EMSGSIZE) {
- rc = ble_att_read_group_type_rsp_write(
- rsp_buf, BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ, &rsp);
- assert(rc == 0);
+ ble_att_read_group_type_rsp_write(rsp_buf,
+ BLE_ATT_READ_GROUP_TYPE_RSP_BASE_SZ,
+ &rsp);
}
*out_txom = txom;
@@ -2132,14 +2009,7 @@ ble_att_svr_rx_read_group_type(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_read_group_type_req_parse((*rxom)->om_data, (*rxom)->om_len,
- &req);
- if (rc != 0) {
- att_err = BLE_ATT_ERR_INVALID_PDU;
- err_handle = 0;
- rc = BLE_HS_EBADDATA;
- goto done;
- }
+ ble_att_read_group_type_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
if (req.bagq_start_handle > req.bagq_end_handle ||
req.bagq_start_handle == 0) {
@@ -2243,8 +2113,7 @@ ble_att_svr_rx_write(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_write_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_write_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
/* Strip the request base from the front of the mbuf. */
os_mbuf_adj(*rxom, BLE_ATT_WRITE_REQ_BASE_SZ);
@@ -2294,8 +2163,7 @@ ble_att_svr_rx_write_no_rsp(uint16_t conn_handle, struct os_mbuf **rxom)
return rc;
}
- rc = ble_att_write_cmd_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_write_cmd_parse((*rxom)->om_data, (*rxom)->om_len, &req);
/* Strip the request base from the front of the mbuf. */
os_mbuf_adj(*rxom, BLE_ATT_WRITE_REQ_BASE_SZ);
@@ -2479,14 +2347,13 @@ ble_att_svr_prep_write(struct ble_hs_conn *conn, uint16_t *err_handle)
rc = os_mbuf_copydata(entry->bape_value, 0,
OS_MBUF_PKTLEN(entry->bape_value),
ble_att_flat_buf + buf_off);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
buf_off += OS_MBUF_PKTLEN(entry->bape_value);
/* If this is the last entry for this attribute, perform the write. */
if (next == NULL || entry->bape_handle != next->bape_handle) {
- attr = NULL;
- rc = ble_att_svr_find_by_handle(entry->bape_handle, &attr);
- if (rc != 0) {
+ attr = ble_att_svr_find_by_handle(entry->bape_handle);
+ if (attr == NULL) {
*err_handle = entry->bape_handle;
return BLE_ATT_ERR_INVALID_HANDLE;
}
@@ -2542,15 +2409,14 @@ ble_att_svr_rx_prep_write(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_prep_write_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_prep_write_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
/* Strip the request base from the front of the mbuf. */
os_mbuf_adj(*rxom, BLE_ATT_PREP_WRITE_CMD_BASE_SZ);
- attr_entry = NULL;
- rc = ble_att_svr_find_by_handle(req.bapc_handle, &attr_entry);
- if (rc != 0) {
+ attr_entry = ble_att_svr_find_by_handle(req.bapc_handle);
+ if (attr_entry == NULL) {
+ rc = BLE_HS_ENOENT;
att_err = BLE_ATT_ERR_INVALID_HANDLE;
err_handle = req.bapc_handle;
goto done;
@@ -2615,9 +2481,8 @@ ble_att_svr_rx_prep_write(uint16_t conn_handle, struct os_mbuf **rxom)
}
txom = *rxom;
- rc = ble_att_prep_write_rsp_write(txom->om_data,
- BLE_ATT_PREP_WRITE_CMD_BASE_SZ, &req);
- assert(rc == 0);
+ ble_att_prep_write_rsp_write(txom->om_data, BLE_ATT_PREP_WRITE_CMD_BASE_SZ,
+ &req);
rc = 0;
@@ -2681,8 +2546,7 @@ ble_att_svr_build_exec_write_rsp(struct os_mbuf **out_txom, uint8_t *att_err)
goto done;
}
- rc = ble_att_exec_write_rsp_write(dst, BLE_ATT_EXEC_WRITE_RSP_SZ);
- assert(rc == 0);
+ ble_att_exec_write_rsp_write(dst, BLE_ATT_EXEC_WRITE_RSP_SZ);
rc = 0;
@@ -2718,8 +2582,7 @@ ble_att_svr_rx_exec_write(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_exec_write_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_exec_write_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
rc = ble_att_svr_build_exec_write_rsp(&txom, &att_err);
if (rc != 0) {
@@ -2779,8 +2642,7 @@ ble_att_svr_rx_notify(uint16_t conn_handle, struct os_mbuf **rxom)
return BLE_HS_ENOMEM;
}
- rc = ble_att_notify_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_notify_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
if (req.banq_handle == 0) {
return BLE_HS_EBADDATA;
@@ -2829,8 +2691,7 @@ ble_att_svr_build_indicate_rsp(struct os_mbuf **out_txom)
goto done;
}
- rc = ble_att_indicate_rsp_write(dst, BLE_ATT_INDICATE_RSP_SZ);
- assert(rc == 0);
+ ble_att_indicate_rsp_write(dst, BLE_ATT_INDICATE_RSP_SZ);
rc = 0;
@@ -2868,8 +2729,7 @@ ble_att_svr_rx_indicate(uint16_t conn_handle, struct os_mbuf **rxom)
goto done;
}
- rc = ble_att_indicate_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
- assert(rc == 0);
+ ble_att_indicate_req_parse((*rxom)->om_data, (*rxom)->om_len, &req);
if (req.baiq_handle == 0) {
rc = BLE_HS_EBADDATA;
[2/3] incubator-mynewt-core git commit: ble host: reduce code size.
Posted by cc...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_fsm.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_fsm.c b/net/nimble/host/src/ble_fsm.c
index b380216..e6edd28 100644
--- a/net/nimble/host/src/ble_fsm.c
+++ b/net/nimble/host/src/ble_fsm.c
@@ -40,11 +40,11 @@ ble_fsm_lock(struct ble_fsm *fsm)
owner = fsm->mutex.mu_owner;
if (owner != NULL) {
- assert(owner != os_sched_get_current_task());
+ BLE_HS_DBG_ASSERT_EVAL(owner != os_sched_get_current_task());
}
rc = os_mutex_pend(&fsm->mutex, 0xffffffff);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
void
@@ -53,7 +53,7 @@ ble_fsm_unlock(struct ble_fsm *fsm)
int rc;
rc = os_mutex_release(&fsm->mutex);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
int
@@ -97,7 +97,7 @@ ble_fsm_assert_sanity(struct ble_fsm *fsm)
mask <<= 1;
}
- assert(num_set == 1);
+ BLE_HS_DBG_ASSERT(num_set == 1);
}
}
@@ -122,10 +122,10 @@ ble_fsm_proc_remove(struct ble_fsm_proc_list *src_list,
struct ble_fsm_proc *prev)
{
if (prev == NULL) {
- assert(STAILQ_FIRST(src_list) == proc);
+ BLE_HS_DBG_ASSERT(STAILQ_FIRST(src_list) == proc);
STAILQ_REMOVE_HEAD(src_list, next);
} else {
- assert(STAILQ_NEXT(prev, next) == proc);
+ BLE_HS_DBG_ASSERT(STAILQ_NEXT(prev, next) == proc);
STAILQ_NEXT(prev, next) = STAILQ_NEXT(proc, next);
}
}
@@ -179,7 +179,7 @@ ble_fsm_proc_can_pend(struct ble_fsm_proc *proc)
void
ble_fsm_proc_set_pending(struct ble_fsm_proc *proc)
{
- assert(!(proc->flags & BLE_FSM_PROC_F_PENDING));
+ BLE_HS_DBG_ASSERT(!(proc->flags & BLE_FSM_PROC_F_PENDING));
proc->flags &= ~BLE_FSM_PROC_F_EXPECTING;
proc->flags |= BLE_FSM_PROC_F_PENDING;
@@ -194,7 +194,7 @@ ble_fsm_proc_set_pending(struct ble_fsm_proc *proc)
static void
ble_fsm_proc_set_expecting(struct ble_fsm_proc *proc)
{
- assert(!(proc->flags & BLE_FSM_PROC_F_EXPECTING));
+ BLE_HS_DBG_ASSERT(!(proc->flags & BLE_FSM_PROC_F_EXPECTING));
proc->flags &= ~BLE_FSM_PROC_F_PENDING;
proc->flags |= BLE_FSM_PROC_F_EXPECTING;
@@ -306,7 +306,7 @@ ble_fsm_proc_extract(struct ble_fsm *fsm,
goto done;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
rc = 1;
goto done;
}
@@ -387,7 +387,7 @@ ble_fsm_proc_extract_list(struct ble_fsm *fsm,
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
move = 0;
done = 1;
break;
@@ -487,7 +487,7 @@ ble_fsm_wakeup(struct ble_fsm *fsm)
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
break;
}
@@ -511,8 +511,8 @@ ble_fsm_new(struct ble_fsm *fsm, ble_fsm_kick_fn *kick_cb,
{
int rc;
- assert(kick_cb != NULL);
- assert(free_cb != NULL);
+ BLE_HS_DBG_ASSERT(kick_cb != NULL);
+ BLE_HS_DBG_ASSERT(free_cb != NULL);
memset(fsm, 0, sizeof *fsm);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_fsm_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_fsm_priv.h b/net/nimble/host/src/ble_fsm_priv.h
index 062f37d..cc874c4 100644
--- a/net/nimble/host/src/ble_fsm_priv.h
+++ b/net/nimble/host/src/ble_fsm_priv.h
@@ -20,6 +20,8 @@
#ifndef H_BLE_FSM_PRIV_
#define H_BLE_FSM_PRIV_
+#include "os/os_mutex.h"
+
struct ble_fsm_proc {
STAILQ_ENTRY(ble_fsm_proc) next;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_gap.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_gap.c b/net/nimble/host/src/ble_gap.c
index da72b9c..b5cb973 100644
--- a/net/nimble/host/src/ble_gap.c
+++ b/net/nimble/host/src/ble_gap.c
@@ -255,11 +255,11 @@ ble_gap_lock(void)
owner = ble_gap_mutex.mu_owner;
if (owner != NULL) {
- assert(owner != os_sched_get_current_task());
+ BLE_HS_DBG_ASSERT_EVAL(owner != os_sched_get_current_task());
}
rc = os_mutex_pend(&ble_gap_mutex, 0xffffffff);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
static void
@@ -268,7 +268,7 @@ ble_gap_unlock(void)
int rc;
rc = os_mutex_release(&ble_gap_mutex);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
int
@@ -643,7 +643,7 @@ ble_gap_update_entry_alloc(uint16_t conn_handle,
#ifdef BLE_HS_DEBUG
ble_gap_lock();
- assert(ble_gap_update_find(conn_handle) == NULL);
+ BLE_HS_DBG_ASSERT(ble_gap_update_find(conn_handle) == NULL);
ble_gap_unlock();
#endif
@@ -669,7 +669,7 @@ ble_gap_update_entry_free(struct ble_gap_update_entry *entry)
int rc;
rc = os_memblock_put(&ble_gap_update_pool, entry);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
/**
@@ -1017,7 +1017,7 @@ ble_gap_currently_advertising(void)
return ble_gap_slave.state == BLE_GAP_STATE_S_DIR_ADV;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
return 0;
}
}
@@ -1092,7 +1092,7 @@ ble_gap_accept_master_conn(uint8_t addr_type, uint8_t *addr)
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
rc = BLE_HS_ENOENT;
break;
}
@@ -1151,7 +1151,7 @@ ble_gap_accept_slave_conn(uint8_t addr_type, uint8_t *addr)
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
rc = BLE_HS_ENOENT;
break;
}
@@ -1295,13 +1295,13 @@ ble_gap_rx_conn_complete(struct hci_le_conn_complete *evt)
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
break;
}
/* We verified that there is a free connection when the procedure began. */
conn = ble_hs_conn_alloc();
- assert(conn != NULL);
+ BLE_HS_DBG_ASSERT(conn != NULL);
conn->bhc_handle = evt->connection_handle;
memcpy(conn->bhc_addr, evt->peer_addr, sizeof conn->bhc_addr);
@@ -1370,7 +1370,7 @@ ble_gap_master_timer_exp(void *arg)
{
ble_hs_misc_assert_no_locks();
- assert(ble_gap_master_in_progress());
+ BLE_HS_DBG_ASSERT(ble_gap_master_in_progress());
switch (ble_gap_master.op) {
case BLE_GAP_OP_M_DISC:
@@ -1395,7 +1395,7 @@ ble_gap_slave_timer_exp(void *arg)
{
ble_hs_misc_assert_no_locks();
- assert(ble_gap_slave_in_progress());
+ BLE_HS_DBG_ASSERT(ble_gap_slave_in_progress());
ble_gap_call_slave_cb(BLE_GAP_EVENT_ADV_FINISHED, 0, 1);
}
@@ -1464,9 +1464,9 @@ ble_gap_wl_enqueue(uint8_t state, int in_progress,
static void
ble_gap_wl_ack_add(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_wl.op == BLE_GAP_OP_W_SET);
- assert(ble_gap_wl.state == BLE_GAP_STATE_W_ADD);
- assert(ble_gap_wl.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.op == BLE_GAP_OP_W_SET);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.state == BLE_GAP_STATE_W_ADD);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.hci_handle == ack->bha_hci_handle);
ble_gap_wl.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -1494,10 +1494,10 @@ ble_gap_wl_tx_add(void *arg)
struct ble_gap_white_entry *white_entry;
int rc;
- assert(ble_gap_wl.op == BLE_GAP_OP_W_SET);
- assert(ble_gap_wl.state == BLE_GAP_STATE_W_ADD);
- assert(ble_gap_wl.entries != NULL);
- assert(ble_gap_wl.cur < ble_gap_wl.count);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.op == BLE_GAP_OP_W_SET);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.state == BLE_GAP_STATE_W_ADD);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.entries != NULL);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.cur < ble_gap_wl.count);
ble_hci_sched_set_ack_cb(ble_gap_wl_ack_add, NULL);
@@ -1519,9 +1519,9 @@ ble_gap_wl_tx_add(void *arg)
static void
ble_gap_wl_ack_clear(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_wl.op == BLE_GAP_OP_W_SET);
- assert(ble_gap_wl.state == BLE_GAP_STATE_W_CLEAR);
- assert(ble_gap_wl.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.op == BLE_GAP_OP_W_SET);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.state == BLE_GAP_STATE_W_CLEAR);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.hci_handle == ack->bha_hci_handle);
ble_gap_wl.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -1542,8 +1542,8 @@ ble_gap_wl_tx_clear(void *arg)
{
int rc;
- assert(ble_gap_wl.op == BLE_GAP_OP_W_SET);
- assert(ble_gap_wl.state == BLE_GAP_STATE_W_CLEAR);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.op == BLE_GAP_OP_W_SET);
+ BLE_HS_DBG_ASSERT(ble_gap_wl.state == BLE_GAP_STATE_W_CLEAR);
ble_hci_sched_set_ack_cb(ble_gap_wl_ack_clear, NULL);
@@ -1627,7 +1627,7 @@ done:
static void
ble_gap_adv_ack_disable(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_slave.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_slave.hci_handle == ack->bha_hci_handle);
ble_gap_slave.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -1728,7 +1728,7 @@ ble_gap_adv_itvls(uint8_t disc_mode, uint8_t conn_mode,
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
*out_itvl_min = BLE_GAP_ADV_FAST_INTERVAL2_MIN;
*out_itvl_max = BLE_GAP_ADV_FAST_INTERVAL2_MAX;
break;
@@ -1752,7 +1752,7 @@ ble_gap_adv_get_dispatch(void)
return ble_gap_dispatch_adv_dir[ble_gap_slave.state];
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
return NULL;
}
}
@@ -1787,7 +1787,7 @@ ble_gap_adv_next_state(void)
static void
ble_gap_adv_ack(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_slave.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_slave.hci_handle == ack->bha_hci_handle);
ble_gap_slave.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -1848,7 +1848,7 @@ ble_gap_adv_data_tx(void *arg)
uint8_t flags;
int rc;
- assert(ble_gap_slave.op != BLE_GAP_OP_NULL);
+ BLE_HS_DBG_ASSERT(ble_gap_slave.op != BLE_GAP_OP_NULL);
/* Calculate the value of the flags field from the discoverable mode. */
flags = 0;
@@ -1865,7 +1865,7 @@ ble_gap_adv_data_tx(void *arg)
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
break;
}
@@ -1877,7 +1877,7 @@ ble_gap_adv_data_tx(void *arg)
rc = ble_hs_adv_set_flat(BLE_HS_ADV_TYPE_FLAGS, 1, &flags,
ble_gap_slave.adv_data, &adv_data_len,
BLE_HCI_MAX_ADV_DATA_LEN);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT(rc == 0);
}
/* Encode the transmit power AD field. */
@@ -1885,7 +1885,7 @@ ble_gap_adv_data_tx(void *arg)
&ble_gap_slave.tx_pwr_lvl,
ble_gap_slave.adv_data,
&adv_data_len, BLE_HCI_MAX_ADV_DATA_LEN);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT(rc == 0);
ble_hci_sched_set_ack_cb(ble_gap_adv_ack, NULL);
rc = host_hci_cmd_le_set_adv_data(ble_gap_slave.adv_data,
@@ -1907,7 +1907,7 @@ ble_gap_adv_power_ack(struct ble_hci_ack *ack, void *arg)
{
int8_t power_level;
- assert(ble_gap_slave.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_slave.hci_handle == ack->bha_hci_handle);
ble_gap_slave.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -1984,7 +1984,7 @@ ble_gap_adv_params_tx(void *arg)
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
break;
}
@@ -2087,7 +2087,7 @@ ble_gap_adv_start(uint8_t discoverable_mode, uint8_t connectable_mode,
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
break;
}
@@ -2194,9 +2194,9 @@ ble_gap_adv_rsp_set_fields(struct ble_hs_adv_fields *rsp_fields)
static void
ble_gap_disc_ack_disable(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_master.op == BLE_GAP_OP_M_DISC);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_DISC_DISABLE);
- assert(ble_gap_master.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_DISC);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_DISC_DISABLE);
+ BLE_HS_DBG_ASSERT(ble_gap_master.hci_handle == ack->bha_hci_handle);
ble_gap_master.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -2217,8 +2217,8 @@ ble_gap_disc_tx_disable(void *arg)
{
int rc;
- assert(ble_gap_master.op == BLE_GAP_OP_M_DISC);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_DISC_DISABLE);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_DISC);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_DISC_DISABLE);
ble_hci_sched_set_ack_cb(ble_gap_disc_ack_disable, NULL);
rc = host_hci_cmd_le_set_scan_enable(0, 0);
@@ -2238,9 +2238,9 @@ ble_gap_disc_tx_disable(void *arg)
static void
ble_gap_disc_ack_enable(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_master.op == BLE_GAP_OP_M_DISC);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_DISC_ENABLE);
- assert(ble_gap_master.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_DISC);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_DISC_ENABLE);
+ BLE_HS_DBG_ASSERT(ble_gap_master.hci_handle == ack->bha_hci_handle);
ble_gap_master.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -2260,8 +2260,8 @@ ble_gap_disc_tx_enable(void *arg)
{
int rc;
- assert(ble_gap_master.op == BLE_GAP_OP_M_DISC);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_DISC_ENABLE);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_DISC);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_DISC_ENABLE);
ble_hci_sched_set_ack_cb(ble_gap_disc_ack_enable, NULL);
rc = host_hci_cmd_le_set_scan_enable(1, 0);
@@ -2280,9 +2280,9 @@ ble_gap_disc_tx_enable(void *arg)
static void
ble_gap_disc_ack_params(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_master.op == BLE_GAP_OP_M_DISC);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_DISC_PARAMS);
- assert(ble_gap_master.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_DISC);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_DISC_PARAMS);
+ BLE_HS_DBG_ASSERT(ble_gap_master.hci_handle == ack->bha_hci_handle);
ble_gap_master.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -2304,8 +2304,8 @@ ble_gap_disc_tx_params(void *arg)
{
int rc;
- assert(ble_gap_master.op == BLE_GAP_OP_M_DISC);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_DISC_PARAMS);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_DISC);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_DISC_PARAMS);
ble_hci_sched_set_ack_cb(ble_gap_disc_ack_params, NULL);
rc = host_hci_cmd_le_set_scan_params(
@@ -2412,9 +2412,9 @@ done:
static void
ble_gap_conn_create_ack(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_gap_master.op == BLE_GAP_OP_M_CONN);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_UNACKED);
- assert(ble_gap_master.hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_CONN);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_UNACKED);
+ BLE_HS_DBG_ASSERT(ble_gap_master.hci_handle == ack->bha_hci_handle);
ble_gap_master.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -2436,8 +2436,8 @@ ble_gap_conn_create_tx(void *arg)
struct hci_create_conn hcc;
int rc;
- assert(ble_gap_master.op == BLE_GAP_OP_M_CONN);
- assert(ble_gap_master.state == BLE_GAP_STATE_M_PENDING);
+ BLE_HS_DBG_ASSERT(ble_gap_master.op == BLE_GAP_OP_M_CONN);
+ BLE_HS_DBG_ASSERT(ble_gap_master.state == BLE_GAP_STATE_M_PENDING);
hcc.scan_itvl = ble_gap_master.conn.params.scan_itvl;
hcc.scan_window = ble_gap_master.conn.params.scan_window;
@@ -2733,8 +2733,8 @@ ble_gap_param_neg_reply_ack(struct ble_hci_ack *ack, void *arg)
ble_gap_lock();
entry = arg;
- assert(entry->state == BLE_GAP_STATE_U_NEG_REPLY);
- assert(entry->hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(entry->state == BLE_GAP_STATE_U_NEG_REPLY);
+ BLE_HS_DBG_ASSERT(entry->hci_handle == ack->bha_hci_handle);
SLIST_REMOVE(&ble_gap_update_entries, entry,
ble_gap_update_entry, next);
@@ -2756,8 +2756,8 @@ ble_gap_param_reply_ack(struct ble_hci_ack *ack, void *arg)
ble_gap_lock();
entry = arg;
- assert(entry->state == BLE_GAP_STATE_U_REPLY);
- assert(entry->hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(entry->state == BLE_GAP_STATE_U_REPLY);
+ BLE_HS_DBG_ASSERT(entry->hci_handle == ack->bha_hci_handle);
entry->hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -2941,8 +2941,8 @@ ble_gap_update_ack(struct ble_hci_ack *ack, void *arg)
ble_gap_lock();
entry = arg;
- assert(entry->state == BLE_GAP_STATE_U_UPDATE);
- assert(entry->hci_handle == ack->bha_hci_handle);
+ BLE_HS_DBG_ASSERT(entry->state == BLE_GAP_STATE_U_UPDATE);
+ BLE_HS_DBG_ASSERT(entry->hci_handle == ack->bha_hci_handle);
ble_gap_master.hci_handle = BLE_HCI_SCHED_HANDLE_NONE;
@@ -2974,7 +2974,7 @@ ble_gap_update_tx(void *arg)
ble_gap_lock();
entry = arg;
- assert(entry->state == BLE_GAP_STATE_U_UPDATE);
+ BLE_HS_DBG_ASSERT(entry->state == BLE_GAP_STATE_U_UPDATE);
cmd.handle = entry->conn_handle;
cmd.conn_itvl_min = entry->params.itvl_min;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_gattc.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_gattc.c b/net/nimble/host/src/ble_gattc.c
index aab4684..385fd0a 100644
--- a/net/nimble/host/src/ble_gattc.c
+++ b/net/nimble/host/src/ble_gattc.c
@@ -18,7 +18,6 @@
*/
#include <stddef.h>
-#include <assert.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
@@ -707,7 +706,7 @@ ble_gattc_proc_free(struct ble_fsm_proc *proc)
if (proc != NULL) {
rc = os_memblock_put(&ble_gattc_proc_pool, proc);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
}
@@ -812,7 +811,7 @@ ble_gattc_new_proc(uint16_t conn_handle, uint8_t op,
static const struct ble_gattc_dispatch_entry *
ble_gattc_dispatch_get(uint8_t op)
{
- assert(op < BLE_GATT_OP_MAX);
+ BLE_HS_DBG_ASSERT(op < BLE_GATT_OP_MAX);
return ble_gattc_dispatch + op;
}
@@ -888,7 +887,7 @@ ble_gattc_heartbeat(void *unused)
rc = os_callout_reset(&ble_gattc_heartbeat_timer.cf_c,
BLE_GATT_HEARTBEAT_PERIOD * OS_TICKS_PER_SEC / 1000);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
/**
@@ -1110,7 +1109,7 @@ ble_gattc_disc_all_svcs_kick(struct ble_gattc_proc *proc)
int rc;
rc = ble_uuid_16_to_128(BLE_ATT_UUID_PRIMARY_SERVICE, uuid128);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
req.bagq_start_handle = proc->disc_all_svcs.prev_handle + 1;
req.bagq_end_handle = 0xffff;
@@ -1515,7 +1514,7 @@ ble_gattc_find_inc_svcs_kick(struct ble_gattc_proc *proc)
read_type_req.batq_end_handle = proc->find_inc_svcs.end_handle;
rc = ble_uuid_16_to_128(BLE_ATT_UUID_INCLUDE, uuid128);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
rc = ble_att_clt_tx_read_type(proc->fsm_proc.conn_handle,
&read_type_req, uuid128);
@@ -1801,7 +1800,7 @@ ble_gattc_disc_all_chrs_kick(struct ble_gattc_proc *proc)
int rc;
rc = ble_uuid_16_to_128(BLE_ATT_UUID_CHARACTERISTIC, uuid128);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
req.batq_start_handle = proc->disc_all_chrs.prev_handle + 1;
req.batq_end_handle = proc->disc_all_chrs.end_handle;
@@ -2023,7 +2022,7 @@ ble_gattc_disc_chr_uuid_kick(struct ble_gattc_proc *proc)
int rc;
rc = ble_uuid_16_to_128(BLE_ATT_UUID_CHARACTERISTIC, uuid128);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
req.batq_start_handle = proc->disc_chr_uuid.prev_handle + 1;
req.batq_end_handle = proc->disc_chr_uuid.end_handle;
@@ -4042,7 +4041,7 @@ ble_gattc_rx_extract_cb(struct ble_fsm_proc *proc, void *arg)
rx_entry = ble_gattc_rx_entry_find(proc->op,
extract_arg->rx_entries,
extract_arg->num_rx_entries);
- assert(rx_entry != NULL);
+ BLE_HS_DBG_ASSERT(rx_entry != NULL);
if (rx_entry != NULL) {
extract_arg->out_rx_entry = rx_entry;
return BLE_FSM_EXTRACT_EMOVE_STOP;
@@ -4720,7 +4719,7 @@ ble_gattc_started(void)
rc = os_callout_reset(&ble_gattc_heartbeat_timer.cf_c,
BLE_GATT_HEARTBEAT_PERIOD * OS_TICKS_PER_SEC / 1000);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_gatts.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_gatts.c b/net/nimble/host/src/ble_gatts.c
index 257e1ff..b6bd522 100644
--- a/net/nimble/host/src/ble_gatts.c
+++ b/net/nimble/host/src/ble_gatts.c
@@ -18,7 +18,6 @@
*/
#include <stddef.h>
-#include <assert.h>
#include <string.h>
#include "console/console.h"
#include "nimble/ble.h"
@@ -78,7 +77,7 @@ ble_gatts_svc_access(uint16_t conn_handle, uint16_t attr_handle,
STATS_INC(ble_gatts_stats, svc_def_reads);
- assert(op == BLE_ATT_ACCESS_OP_READ);
+ BLE_HS_DBG_ASSERT(op == BLE_ATT_ACCESS_OP_READ);
svc = arg;
@@ -110,7 +109,7 @@ ble_gatts_inc_access(uint16_t conn_handle, uint16_t attr_handle,
STATS_INC(ble_gatts_stats, svc_inc_reads);
- assert(op == BLE_ATT_ACCESS_OP_READ);
+ BLE_HS_DBG_ASSERT(op == BLE_ATT_ACCESS_OP_READ);
entry = arg;
@@ -222,7 +221,7 @@ ble_gatts_chr_def_access(uint16_t conn_handle, uint16_t attr_handle,
STATS_INC(ble_gatts_stats, chr_def_reads);
- assert(op == BLE_ATT_ACCESS_OP_READ);
+ BLE_HS_DBG_ASSERT(op == BLE_ATT_ACCESS_OP_READ);
chr = arg;
@@ -277,7 +276,7 @@ ble_gatts_chr_op(uint8_t att_op)
return BLE_GATT_ACCESS_OP_WRITE_CHR;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
return BLE_GATT_ACCESS_OP_READ_CHR;
}
}
@@ -313,7 +312,7 @@ ble_gatts_chr_val_access(uint16_t conn_handle, uint16_t attr_handle,
int rc;
chr = arg;
- assert(chr != NULL && chr->access_cb != NULL);
+ BLE_HS_DBG_ASSERT(chr != NULL && chr->access_cb != NULL);
gatt_op = ble_gatts_chr_op(att_op);
gatt_ctxt.chr_access.chr = chr;
@@ -390,8 +389,8 @@ ble_gatts_register_inc(struct ble_gatts_svc_entry *entry)
uint16_t handle;
int rc;
- assert(entry->handle != 0);
- assert(entry->end_group_handle != 0xffff);
+ BLE_HS_DBG_ASSERT(entry->handle != 0);
+ BLE_HS_DBG_ASSERT(entry->end_group_handle != 0xffff);
rc = ble_att_svr_register_uuid16(BLE_ATT_UUID_INCLUDE, HA_FLAG_PERM_READ,
&handle, ble_gatts_inc_access, entry);
@@ -416,7 +415,7 @@ ble_gatts_dsc_op(uint8_t att_op)
return BLE_GATT_ACCESS_OP_WRITE_DSC;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
return BLE_GATT_ACCESS_OP_READ_DSC;
}
}
@@ -452,7 +451,7 @@ ble_gatts_dsc_access(uint16_t conn_handle, uint16_t attr_handle,
int rc;
dsc = arg;
- assert(dsc != NULL && dsc->access_cb != NULL);
+ BLE_HS_DBG_ASSERT(dsc != NULL && dsc->access_cb != NULL);
gatt_op = ble_gatts_dsc_op(att_op);
gatt_ctxt.dsc_access.dsc = dsc;
@@ -621,7 +620,7 @@ ble_gatts_clt_cfg_access_locked(struct ble_hs_conn *conn, uint16_t attr_handle,
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
return BLE_ATT_ERR_UNLIKELY;
}
@@ -718,7 +717,7 @@ ble_gatts_register_chr(const struct ble_gatt_chr_def *chr,
if (rc != 0) {
return rc;
}
- assert(val_handle == def_handle + 1);
+ BLE_HS_DBG_ASSERT(val_handle == def_handle + 1);
if (register_cb != NULL) {
register_ctxt.chr_reg.def_handle = def_handle;
@@ -732,7 +731,7 @@ ble_gatts_register_chr(const struct ble_gatt_chr_def *chr,
if (rc != 0) {
return rc;
}
- assert(dsc_handle == def_handle + 2);
+ BLE_HS_DBG_ASSERT(dsc_handle == def_handle + 2);
}
/* Register each descriptor. */
@@ -814,7 +813,7 @@ ble_gatts_register_svc(const struct ble_gatt_svc_def *svc,
}
rc = ble_gatts_svc_type_to_uuid(svc->type, &uuid16);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
/* Register service definition attribute (cast away const on callback
* arg).
@@ -835,7 +834,7 @@ ble_gatts_register_svc(const struct ble_gatt_svc_def *svc,
if (svc->includes != NULL) {
for (i = 0; svc->includes[i] != NULL; i++) {
idx = ble_gatts_find_svc(svc->includes[i]);
- assert(idx != -1);
+ BLE_HS_DBG_ASSERT_EVAL(idx != -1);
rc = ble_gatts_register_inc(ble_gatts_svc_entries + idx);
if (rc != 0) {
@@ -950,7 +949,7 @@ ble_gatts_conn_deinit(struct ble_gatts_conn *gatts_conn)
if (gatts_conn->clt_cfgs != NULL) {
rc = os_memblock_put(&ble_gatts_clt_cfg_pool, gatts_conn->clt_cfgs);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
gatts_conn->clt_cfgs = NULL;
}
@@ -980,12 +979,12 @@ ble_gatts_clt_cfg_init(void)
int rc;
rc = ble_uuid_16_to_128(BLE_ATT_UUID_CHARACTERISTIC, uuid128);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
/* Count the number of client-configurable characteristics. */
ble_gatts_num_cfgable_chrs = 0;
ha = NULL;
- while (ble_att_svr_find_by_uuid(uuid128, &ha) == 0) {
+ while ((ha = ble_att_svr_find_by_uuid(ha, uuid128)) != NULL) {
chr = ha->ha_cb_arg;
if (ble_gatts_chr_clt_cfg_allowed(chr) != 0) {
ble_gatts_num_cfgable_chrs++;
@@ -1019,11 +1018,11 @@ ble_gatts_clt_cfg_init(void)
/* Fill the cache. */
idx = 0;
ha = NULL;
- while (ble_att_svr_find_by_uuid(uuid128, &ha) == 0) {
+ while ((ha = ble_att_svr_find_by_uuid(ha, uuid128)) != NULL) {
chr = ha->ha_cb_arg;
allowed_flags = ble_gatts_chr_clt_cfg_allowed(chr);
if (allowed_flags != 0) {
- assert(idx < ble_gatts_num_cfgable_chrs);
+ BLE_HS_DBG_ASSERT_EVAL(idx < ble_gatts_num_cfgable_chrs);
ble_gatts_clt_cfgs[idx].chr_def_handle = ha->ha_handle_id;
ble_gatts_clt_cfgs[idx].allowed = allowed_flags;
@@ -1133,9 +1132,9 @@ ble_gatts_chr_updated(uint16_t chr_def_handle)
conn != NULL;
conn = SLIST_NEXT(conn, bhc_next)) {
- assert(conn->bhc_gatt_svr.num_clt_cfgs > idx);
+ BLE_HS_DBG_ASSERT_EVAL(conn->bhc_gatt_svr.num_clt_cfgs > idx);
clt_cfg = conn->bhc_gatt_svr.clt_cfgs + idx;
- assert(clt_cfg->chr_def_handle == chr_def_handle);
+ BLE_HS_DBG_ASSERT_EVAL(clt_cfg->chr_def_handle == chr_def_handle);
if (clt_cfg->flags &
(BLE_GATTS_CLT_CFG_F_NOTIFY | BLE_GATTS_CLT_CFG_F_INDICATE)) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hci_sched.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hci_sched.c b/net/nimble/host/src/ble_hci_sched.c
index 2178eea..8b2f51a 100644
--- a/net/nimble/host/src/ble_hci_sched.c
+++ b/net/nimble/host/src/ble_hci_sched.c
@@ -19,7 +19,6 @@
#include <stdlib.h>
#include <string.h>
-#include <assert.h>
#include "os/queue.h"
#include "os/os_mempool.h"
#include "ble_hs_priv.h"
@@ -52,12 +51,11 @@ ble_hci_sched_lock(void)
int rc;
owner = ble_hci_sched_mutex.mu_owner;
- if (owner != NULL) {
- assert(owner != os_sched_get_current_task());
- }
+ BLE_HS_DBG_ASSERT_EVAL(owner == NULL ||
+ owner != os_sched_get_current_task());
rc = os_mutex_pend(&ble_hci_sched_mutex, 0xffffffff);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
static void
@@ -66,7 +64,7 @@ ble_hci_sched_unlock(void)
int rc;
rc = os_mutex_release(&ble_hci_sched_mutex);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
int
@@ -103,7 +101,7 @@ ble_hci_sched_entry_free(struct ble_hci_sched_entry *entry)
int rc;
rc = os_memblock_put(&ble_hci_sched_entry_pool, entry);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
/**
@@ -117,14 +115,14 @@ ble_hci_sched_entry_remove(struct ble_hci_sched_entry *entry,
struct ble_hci_sched_entry *prev)
{
if (os_started()) {
- assert(ble_hci_sched_locked_by_cur_task());
+ BLE_HS_DBG_ASSERT(ble_hci_sched_locked_by_cur_task());
}
if (prev == NULL) {
- assert(STAILQ_FIRST(&ble_hci_sched_list) == entry);
+ BLE_HS_DBG_ASSERT(STAILQ_FIRST(&ble_hci_sched_list) == entry);
STAILQ_REMOVE_HEAD(&ble_hci_sched_list, next);
} else {
- assert(STAILQ_NEXT(prev, next) == prev);
+ BLE_HS_DBG_ASSERT(STAILQ_NEXT(prev, next) == prev);
STAILQ_NEXT(prev, next) = STAILQ_NEXT(prev, next);
}
}
@@ -306,7 +304,7 @@ ble_hci_sched_process_next(void)
struct ble_hci_sched_entry *entry;
int rc;
- assert(ble_hci_sched_cur_entry == NULL);
+ BLE_HS_DBG_ASSERT(ble_hci_sched_cur_entry == NULL);
ble_hci_sched_lock();
@@ -400,7 +398,7 @@ void
ble_hci_sched_set_ack_cb(ble_hci_sched_ack_fn *cb, void *arg)
{
/* Don't allow the current callback to be replaced with another. */
- assert(ble_hci_sched_ack_cb == NULL || cb == NULL);
+ BLE_HS_DBG_ASSERT(ble_hci_sched_ack_cb == NULL || cb == NULL);
ble_hci_sched_ack_cb = cb;
ble_hci_sched_ack_arg = arg;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hs.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs.c b/net/nimble/host/src/ble_hs.c
index 1299fb1..d646962 100644
--- a/net/nimble/host/src/ble_hs.c
+++ b/net/nimble/host/src/ble_hs.c
@@ -145,7 +145,7 @@ ble_hs_task_handler(void *arg)
break;
default:
- assert(0);
+ BLE_HS_DBG_ASSERT(0);
break;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hs_adv.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_adv.c b/net/nimble/host/src/ble_hs_adv.c
index 29a8e1e..faf63b0 100644
--- a/net/nimble/host/src/ble_hs_adv.c
+++ b/net/nimble/host/src/ble_hs_adv.c
@@ -17,7 +17,6 @@
* under the License.
*/
-#include <assert.h>
#include <string.h>
#include <errno.h>
#include "nimble/ble.h"
@@ -49,7 +48,7 @@ ble_hs_adv_set_flat(uint8_t type, int data_len, void *data,
int rc;
- assert(data_len > 0);
+ BLE_HS_DBG_ASSERT(data_len > 0);
rc = ble_hs_adv_set_hdr(type, data_len, max_len, dst, dst_len);
if (rc != 0) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hs_conn.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_conn.c b/net/nimble/host/src/ble_hs_conn.c
index aa1c6da..4d04a24 100644
--- a/net/nimble/host/src/ble_hs_conn.c
+++ b/net/nimble/host/src/ble_hs_conn.c
@@ -17,7 +17,6 @@
* under the License.
*/
-#include <assert.h>
#include <string.h>
#include <errno.h>
#include "os/os.h"
@@ -39,11 +38,11 @@ ble_hs_conn_lock(void)
owner = ble_hs_conn_mutex.mu_owner;
if (owner != NULL) {
- assert(owner != os_sched_get_current_task());
+ BLE_HS_DBG_ASSERT_EVAL(owner != os_sched_get_current_task());
}
rc = os_mutex_pend(&ble_hs_conn_mutex, 0xffffffff);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
void
@@ -52,7 +51,7 @@ ble_hs_conn_unlock(void)
int rc;
rc = os_mutex_release(&ble_hs_conn_mutex);
- assert(rc == 0 || rc == OS_NOT_STARTED);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0 || rc == OS_NOT_STARTED);
}
int
@@ -241,7 +240,7 @@ ble_hs_conn_free(struct ble_hs_conn *conn)
}
rc = os_memblock_put(&ble_hs_conn_pool, conn);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
STATS_INC(ble_hs_stats, conn_delete);
}
@@ -258,7 +257,7 @@ ble_hs_conn_insert(struct ble_hs_conn *conn)
ble_hs_conn_lock();
- assert(ble_hs_conn_find(conn->bhc_handle) == NULL);
+ BLE_HS_DBG_ASSERT_EVAL(ble_hs_conn_find(conn->bhc_handle) == NULL);
SLIST_INSERT_HEAD(&ble_hs_conns, conn, bhc_next);
ble_hs_conn_unlock();
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hs_endian.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_endian.h b/net/nimble/host/src/ble_hs_endian.h
new file mode 100644
index 0000000..c2342ff
--- /dev/null
+++ b/net/nimble/host/src/ble_hs_endian.h
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#ifndef H_BLE_HS_ENDIAN_
+#define H_BLE_HS_ENDIAN_
+
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+
+#define TOFROMLE16(x) ((uint16_t) (x))
+#define TOFROMLE32(x) ((uint32_t) (x))
+#define TOFROMLE64(x) ((uint64_t) (x))
+
+#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+
+#define TOFROMLE16(x) ((uint16_t) \
+ ((((x) & 0xff00) >> 8) | \
+ (((x) & 0x00ff) << 8)))
+
+#define TOFROMLE32(x) ((uint32_t) \
+ ((((x) & 0xff000000) >> 24) | \
+ (((x) & 0x00ff0000) >> 8) | \
+ (((x) & 0x0000ff00) << 8) | \
+ (((x) & 0x000000ff) << 24)))
+
+#define TOFROMLE64(x) ((uint64_t) \
+ ((((x) & 0xff00000000000000ull) >> 56) | \
+ (((x) & 0x00ff000000000000ull) >> 40) | \
+ (((x) & 0x0000ff0000000000ull) >> 24) | \
+ (((x) & 0x000000ff00000000ull) >> 8) | \
+ (((x) & 0x00000000ff000000ull) << 8) | \
+ (((x) & 0x0000000000ff0000ull) << 24) | \
+ (((x) & 0x000000000000ff00ull) << 40) | \
+ (((x) & 0x00000000000000ffull) << 56)))
+
+#else
+
+#error Unsupported endianness.
+
+#endif
+
+#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hs_misc.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_misc.c b/net/nimble/host/src/ble_hs_misc.c
index 5c3e8f0..a02e456 100644
--- a/net/nimble/host/src/ble_hs_misc.c
+++ b/net/nimble/host/src/ble_hs_misc.c
@@ -71,11 +71,11 @@ void
ble_hs_misc_assert_no_locks(void)
{
if (os_started()) {
- assert(!ble_hs_conn_locked_by_cur_task());
- assert(!ble_gattc_locked_by_cur_task());
- assert(!ble_gap_locked_by_cur_task());
- assert(!ble_hci_sched_locked_by_cur_task());
- assert(!ble_l2cap_sm_locked_by_cur_task());
+ assert(!ble_hs_conn_locked_by_cur_task() &&
+ !ble_gattc_locked_by_cur_task() &&
+ !ble_gap_locked_by_cur_task() &&
+ !ble_hci_sched_locked_by_cur_task() &&
+ !ble_l2cap_sm_locked_by_cur_task());
}
}
@@ -157,7 +157,7 @@ ble_hs_misc_conn_chan_find_reqd(uint16_t conn_handle, uint16_t cid,
int rc;
rc = ble_hs_misc_conn_chan_find(conn_handle, cid, &conn, &chan);
- assert(conn == NULL || chan != NULL);
+ BLE_HS_DBG_ASSERT(conn == NULL || chan != NULL);
if (out_conn != NULL) {
*out_conn = conn;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hs_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_priv.h b/net/nimble/host/src/ble_hs_priv.h
index 2e5a664..9ecffe2 100644
--- a/net/nimble/host/src/ble_hs_priv.h
+++ b/net/nimble/host/src/ble_hs_priv.h
@@ -20,11 +20,8 @@
#ifndef H_BLE_HS_PRIV_
#define H_BLE_HS_PRIV_
+#include <assert.h>
#include <inttypes.h>
-#include "stats/stats.h"
-#include "log/log.h"
-#include "nimble/nimble_opt.h"
-#include "host/ble_hs.h"
#include "ble_att_cmd.h"
#include "ble_att_priv.h"
#include "ble_fsm_priv.h"
@@ -33,14 +30,19 @@
#include "ble_hci_sched.h"
#include "ble_hs_adv_priv.h"
#include "ble_hs_conn.h"
+#include "ble_hs_endian.h"
#include "ble_hs_startup.h"
#include "ble_l2cap_priv.h"
#include "ble_l2cap_sig.h"
#include "ble_l2cap_sm.h"
-struct os_mbuf;
-struct os_mempool;
+#include "host/ble_hs.h"
+#include "log/log.h"
+#include "nimble/nimble_opt.h"
+#include "stats/stats.h"
struct ble_hs_conn;
struct ble_l2cap_chan;
+struct os_mbuf;
+struct os_mempool;
#define BLE_HOST_HCI_EVENT_CTLR_EVENT (OS_EVENT_T_PERUSER + 0)
#define BLE_HS_KICK_HCI_EVENT (OS_EVENT_T_PERUSER + 1)
@@ -108,4 +110,16 @@ int ble_hs_misc_pullup_base(struct os_mbuf **om, int base_len);
(addr)[0], (addr)[1], (addr)[2], \
(addr)[3], (addr)[4], (addr)[5])
+#if BLE_HS_DEBUG
+#define BLE_HS_DBG_ASSERT(x) assert(x)
+#else
+#define BLE_HS_DBG_ASSERT(x)
+#endif
+
+#if BLE_HS_DEBUG
+#define BLE_HS_DBG_ASSERT_EVAL(x) assert(x)
+#else
+#define BLE_HS_DBG_ASSERT_EVAL(x) ((void)(x))
+#endif
+
#endif
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_hs_startup.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_hs_startup.c b/net/nimble/host/src/ble_hs_startup.c
index 6b505dc..c2d27f6 100644
--- a/net/nimble/host/src/ble_hs_startup.c
+++ b/net/nimble/host/src/ble_hs_startup.c
@@ -19,7 +19,6 @@
#include <stddef.h>
#include <string.h>
-#include <assert.h>
#include "host/host_hci.h"
#include "host/ble_hs.h"
#include "ble_hs_priv.h"
@@ -73,7 +72,7 @@ ble_hs_startup_enqueue_tx(void)
}
tx_fn = ble_hs_startup_dispatch[ble_hs_startup_state];
- assert(tx_fn != NULL);
+ BLE_HS_DBG_ASSERT(tx_fn != NULL);
rc = ble_hci_sched_enqueue(tx_fn, NULL, NULL);
if (rc != 0) {
@@ -87,7 +86,7 @@ ble_hs_startup_enqueue_tx(void)
static void
ble_hs_startup_gen_ack(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_hs_startup_state < BLE_HS_STARTUP_STATE_MAX);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state < BLE_HS_STARTUP_STATE_MAX);
if (ack->bha_status != 0) {
ble_hs_startup_failure(ack->bha_status);
@@ -101,7 +100,8 @@ ble_hs_startup_gen_ack(struct ble_hci_ack *ack, void *arg)
static void
ble_hs_startup_le_read_sup_f_ack(struct ble_hci_ack *ack, void *arg)
{
- assert(ble_hs_startup_state == BLE_HS_STARTUP_STATE_LE_READ_SUP_F);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state ==
+ BLE_HS_STARTUP_STATE_LE_READ_SUP_F);
if (ack->bha_status != 0) {
ble_hs_startup_failure(ack->bha_status);
@@ -121,7 +121,8 @@ ble_hs_startup_le_read_sup_f_tx(void *arg)
{
int rc;
- assert(ble_hs_startup_state == BLE_HS_STARTUP_STATE_LE_READ_SUP_F);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state ==
+ BLE_HS_STARTUP_STATE_LE_READ_SUP_F);
ble_hci_sched_set_ack_cb(ble_hs_startup_le_read_sup_f_ack, NULL);
rc = host_hci_cmd_le_read_loc_supp_feat();
@@ -139,7 +140,8 @@ ble_hs_startup_le_read_buf_size_ack(struct ble_hci_ack *ack, void *arg)
uint8_t max_pkts;
int rc;
- assert(ble_hs_startup_state == BLE_HS_STARTUP_STATE_LE_READ_BUF_SZ);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state ==
+ BLE_HS_STARTUP_STATE_LE_READ_BUF_SZ);
if (ack->bha_status != 0) {
ble_hs_startup_failure(ack->bha_status);
@@ -169,7 +171,8 @@ ble_hs_startup_le_read_buf_sz_tx(void *arg)
{
int rc;
- assert(ble_hs_startup_state == BLE_HS_STARTUP_STATE_LE_READ_BUF_SZ);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state ==
+ BLE_HS_STARTUP_STATE_LE_READ_BUF_SZ);
ble_hci_sched_set_ack_cb(ble_hs_startup_le_read_buf_size_ack, NULL);
rc = host_hci_cmd_le_read_buffer_size();
@@ -185,7 +188,8 @@ ble_hs_startup_le_set_evmask_tx(void *arg)
{
int rc;
- assert(ble_hs_startup_state == BLE_HS_STARTUP_STATE_LE_SET_EVMASK);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state ==
+ BLE_HS_STARTUP_STATE_LE_SET_EVMASK);
ble_hci_sched_set_ack_cb(ble_hs_startup_gen_ack, NULL);
rc = host_hci_cmd_le_set_event_mask(0x000000000000001f);
@@ -201,7 +205,8 @@ ble_hs_startup_set_evmask_tx(void *arg)
{
int rc;
- assert(ble_hs_startup_state == BLE_HS_STARTUP_STATE_SET_EVMASK);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state ==
+ BLE_HS_STARTUP_STATE_SET_EVMASK);
ble_hci_sched_set_ack_cb(ble_hs_startup_gen_ack, NULL);
rc = host_hci_cmd_set_event_mask(0x20001fffffffffff);
@@ -217,7 +222,8 @@ ble_hs_startup_reset_tx(void *arg)
{
int rc;
- assert(ble_hs_startup_state == BLE_HS_STARTUP_STATE_RESET);
+ BLE_HS_DBG_ASSERT(ble_hs_startup_state ==
+ BLE_HS_STARTUP_STATE_RESET);
ble_hci_sched_set_ack_cb(ble_hs_startup_gen_ack, NULL);
rc = host_hci_cmd_reset();
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_l2cap.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap.c b/net/nimble/host/src/ble_l2cap.c
index 96aca5c..c7a29af 100644
--- a/net/nimble/host/src/ble_l2cap.c
+++ b/net/nimble/host/src/ble_l2cap.c
@@ -19,7 +19,6 @@
#include <string.h>
#include <errno.h>
-#include <assert.h>
#include "os/os.h"
#include "nimble/ble.h"
#include "nimble/hci_common.h"
@@ -80,7 +79,7 @@ ble_l2cap_chan_free(struct ble_l2cap_chan *chan)
}
rc = os_memblock_put(&ble_l2cap_chan_pool, chan);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
STATS_INC(ble_l2cap_stats, chan_delete);
}
@@ -105,7 +104,7 @@ ble_l2cap_chan_mtu(struct ble_l2cap_chan *chan)
mtu = min(chan->blc_my_mtu, chan->blc_peer_mtu);
}
- assert(mtu >= chan->blc_default_mtu);
+ BLE_HS_DBG_ASSERT(mtu >= chan->blc_default_mtu);
return mtu;
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_l2cap_priv.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap_priv.h b/net/nimble/host/src/ble_l2cap_priv.h
index 6f6438a..9db54ea 100644
--- a/net/nimble/host/src/ble_l2cap_priv.h
+++ b/net/nimble/host/src/ble_l2cap_priv.h
@@ -47,12 +47,12 @@ struct ble_l2cap_sig_hdr {
uint8_t op;
uint8_t identifier;
uint16_t length;
-};
+} __attribute__((packed));
#define BLE_L2CAP_SIG_REJECT_MIN_SZ 2
struct ble_l2cap_sig_reject {
uint16_t reason;
-};
+} __attribute__((packed));
#define BLE_L2CAP_SIG_UPDATE_REQ_SZ 8
struct ble_l2cap_sig_update_req {
@@ -60,12 +60,12 @@ struct ble_l2cap_sig_update_req {
uint16_t itvl_max;
uint16_t slave_latency;
uint16_t timeout_multiplier;
-};
+} __attribute__((packed));
#define BLE_L2CAP_SIG_UPDATE_RSP_SZ 2
struct ble_l2cap_sig_update_rsp {
uint16_t result;
-};
+} __attribute__((packed));
#define BLE_L2CAP_SIG_UPDATE_RSP_RESULT_ACCEPT 0x0000
#define BLE_L2CAP_SIG_UPDATE_RSP_RESULT_REJECT 0x0001
@@ -117,30 +117,26 @@ int ble_l2cap_parse_hdr(struct os_mbuf *om, int off,
struct os_mbuf *ble_l2cap_prepend_hdr(struct os_mbuf *om, uint16_t cid,
uint16_t len);
-int ble_l2cap_sig_hdr_parse(void *payload, uint16_t len,
- struct ble_l2cap_sig_hdr *hdr);
-int ble_l2cap_sig_hdr_write(void *payload, uint16_t len,
- struct ble_l2cap_sig_hdr *hdr);
-int ble_l2cap_sig_reject_write(void *payload, uint16_t len,
- struct ble_l2cap_sig_hdr *hdr,
- struct ble_l2cap_sig_reject *cmd);
+int ble_l2cap_sig_init_cmd(uint8_t op, uint8_t id, uint8_t payload_len,
+ struct os_mbuf **out_om, void **out_payload_buf);
+void ble_l2cap_sig_hdr_parse(void *payload, uint16_t len,
+ struct ble_l2cap_sig_hdr *hdr);
+void ble_l2cap_sig_hdr_write(void *payload, uint16_t len,
+ struct ble_l2cap_sig_hdr *hdr);
int ble_l2cap_sig_reject_tx(uint16_t conn_handle, uint8_t id, uint16_t reason);
-int ble_l2cap_sig_update_req_parse(void *payload, int len,
- struct ble_l2cap_sig_update_req *req);
-int ble_l2cap_sig_update_req_write(void *payload, int len,
- struct ble_l2cap_sig_hdr *hdr,
- struct ble_l2cap_sig_update_req *req);
+void ble_l2cap_sig_update_req_parse(void *payload, int len,
+ struct ble_l2cap_sig_update_req *req);
+void ble_l2cap_sig_update_req_write(void *payload, int len,
+ struct ble_l2cap_sig_update_req *src);
int ble_l2cap_sig_update_req_tx(uint16_t conn_handle, uint8_t id,
struct ble_l2cap_sig_update_req *req);
-int ble_l2cap_sig_update_rsp_parse(void *payload, int len,
- struct ble_l2cap_sig_update_rsp *cmd);
-int ble_l2cap_sig_update_rsp_write(void *payload, int len,
- struct ble_l2cap_sig_hdr *hdr,
- struct ble_l2cap_sig_update_rsp *cmd);
+void ble_l2cap_sig_update_rsp_parse(void *payload, int len,
+ struct ble_l2cap_sig_update_rsp *cmd);
+void ble_l2cap_sig_update_rsp_write(void *payload, int len,
+ struct ble_l2cap_sig_update_rsp *src);
int ble_l2cap_sig_update_rsp_tx(uint16_t conn_handle, uint8_t id,
uint16_t result);
-
struct ble_l2cap_chan *ble_l2cap_chan_alloc(void);
void ble_l2cap_chan_free(struct ble_l2cap_chan *chan);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_l2cap_sig.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap_sig.c b/net/nimble/host/src/ble_l2cap_sig.c
index f0e3098..e4a20b5 100644
--- a/net/nimble/host/src/ble_l2cap_sig.c
+++ b/net/nimble/host/src/ble_l2cap_sig.c
@@ -19,7 +19,6 @@
#include <string.h>
#include <errno.h>
-#include <assert.h>
#include "console/console.h"
#include "nimble/ble.h"
#include "ble_hs_priv.h"
@@ -224,7 +223,7 @@ ble_l2cap_sig_proc_free(struct ble_fsm_proc *proc)
if (proc != NULL) {
rc = os_memblock_put(&ble_l2cap_sig_proc_pool, proc);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
}
@@ -383,7 +382,7 @@ ble_l2cap_sig_rx_noop(uint16_t conn_handle,
static void
ble_l2cap_sig_update_call_cb(struct ble_l2cap_sig_proc *proc, int status)
{
- assert(!ble_hs_conn_locked_by_cur_task());
+ BLE_HS_DBG_ASSERT(!ble_hs_conn_locked_by_cur_task());
if (status != 0) {
STATS_INC(ble_l2cap_stats, update_fail);
@@ -434,8 +433,7 @@ ble_l2cap_sig_update_req_rx(uint16_t conn_handle,
return BLE_HS_ENOTSUP;
}
- rc = ble_l2cap_sig_update_req_parse((*om)->om_data, (*om)->om_len, &req);
- assert(rc == 0);
+ ble_l2cap_sig_update_req_parse((*om)->om_data, (*om)->om_len, &req);
params.itvl_min = req.itvl_min;
params.itvl_max = req.itvl_max;
@@ -492,8 +490,7 @@ ble_l2cap_sig_update_rsp_rx(uint16_t conn_handle,
goto done;
}
- rc = ble_l2cap_sig_update_rsp_parse((*om)->om_data, (*om)->om_len, &rsp);
- assert(rc == 0);
+ ble_l2cap_sig_update_rsp_parse((*om)->om_data, (*om)->om_len, &rsp);
switch (rsp.result) {
case BLE_L2CAP_SIG_UPDATE_RSP_RESULT_ACCEPT:
@@ -607,8 +604,7 @@ ble_l2cap_sig_rx(uint16_t conn_handle, struct os_mbuf **om)
return rc;
}
- rc = ble_l2cap_sig_hdr_parse((*om)->om_data, (*om)->om_len, &hdr);
- assert(rc == 0);
+ ble_l2cap_sig_hdr_parse((*om)->om_data, (*om)->om_len, &hdr);
/* Strip L2CAP sig header from the front of the mbuf. */
os_mbuf_adj(*om, BLE_L2CAP_SIG_HDR_SZ);
@@ -723,7 +719,7 @@ ble_l2cap_sig_heartbeat(void *unused)
ticks = BLE_L2CAP_SIG_HEARTBEAT_PERIOD * OS_TICKS_PER_SEC / 1000;
rc = os_callout_reset(&ble_l2cap_sig_heartbeat_timer.cf_c, ticks);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_l2cap_sig_cmd.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap_sig_cmd.c b/net/nimble/host/src/ble_l2cap_sig_cmd.c
index 34fc5cd..f5f6fa1 100644
--- a/net/nimble/host/src/ble_l2cap_sig_cmd.c
+++ b/net/nimble/host/src/ble_l2cap_sig_cmd.c
@@ -17,67 +17,37 @@
* under the License.
*/
-#include <assert.h>
#include "ble_hs_priv.h"
int
-ble_l2cap_sig_hdr_parse(void *payload, uint16_t len,
- struct ble_l2cap_sig_hdr *hdr)
+ble_l2cap_sig_init_cmd(uint8_t op, uint8_t id, uint8_t payload_len,
+ struct os_mbuf **out_om, void **out_payload_buf)
{
- uint8_t *u8ptr;
-
- if (len < BLE_L2CAP_SIG_HDR_SZ) {
- return BLE_HS_EBADDATA;
- }
-
- u8ptr = payload;
- hdr->op = u8ptr[0];
- hdr->identifier = u8ptr[1];
- hdr->length = le16toh(u8ptr + 2);
-
- return 0;
-}
+ struct ble_l2cap_sig_hdr hdr;
+ struct os_mbuf *txom;
+ void *v;
-int
-ble_l2cap_sig_hdr_write(void *payload, uint16_t len,
- struct ble_l2cap_sig_hdr *hdr)
-{
- uint8_t *u8ptr;
+ *out_om = NULL;
+ *out_payload_buf = NULL;
- if (len < BLE_L2CAP_SIG_HDR_SZ) {
- return BLE_HS_EBADDATA;
+ txom = ble_hs_misc_pkthdr();
+ if (txom == NULL) {
+ return BLE_HS_ENOMEM;
}
- u8ptr = payload;
- u8ptr[0] = hdr->op;
- u8ptr[1] = hdr->identifier;
- htole16(u8ptr + 2, hdr->length);
-
- return 0;
-}
-
-int
-ble_l2cap_sig_reject_write(void *payload, uint16_t len,
- struct ble_l2cap_sig_hdr *hdr,
- struct ble_l2cap_sig_reject *cmd)
-{
- uint8_t *u8ptr;
- int rc;
-
- u8ptr = payload;
- rc = ble_l2cap_sig_hdr_write(u8ptr, len, hdr);
- if (rc != 0) {
- return rc;
+ v = os_mbuf_extend(txom, BLE_L2CAP_SIG_HDR_SZ + payload_len);
+ if (v == NULL) {
+ return BLE_HS_ENOMEM;
}
- u8ptr += BLE_L2CAP_SIG_HDR_SZ;
- len -= BLE_L2CAP_SIG_HDR_SZ;
+ hdr.op = op;
+ hdr.identifier = id;
+ hdr.length = TOFROMLE16(payload_len);
- if (len < BLE_L2CAP_SIG_REJECT_MIN_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ ble_l2cap_sig_hdr_write(v, BLE_L2CAP_SIG_HDR_SZ, &hdr);
- htole16(u8ptr, cmd->reason);
+ *out_om = txom;
+ *out_payload_buf = (uint8_t *)v + BLE_L2CAP_SIG_HDR_SZ;
return 0;
}
@@ -108,209 +78,165 @@ ble_l2cap_sig_tx(uint16_t conn_handle, struct os_mbuf *txom)
return rc;
}
+static void
+ble_l2cap_sig_hdr_swap(struct ble_l2cap_sig_hdr *dst,
+ struct ble_l2cap_sig_hdr *src)
+{
+ dst->op = src->op;
+ dst->identifier = src->identifier;
+ dst->length = TOFROMLE16(src->length);
+}
+
+void
+ble_l2cap_sig_hdr_parse(void *payload, uint16_t len,
+ struct ble_l2cap_sig_hdr *dst)
+{
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SIG_HDR_SZ);
+ ble_l2cap_sig_hdr_swap(dst, payload);
+}
+
+void
+ble_l2cap_sig_hdr_write(void *payload, uint16_t len,
+ struct ble_l2cap_sig_hdr *src)
+{
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SIG_HDR_SZ);
+ ble_l2cap_sig_hdr_swap(payload, src);
+}
+static void
+ble_l2cap_sig_reject_swap(struct ble_l2cap_sig_reject *dst,
+ struct ble_l2cap_sig_reject *src)
+{
+ dst->reason = TOFROMLE16(src->reason);
+}
+
+static void
+ble_l2cap_sig_reject_write(void *payload, uint16_t len,
+ struct ble_l2cap_sig_reject *src)
+{
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SIG_REJECT_MIN_SZ);
+ ble_l2cap_sig_reject_swap(payload, src);
+}
+
int
ble_l2cap_sig_reject_tx(uint16_t conn_handle, uint8_t id, uint16_t reason)
{
/* XXX: Add support for optional data field. */
struct ble_l2cap_sig_reject cmd;
- struct ble_l2cap_sig_hdr hdr;
struct os_mbuf *txom;
- void *v;
+ void *payload_buf;
int rc;
- txom = ble_hs_misc_pkthdr();
- if (txom == NULL) {
- return BLE_HS_ENOMEM;
- }
-
- v = os_mbuf_extend(txom,
- BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_REJECT_MIN_SZ);
- if (v == NULL) {
- return BLE_HS_ENOMEM;
- }
+ rc = ble_l2cap_sig_init_cmd(BLE_L2CAP_SIG_OP_REJECT, id,
+ BLE_L2CAP_SIG_REJECT_MIN_SZ, &txom,
+ &payload_buf);
- hdr.op = BLE_L2CAP_SIG_OP_REJECT;
- hdr.identifier = id;
- hdr.length = BLE_L2CAP_SIG_REJECT_MIN_SZ;
cmd.reason = reason;
-
- rc = ble_l2cap_sig_reject_write(
- v, BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_REJECT_MIN_SZ, &hdr, &cmd);
- if (rc != 0) {
- return rc;
- }
+ ble_l2cap_sig_reject_write(payload_buf, BLE_L2CAP_SIG_REJECT_MIN_SZ, &cmd);
STATS_INC(ble_l2cap_stats, sig_rx);
rc = ble_l2cap_sig_tx(conn_handle, txom);
return rc;
}
-int
-ble_l2cap_sig_update_req_parse(void *payload, int len,
- struct ble_l2cap_sig_update_req *req)
+static void
+ble_l2cap_sig_update_req_swap(struct ble_l2cap_sig_update_req *dst,
+ struct ble_l2cap_sig_update_req *src)
{
- uint8_t *u8ptr;
-
- if (len < BLE_L2CAP_SIG_UPDATE_REQ_SZ) {
- return BLE_HS_EBADDATA;
- }
-
- u8ptr = payload;
-
- req->itvl_min = le16toh(u8ptr + 0);
- req->itvl_max = le16toh(u8ptr + 2);
- req->slave_latency = le16toh(u8ptr + 4);
- req->timeout_multiplier = le16toh(u8ptr + 6);
-
- return 0;
+ dst->itvl_min = TOFROMLE16(src->itvl_min);
+ dst->itvl_max = TOFROMLE16(src->itvl_max);
+ dst->slave_latency = TOFROMLE16(src->slave_latency);
+ dst->timeout_multiplier = TOFROMLE16(src->timeout_multiplier);
}
-int
-ble_l2cap_sig_update_req_write(void *payload, int len,
- struct ble_l2cap_sig_hdr *hdr,
- struct ble_l2cap_sig_update_req *req)
+void
+ble_l2cap_sig_update_req_parse(void *payload, int len,
+ struct ble_l2cap_sig_update_req *dst)
{
- uint8_t *u8ptr;
- int rc;
-
- u8ptr = payload;
- rc = ble_l2cap_sig_hdr_write(u8ptr, len, hdr);
- if (rc != 0) {
- return rc;
- }
-
- u8ptr += BLE_L2CAP_SIG_HDR_SZ;
- len -= BLE_L2CAP_SIG_HDR_SZ;
-
- if (len < BLE_L2CAP_SIG_UPDATE_REQ_SZ) {
- return BLE_HS_EINVAL;
- }
-
- htole16(u8ptr + 0, req->itvl_min);
- htole16(u8ptr + 2, req->itvl_max);
- htole16(u8ptr + 4, req->slave_latency);
- htole16(u8ptr + 6, req->timeout_multiplier);
-
- return 0;
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SIG_UPDATE_REQ_SZ);
+ ble_l2cap_sig_update_req_swap(dst, payload);
}
-int
-ble_l2cap_sig_update_rsp_parse(void *payload, int len,
- struct ble_l2cap_sig_update_rsp *cmd)
+void
+ble_l2cap_sig_update_req_write(void *payload, int len,
+ struct ble_l2cap_sig_update_req *src)
{
- uint8_t *u8ptr;
-
- u8ptr = payload;
-
- if (len < BLE_L2CAP_SIG_UPDATE_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
- }
-
- cmd->result = le16toh(u8ptr);
-
- return 0;
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SIG_UPDATE_REQ_SZ);
+ ble_l2cap_sig_update_req_swap(payload, src);
}
int
-ble_l2cap_sig_update_rsp_write(void *payload, int len,
- struct ble_l2cap_sig_hdr *hdr,
- struct ble_l2cap_sig_update_rsp *cmd)
+ble_l2cap_sig_update_req_tx(uint16_t conn_handle, uint8_t id,
+ struct ble_l2cap_sig_update_req *req)
{
- uint8_t *u8ptr;
+ struct os_mbuf *txom;
+ void *payload_buf;
int rc;
- u8ptr = payload;
- rc = ble_l2cap_sig_hdr_write(u8ptr, len, hdr);
+ rc = ble_l2cap_sig_init_cmd(BLE_L2CAP_SIG_OP_UPDATE_REQ, id,
+ BLE_L2CAP_SIG_UPDATE_REQ_SZ, &txom,
+ &payload_buf);
if (rc != 0) {
return rc;
}
- u8ptr += BLE_L2CAP_SIG_HDR_SZ;
- len -= BLE_L2CAP_SIG_HDR_SZ;
+ ble_l2cap_sig_update_req_write(payload_buf, BLE_L2CAP_SIG_UPDATE_REQ_SZ,
+ req);
- if (len < BLE_L2CAP_SIG_UPDATE_RSP_SZ) {
- return BLE_HS_EMSGSIZE;
+ rc = ble_l2cap_sig_tx(conn_handle, txom);
+ if (rc != 0) {
+ return rc;
}
- htole16(u8ptr, cmd->result);
-
return 0;
}
-int
-ble_l2cap_sig_update_req_tx(uint16_t conn_handle, uint8_t id,
- struct ble_l2cap_sig_update_req *req)
+static void
+ble_l2cap_sig_update_rsp_swap(struct ble_l2cap_sig_update_rsp *dst,
+ struct ble_l2cap_sig_update_rsp *src)
{
- struct ble_l2cap_sig_hdr hdr;
- struct os_mbuf *txom;
- void *v;
- int rc;
-
- txom = ble_hs_misc_pkthdr();
- if (txom == NULL) {
- rc = BLE_HS_ENOMEM;
- goto done;
- }
-
- v = os_mbuf_extend(txom,
- BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_REQ_SZ);
- if (v == NULL) {
- rc = BLE_HS_ENOMEM;
- goto done;
- }
-
- hdr.op = BLE_L2CAP_SIG_OP_UPDATE_REQ;
- hdr.identifier = id;
- hdr.length = BLE_L2CAP_SIG_UPDATE_REQ_SZ;
-
- rc = ble_l2cap_sig_update_req_write(
- v, BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_REQ_SZ, &hdr, req);
- assert(rc == 0);
+ dst->result = TOFROMLE16(src->result);
+}
- rc = ble_l2cap_sig_tx(conn_handle, txom);
- txom = NULL;
+void
+ble_l2cap_sig_update_rsp_parse(void *payload, int len,
+ struct ble_l2cap_sig_update_rsp *dst)
+{
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SIG_UPDATE_RSP_SZ);
+ ble_l2cap_sig_update_rsp_swap(dst, payload);
+}
-done:
- os_mbuf_free_chain(txom);
- return rc;
+void
+ble_l2cap_sig_update_rsp_write(void *payload, int len,
+ struct ble_l2cap_sig_update_rsp *src)
+{
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SIG_UPDATE_RSP_SZ);
+ ble_l2cap_sig_update_rsp_swap(payload, src);
}
int
ble_l2cap_sig_update_rsp_tx(uint16_t conn_handle, uint8_t id, uint16_t result)
{
struct ble_l2cap_sig_update_rsp rsp;
- struct ble_l2cap_sig_hdr hdr;
struct os_mbuf *txom;
- void *v;
+ void *payload_buf;
int rc;
- txom = ble_hs_misc_pkthdr();
- if (txom == NULL) {
- rc = BLE_HS_ENOMEM;
- goto err;
- }
-
- v = os_mbuf_extend(txom,
- BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_RSP_SZ);
- if (v == NULL) {
- rc = BLE_HS_ENOMEM;
- goto err;
+ rc = ble_l2cap_sig_init_cmd(BLE_L2CAP_SIG_OP_UPDATE_RSP, id,
+ BLE_L2CAP_SIG_UPDATE_RSP_SZ, &txom,
+ &payload_buf);
+ if (rc != 0) {
+ return rc;
}
- hdr.op = BLE_L2CAP_SIG_OP_UPDATE_RSP;
- hdr.identifier = id;
- hdr.length = BLE_L2CAP_SIG_UPDATE_RSP_SZ;
rsp.result = result;
-
- rc = ble_l2cap_sig_update_rsp_write(
- v, BLE_L2CAP_SIG_HDR_SZ + BLE_L2CAP_SIG_UPDATE_RSP_SZ, &hdr, &rsp);
- assert(rc == 0);
+ ble_l2cap_sig_update_rsp_write(payload_buf, BLE_L2CAP_SIG_UPDATE_RSP_SZ,
+ &rsp);
rc = ble_l2cap_sig_tx(conn_handle, txom);
- return rc;
+ if (rc != 0) {
+ return rc;
+ }
-err:
- os_mbuf_free_chain(txom);
- return rc;
+ return 0;
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_l2cap_sm.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap_sm.c b/net/nimble/host/src/ble_l2cap_sm.c
index 8c2cf6e..3c8b0f6 100644
--- a/net/nimble/host/src/ble_l2cap_sm.c
+++ b/net/nimble/host/src/ble_l2cap_sm.c
@@ -19,7 +19,6 @@
#include <string.h>
#include <errno.h>
-#include <assert.h>
#include "console/console.h"
#include "nimble/ble.h"
#include "nimble/nimble_opt.h"
@@ -216,7 +215,7 @@ ble_l2cap_sm_gen_pair_rand(uint8_t *pair_rand)
#endif
/* XXX: Generate random value rather than zeros. */
- memset(pair_rand, 0, sizeof ble_l2cap_sm_dbg_next_pair_rand);
+ memset(pair_rand, 0, 16);
}
static uint16_t
@@ -253,9 +252,9 @@ ble_l2cap_sm_proc_kick(struct ble_fsm_proc *proc)
ble_l2cap_sm_kick_fn *kick_cb;
int rc;
- assert(proc->op < BLE_L2CAP_SM_PROC_OP_CNT);
+ BLE_HS_DBG_ASSERT(proc->op < BLE_L2CAP_SM_PROC_OP_CNT);
kick_cb = ble_l2cap_sm_kick[proc->op];
- assert(kick_cb != NULL);
+ BLE_HS_DBG_ASSERT(kick_cb != NULL);
rc = kick_cb((struct ble_l2cap_sm_proc *)proc);
return rc;
@@ -306,7 +305,7 @@ ble_l2cap_sm_proc_free(struct ble_fsm_proc *proc)
if (proc != NULL) {
rc = os_memblock_put(&ble_l2cap_sm_proc_pool, proc);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
}
@@ -540,7 +539,6 @@ ble_l2cap_sm_confirm_prepare_args(struct ble_l2cap_sm_proc *proc,
uint8_t *ia, uint8_t *ra)
{
struct ble_hs_conn *conn;
- int rc;
ble_hs_conn_lock();
conn = ble_hs_conn_find(proc->fsm_proc.conn_handle);
@@ -567,15 +565,13 @@ ble_l2cap_sm_confirm_prepare_args(struct ble_l2cap_sm_proc *proc,
memcpy(k, proc->phase_1_2.tk, sizeof proc->phase_1_2.tk);
- rc = ble_l2cap_sm_pair_cmd_write(
+ ble_l2cap_sm_pair_cmd_write(
preq, BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CMD_SZ, 1,
&proc->phase_1_2.pair_req);
- assert(rc == 0);
- rc = ble_l2cap_sm_pair_cmd_write(
+ ble_l2cap_sm_pair_cmd_write(
pres, BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CMD_SZ, 0,
&proc->phase_1_2.pair_rsp);
- assert(rc == 0);
return 0;
}
@@ -754,7 +750,7 @@ ble_l2cap_sm_lt_key_req_reply_tx(void *arg)
proc = arg;
- assert(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_LTK_TXED);
+ BLE_HS_DBG_ASSERT(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_LTK_TXED);
cmd.conn_handle = proc->fsm_proc.conn_handle;
memcpy(cmd.long_term_key, proc->hci.key, 16);
@@ -812,7 +808,7 @@ ble_l2cap_sm_start_encrypt_tx(void *arg)
proc = arg;
- assert(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_START_ENCRYPT_TXED);
+ BLE_HS_DBG_ASSERT(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_START_ENCRYPT_TXED);
cmd.connection_handle = proc->fsm_proc.conn_handle;
cmd.encrypted_diversifier = ble_l2cap_sm_gen_ediv();
@@ -858,8 +854,7 @@ ble_l2cap_sm_rx_pair_req(uint16_t conn_handle, uint8_t op, struct os_mbuf **om)
return rc;
}
- rc = ble_l2cap_sm_pair_cmd_parse((*om)->om_data, (*om)->om_len, &req);
- assert(rc == 0);
+ ble_l2cap_sm_pair_cmd_parse((*om)->om_data, (*om)->om_len, &req);
BLE_HS_LOG(DEBUG, "rxed sm pair req; io_cap=0x%02x oob_data_flag=%d "
"authreq=0x%02x max_enc_key_size=%d "
@@ -906,8 +901,7 @@ ble_l2cap_sm_rx_pair_rsp(uint16_t conn_handle, uint8_t op, struct os_mbuf **om)
return rc;
}
- rc = ble_l2cap_sm_pair_cmd_parse((*om)->om_data, (*om)->om_len, &rsp);
- assert(rc == 0);
+ ble_l2cap_sm_pair_cmd_parse((*om)->om_data, (*om)->om_len, &rsp);
BLE_HS_LOG(DEBUG, "rxed sm pair rsp; io_cap=0x%02x oob_data_flag=%d "
"authreq=0x%02x max_enc_key_size=%d "
@@ -945,8 +939,7 @@ ble_l2cap_sm_rx_pair_confirm(uint16_t conn_handle, uint8_t op,
return rc;
}
- rc = ble_l2cap_sm_pair_confirm_parse((*om)->om_data, (*om)->om_len, &cmd);
- assert(rc == 0);
+ ble_l2cap_sm_pair_confirm_parse((*om)->om_data, (*om)->om_len, &cmd);
BLE_HS_LOG(DEBUG, "rxed sm confirm cmd\n");
@@ -980,8 +973,7 @@ ble_l2cap_sm_rx_pair_random(uint16_t conn_handle, uint8_t op,
return rc;
}
- rc = ble_l2cap_sm_pair_random_parse((*om)->om_data, (*om)->om_len, &cmd);
- assert(rc == 0);
+ ble_l2cap_sm_pair_random_parse((*om)->om_data, (*om)->om_len, &cmd);
BLE_HS_LOG(DEBUG, "rxed sm random cmd\n");
@@ -1015,8 +1007,7 @@ ble_l2cap_sm_rx_pair_fail(uint16_t conn_handle, uint8_t op,
return rc;
}
- rc = ble_l2cap_sm_pair_fail_parse((*om)->om_data, (*om)->om_len, &cmd);
- assert(rc == 0);
+ ble_l2cap_sm_pair_fail_parse((*om)->om_data, (*om)->om_len, &cmd);
BLE_HS_LOG(DEBUG, "rxed sm fail cmd; reason=%d\n", cmd.reason);
@@ -1069,7 +1060,7 @@ ble_l2cap_sm_rx_lt_key_req_reply_ack(struct ble_hci_ack *ack, void *arg)
proc = arg;
- assert(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_LTK_TXED);
+ BLE_HS_DBG_ASSERT(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_LTK_TXED);
/* Extract the procedure from the state machine while we mess with it. */
ble_fsm_lock(&ble_l2cap_sm_fsm);
@@ -1114,7 +1105,7 @@ ble_l2cap_sm_rx_start_encrypt_ack(struct ble_hci_ack *ack, void *arg)
proc = arg;
- assert(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_START_ENCRYPT_TXED);
+ BLE_HS_DBG_ASSERT(proc->fsm_proc.op == BLE_L2CAP_SM_PROC_OP_START_ENCRYPT_TXED);
/* Extract the procedure from the state machine while we mess with it. */
ble_fsm_lock(&ble_l2cap_sm_fsm);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_l2cap_sm.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap_sm.h b/net/nimble/host/src/ble_l2cap_sm.h
index e7b0d0b..b1328aa 100644
--- a/net/nimble/host/src/ble_l2cap_sm.h
+++ b/net/nimble/host/src/ble_l2cap_sm.h
@@ -94,28 +94,28 @@ int ble_l2cap_sm_locked_by_cur_task(void);
struct ble_l2cap_chan *ble_l2cap_sm_create_chan(void);
-int ble_l2cap_sm_pair_cmd_parse(void *payload, int len,
- struct ble_l2cap_sm_pair_cmd *cmd);
-int ble_l2cap_sm_pair_cmd_write(void *payload, int len, int is_req,
- struct ble_l2cap_sm_pair_cmd *cmd);
+void ble_l2cap_sm_pair_cmd_parse(void *payload, int len,
+ struct ble_l2cap_sm_pair_cmd *cmd);
+void ble_l2cap_sm_pair_cmd_write(void *payload, int len, int is_req,
+ struct ble_l2cap_sm_pair_cmd *cmd);
int ble_l2cap_sm_pair_cmd_tx(uint16_t conn_handle, int is_req,
struct ble_l2cap_sm_pair_cmd *cmd);
-int ble_l2cap_sm_pair_confirm_parse(void *payload, int len,
- struct ble_l2cap_sm_pair_confirm *cmd);
-int ble_l2cap_sm_pair_confirm_write(void *payload, int len,
- struct ble_l2cap_sm_pair_confirm *cmd);
+void ble_l2cap_sm_pair_confirm_parse(void *payload, int len,
+ struct ble_l2cap_sm_pair_confirm *cmd);
+void ble_l2cap_sm_pair_confirm_write(void *payload, int len,
+ struct ble_l2cap_sm_pair_confirm *cmd);
int ble_l2cap_sm_pair_confirm_tx(uint16_t conn_handle,
struct ble_l2cap_sm_pair_confirm *cmd);
-int ble_l2cap_sm_pair_random_parse(void *payload, int len,
- struct ble_l2cap_sm_pair_random *cmd);
-int ble_l2cap_sm_pair_random_write(void *payload, int len,
- struct ble_l2cap_sm_pair_random *cmd);
+void ble_l2cap_sm_pair_random_parse(void *payload, int len,
+ struct ble_l2cap_sm_pair_random *cmd);
+void ble_l2cap_sm_pair_random_write(void *payload, int len,
+ struct ble_l2cap_sm_pair_random *cmd);
int ble_l2cap_sm_pair_random_tx(uint16_t conn_handle,
struct ble_l2cap_sm_pair_random *cmd);
-int ble_l2cap_sm_pair_fail_parse(void *payload, int len,
- struct ble_l2cap_sm_pair_fail *cmd);
-int ble_l2cap_sm_pair_fail_write(void *payload, int len,
- struct ble_l2cap_sm_pair_fail *cmd);
+void ble_l2cap_sm_pair_fail_parse(void *payload, int len,
+ struct ble_l2cap_sm_pair_fail *cmd);
+void ble_l2cap_sm_pair_fail_write(void *payload, int len,
+ struct ble_l2cap_sm_pair_fail *cmd);
int ble_l2cap_sm_pair_fail_tx(uint16_t conn_handle,
struct ble_l2cap_sm_pair_fail *cmd);
@@ -144,17 +144,9 @@ int ble_l2cap_sm_init(void);
#define ble_l2cap_sm_create_chan() NULL
-#define ble_l2cap_sm_pair_cmd_parse(payload, len, cmd) BLE_HS_ENOTSUP
-#define ble_l2cap_sm_pair_cmd_write(payload, len, is_req, cmd) BLE_HS_ENOTSUP
#define ble_l2cap_sm_pair_cmd_tx(conn_handle, is_req, cmd) BLE_HS_ENOTSUP
-#define ble_l2cap_sm_pair_confirm_parse(payload, len, cmd) BLE_HS_ENOTSUP
-#define ble_l2cap_sm_pair_confirm_write(payload, len, cmd) BLE_HS_ENOTSUP
#define ble_l2cap_sm_pair_confirm_tx(conn_handle, cmd) BLE_HS_ENOTSUP
-#define ble_l2cap_sm_pair_random_parse(payload, len, cmd) BLE_HS_ENOTSUP
-#define ble_l2cap_sm_pair_random_write(payload, len, cmd) BLE_HS_ENOTSUP
#define ble_l2cap_sm_pair_random_tx(conn_handle, cmd) BLE_HS_ENOTSUP
-#define ble_l2cap_sm_pair_fail_parse(payload, len, cmd) BLE_HS_ENOTSUP
-#define ble_l2cap_sm_pair_fail_write(payload, len, cmd) BLE_HS_ENOTSUP
#define ble_l2cap_sm_pair_fail_tx(conn_handle, cmd) BLE_HS_ENOTSUP
#define ble_l2cap_sm_alg_s1(k, r1, r2, out) BLE_HS_ENOTSUP
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_l2cap_sm_cmd.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_l2cap_sm_cmd.c b/net/nimble/host/src/ble_l2cap_sm_cmd.c
index 71b6fd6..a83ce72 100644
--- a/net/nimble/host/src/ble_l2cap_sm_cmd.c
+++ b/net/nimble/host/src/ble_l2cap_sm_cmd.c
@@ -19,7 +19,6 @@
#include <string.h>
#include <errno.h>
-#include <assert.h>
#include "console/console.h"
#include "nimble/ble.h"
#include "nimble/nimble_opt.h"
@@ -75,40 +74,32 @@ err:
return rc;
}
-int
+void
ble_l2cap_sm_pair_cmd_parse(void *payload, int len,
struct ble_l2cap_sm_pair_cmd *cmd)
{
uint8_t *u8ptr;
- if (len < BLE_L2CAP_SM_PAIR_CMD_SZ) {
- return BLE_HS_EBADDATA;
- }
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SM_PAIR_CMD_SZ);
u8ptr = payload;
-
cmd->io_cap = u8ptr[0];
cmd->oob_data_flag = u8ptr[1];
cmd->authreq = u8ptr[2];
cmd->max_enc_key_size = u8ptr[3];
cmd->init_key_dist = u8ptr[4];
cmd->resp_key_dist = u8ptr[5];
-
- return 0;
}
-int
+void
ble_l2cap_sm_pair_cmd_write(void *payload, int len, int is_req,
struct ble_l2cap_sm_pair_cmd *cmd)
{
uint8_t *u8ptr;
- if (len < BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CMD_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CMD_SZ);
u8ptr = payload;
-
u8ptr[0] = is_req ? BLE_L2CAP_SM_OP_PAIR_REQ : BLE_L2CAP_SM_OP_PAIR_RSP;
u8ptr[1] = cmd->io_cap;
u8ptr[2] = cmd->oob_data_flag;
@@ -116,8 +107,6 @@ ble_l2cap_sm_pair_cmd_write(void *payload, int len, int is_req,
u8ptr[4] = cmd->max_enc_key_size;
u8ptr[5] = cmd->init_key_dist;
u8ptr[6] = cmd->resp_key_dist;
-
- return 0;
}
int
@@ -133,8 +122,7 @@ ble_l2cap_sm_pair_cmd_tx(uint16_t conn_handle, int is_req,
goto done;
}
- rc = ble_l2cap_sm_pair_cmd_write(txom->om_data, txom->om_len, is_req, cmd);
- assert(rc == 0);
+ ble_l2cap_sm_pair_cmd_write(txom->om_data, txom->om_len, is_req, cmd);
rc = ble_l2cap_sm_tx(conn_handle, txom);
txom = NULL;
@@ -144,35 +132,27 @@ done:
return rc;
}
-int
+void
ble_l2cap_sm_pair_confirm_parse(void *payload, int len,
struct ble_l2cap_sm_pair_confirm *cmd)
{
- if (len < BLE_L2CAP_SM_PAIR_CONFIRM_SZ) {
- return BLE_HS_EBADDATA;
- }
-
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SM_PAIR_CONFIRM_SZ);
memcpy(cmd->value, payload, sizeof cmd->value);
-
- return 0;
}
-int
+void
ble_l2cap_sm_pair_confirm_write(void *payload, int len,
struct ble_l2cap_sm_pair_confirm *cmd)
{
uint8_t *u8ptr;
- if (len < BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CONFIRM_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ BLE_HS_DBG_ASSERT(len >=
+ BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_CONFIRM_SZ);
u8ptr = payload;
u8ptr[0] = BLE_L2CAP_SM_OP_PAIR_CONFIRM;
memcpy(u8ptr + BLE_L2CAP_SM_HDR_SZ, cmd->value, sizeof cmd->value);
-
- return 0;
}
int
@@ -188,8 +168,7 @@ ble_l2cap_sm_pair_confirm_tx(uint16_t conn_handle,
goto done;
}
- rc = ble_l2cap_sm_pair_confirm_write(txom->om_data, txom->om_len, cmd);
- assert(rc == 0);
+ ble_l2cap_sm_pair_confirm_write(txom->om_data, txom->om_len, cmd);
rc = ble_l2cap_sm_tx(conn_handle, txom);
txom = NULL;
@@ -199,35 +178,27 @@ done:
return rc;
}
-int
+void
ble_l2cap_sm_pair_random_parse(void *payload, int len,
struct ble_l2cap_sm_pair_random *cmd)
{
- if (len < BLE_L2CAP_SM_PAIR_RANDOM_SZ) {
- return BLE_HS_EBADDATA;
- }
-
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SM_PAIR_RANDOM_SZ);
memcpy(cmd->value, payload, sizeof cmd->value);
-
- return 0;
}
-int
+void
ble_l2cap_sm_pair_random_write(void *payload, int len,
struct ble_l2cap_sm_pair_random *cmd)
{
uint8_t *u8ptr;
- if (len < BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_RANDOM_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ BLE_HS_DBG_ASSERT(len >=
+ BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_RANDOM_SZ);
u8ptr = payload;
u8ptr[0] = BLE_L2CAP_SM_OP_PAIR_RANDOM;
memcpy(u8ptr + BLE_L2CAP_SM_HDR_SZ, cmd->value, sizeof cmd->value);
-
- return 0;
}
int
@@ -243,8 +214,7 @@ ble_l2cap_sm_pair_random_tx(uint16_t conn_handle,
goto done;
}
- rc = ble_l2cap_sm_pair_random_write(txom->om_data, txom->om_len, cmd);
- assert(rc == 0);
+ ble_l2cap_sm_pair_random_write(txom->om_data, txom->om_len, cmd);
rc = ble_l2cap_sm_tx(conn_handle, txom);
txom = NULL;
@@ -254,39 +224,30 @@ done:
return rc;
}
-int
+void
ble_l2cap_sm_pair_fail_parse(void *payload, int len,
struct ble_l2cap_sm_pair_fail *cmd)
{
uint8_t *u8ptr;
- if (len < BLE_L2CAP_SM_PAIR_FAIL_SZ) {
- return BLE_HS_EBADDATA;
- }
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SM_PAIR_FAIL_SZ);
u8ptr = payload;
-
cmd->reason = u8ptr[0];
-
- return 0;
}
-int
+void
ble_l2cap_sm_pair_fail_write(void *payload, int len,
struct ble_l2cap_sm_pair_fail *cmd)
{
uint8_t *u8ptr;
- if (len < BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_FAIL_SZ) {
- return BLE_HS_EMSGSIZE;
- }
+ BLE_HS_DBG_ASSERT(len >= BLE_L2CAP_SM_HDR_SZ + BLE_L2CAP_SM_PAIR_FAIL_SZ);
u8ptr = payload;
u8ptr[0] = BLE_L2CAP_SM_OP_PAIR_FAIL;
u8ptr[1] = cmd->reason;
-
- return 0;
}
int
@@ -302,8 +263,7 @@ ble_l2cap_sm_pair_fail_tx(uint16_t conn_handle,
goto done;
}
- rc = ble_l2cap_sm_pair_fail_write(txom->om_data, txom->om_len, cmd);
- assert(rc == 0);
+ ble_l2cap_sm_pair_fail_write(txom->om_data, txom->om_len, cmd);
rc = ble_l2cap_sm_tx(conn_handle, txom);
txom = NULL;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/ble_uuid.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/ble_uuid.c b/net/nimble/host/src/ble_uuid.c
index ead34da..ec01528 100644
--- a/net/nimble/host/src/ble_uuid.c
+++ b/net/nimble/host/src/ble_uuid.c
@@ -17,7 +17,6 @@
* under the License.
*/
-#include <assert.h>
#include <inttypes.h>
#include <string.h>
#include <errno.h>
@@ -122,7 +121,7 @@ ble_uuid_extract(struct os_mbuf *om, int off, void *uuid128)
switch (remlen) {
case 2:
rc = os_mbuf_copydata(om, off, 2, &uuid16);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
uuid16 = le16toh(&uuid16);
rc = ble_uuid_16_to_128(uuid16, uuid128);
@@ -133,7 +132,7 @@ ble_uuid_extract(struct os_mbuf *om, int off, void *uuid128)
case 16:
rc = os_mbuf_copydata(om, off, 16, uuid128);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
return 0;
default:
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/host_dbg.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/host_dbg.c b/net/nimble/host/src/host_dbg.c
index 8bec9ad..a6794fb 100644
--- a/net/nimble/host/src/host_dbg.c
+++ b/net/nimble/host/src/host_dbg.c
@@ -355,6 +355,10 @@ host_hci_dbg_cmd_status_disp(uint8_t *evdata, uint8_t len)
void
host_hci_dbg_event_disp(uint8_t *evbuf)
{
+#if LOG_LEVEL > LOG_LEVEL_DEBUG
+ return;
+#endif
+
uint8_t *evdata;
uint8_t evcode;
uint8_t len;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/host_hci.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/host_hci.c b/net/nimble/host/src/host_hci.c
index 47ef3ea..a329684 100644
--- a/net/nimble/host/src/host_hci.c
+++ b/net/nimble/host/src/host_hci.c
@@ -17,7 +17,6 @@
* under the License.
*/
#include <stdint.h>
-#include <assert.h>
#include <string.h>
#include <errno.h>
#include <stdio.h>
@@ -141,7 +140,7 @@ host_hci_timer_set(void)
rc = os_callout_reset(&host_hci_timer.cf_c,
HOST_HCI_TIMEOUT * OS_TICKS_PER_SEC / 1000);
- assert(rc == 0);
+ BLE_HS_DBG_ASSERT_EVAL(rc == 0);
}
static void
@@ -155,7 +154,7 @@ host_hci_timer_exp(void *arg)
{
struct ble_hci_ack ack;
- assert(host_hci_outstanding_opcode != 0);
+ BLE_HS_DBG_ASSERT(host_hci_outstanding_opcode != 0);
ack.bha_opcode = host_hci_outstanding_opcode;
ack.bha_status = BLE_HS_ETIMEOUT;
@@ -629,11 +628,11 @@ host_hci_os_event_proc(struct os_event *ev)
/* Free the command buffer */
err = os_memblock_put(&g_hci_cmd_pool, ev->ev_arg);
- assert(err == OS_OK);
+ BLE_HS_DBG_ASSERT_EVAL(err == OS_OK);
/* Free the event */
err = os_memblock_put(&g_hci_os_event_pool, ev);
- assert(err == OS_OK);
+ BLE_HS_DBG_ASSERT_EVAL(err == OS_OK);
return rc;
}
@@ -645,13 +644,13 @@ ble_hci_transport_ctlr_event_send(uint8_t *hci_ev)
os_error_t err;
struct os_event *ev;
- assert(hci_ev != NULL);
+ BLE_HS_DBG_ASSERT(hci_ev != NULL);
/* Get an event structure off the queue */
ev = (struct os_event *)os_memblock_get(&g_hci_os_event_pool);
if (!ev) {
err = os_memblock_put(&g_hci_cmd_pool, hci_ev);
- assert(err == OS_OK);
+ BLE_HS_DBG_ASSERT_EVAL(err == OS_OK);
return -1;
}
@@ -735,8 +734,8 @@ host_hci_data_rx(struct os_mbuf *om)
os_mbuf_free_chain(om);
if (rc == 0) {
- assert(rx_cb != NULL);
- assert(rx_buf != NULL);
+ BLE_HS_DBG_ASSERT(rx_cb != NULL);
+ BLE_HS_DBG_ASSERT(rx_buf != NULL);
rc = rx_cb(handle, &rx_buf);
os_mbuf_free_chain(rx_buf);
} else if (rc == BLE_HS_EAGAIN) {
@@ -750,9 +749,9 @@ host_hci_data_rx(struct os_mbuf *om)
uint16_t
host_hci_handle_pb_bc_join(uint16_t handle, uint8_t pb, uint8_t bc)
{
- assert(handle <= 0x0fff);
- assert(pb <= 0x03);
- assert(bc <= 0x03);
+ BLE_HS_DBG_ASSERT(handle <= 0x0fff);
+ BLE_HS_DBG_ASSERT(pb <= 0x03);
+ BLE_HS_DBG_ASSERT(bc <= 0x03);
return (handle << 0) |
(pb << 12) |
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/host_hci_cmd.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/host_hci_cmd.c b/net/nimble/host/src/host_hci_cmd.c
index 52c26b5..a4a4b81 100644
--- a/net/nimble/host/src/host_hci_cmd.c
+++ b/net/nimble/host/src/host_hci_cmd.c
@@ -51,7 +51,7 @@ host_hci_cmd_send(uint8_t ogf, uint8_t ocf, uint8_t len, void *cmddata)
uint16_t opcode;
/* Don't allow multiple commands "in flight." */
- assert(host_hci_outstanding_opcode == 0);
+ BLE_HS_DBG_ASSERT(host_hci_outstanding_opcode == 0);
rc = -1;
cmd = os_memblock_get(&g_hci_cmd_pool);
@@ -120,7 +120,7 @@ host_hci_cmd_le_set_adv_params(struct hci_adv_params *adv)
uint16_t itvl;
uint8_t cmd[BLE_HCI_SET_ADV_PARAM_LEN];
- assert(adv != NULL);
+ BLE_HS_DBG_ASSERT(adv != NULL);
/* Make sure parameters are valid */
rc = -1;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/2fef21d6/net/nimble/host/src/test/ble_att_clt_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_att_clt_test.c b/net/nimble/host/src/test/ble_att_clt_test.c
index 3d393dc..54ddb27 100644
--- a/net/nimble/host/src/test/ble_att_clt_test.c
+++ b/net/nimble/host/src/test/ble_att_clt_test.c
@@ -42,7 +42,6 @@ ble_att_clt_test_misc_verify_tx_write(uint16_t handle_id, void *value,
{
struct ble_att_write_req req;
struct os_mbuf *om;
- int rc;
TEST_ASSERT_FATAL(ble_hs_test_util_prev_tx != NULL);
@@ -51,11 +50,10 @@ ble_att_clt_test_misc_verify_tx_write(uint16_t handle_id, void *value,
TEST_ASSERT_FATAL(om != NULL);
if (is_req) {
- rc = ble_att_write_req_parse(om->om_data, om->om_len, &req);
+ ble_att_write_req_parse(om->om_data, om->om_len, &req);
} else {
- rc = ble_att_write_cmd_parse(om->om_data, om->om_len, &req);
+ ble_att_write_cmd_parse(om->om_data, om->om_len, &req);
}
- TEST_ASSERT_FATAL(rc == 0);
TEST_ASSERT(req.bawq_handle == handle_id);
TEST_ASSERT(om->om_len == BLE_ATT_WRITE_REQ_BASE_SZ + value_len);
@@ -128,8 +126,7 @@ TEST_CASE(ble_att_clt_test_rx_find_info)
/* Receive response with attribute mapping. */
off = 0;
rsp.bafp_format = BLE_ATT_FIND_INFO_RSP_FORMAT_128BIT;
- rc = ble_att_find_info_rsp_write(buf + off, sizeof buf - off, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_rsp_write(buf + off, sizeof buf - off, &rsp);
off += BLE_ATT_FIND_INFO_RSP_BASE_SZ;
htole16(buf + off, 1);
@@ -144,8 +141,7 @@ TEST_CASE(ble_att_clt_test_rx_find_info)
/* Receive response with attribute mapping. */
off = 0;
rsp.bafp_format = BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT;
- rc = ble_att_find_info_rsp_write(buf + off, sizeof buf - off, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_rsp_write(buf + off, sizeof buf - off, &rsp);
off += BLE_ATT_FIND_INFO_RSP_BASE_SZ;
htole16(buf + off, 2);
@@ -160,8 +156,7 @@ TEST_CASE(ble_att_clt_test_rx_find_info)
/* Receive response with attribute mappings. */
off = 0;
rsp.bafp_format = BLE_ATT_FIND_INFO_RSP_FORMAT_16BIT;
- rc = ble_att_find_info_rsp_write(buf + off, sizeof buf - off, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_find_info_rsp_write(buf + off, sizeof buf - off, &rsp);
off += BLE_ATT_FIND_INFO_RSP_BASE_SZ;
htole16(buf + off, 3);
@@ -233,8 +228,7 @@ ble_att_clt_test_misc_prep_good(uint16_t handle, uint16_t offset,
TEST_ASSERT_FATAL(om != NULL);
TEST_ASSERT(om->om_len == BLE_ATT_PREP_WRITE_CMD_BASE_SZ + attr_data_len);
- rc = ble_att_prep_write_req_parse(om->om_data, om->om_len, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_prep_write_req_parse(om->om_data, om->om_len, &req);
TEST_ASSERT(req.bapc_handle == handle);
TEST_ASSERT(req.bapc_offset == offset);
for (i = 0; i < attr_data_len; i++) {
@@ -266,8 +260,7 @@ ble_att_clt_test_misc_exec_good(uint8_t flags)
TEST_ASSERT_FATAL(om != NULL);
TEST_ASSERT(om->om_len == BLE_ATT_EXEC_WRITE_REQ_SZ);
- rc = ble_att_exec_write_req_parse(om->om_data, om->om_len, &req);
- TEST_ASSERT(rc == 0);
+ ble_att_exec_write_req_parse(om->om_data, om->om_len, &req);
TEST_ASSERT(req.baeq_flags == flags);
}
@@ -407,8 +400,7 @@ TEST_CASE(ble_att_clt_test_tx_read_mult)
TEST_ASSERT_FATAL(om != NULL);
TEST_ASSERT(om->om_len == BLE_ATT_READ_MULT_REQ_BASE_SZ + 4);
- rc = ble_att_read_mult_req_parse(om->om_data, om->om_len);
- TEST_ASSERT(rc == 0);
+ ble_att_read_mult_req_parse(om->om_data, om->om_len);
TEST_ASSERT(le16toh(om->om_data + BLE_ATT_READ_MULT_REQ_BASE_SZ) == 1);
TEST_ASSERT(le16toh(om->om_data + BLE_ATT_READ_MULT_REQ_BASE_SZ + 2) == 2);
@@ -427,8 +419,7 @@ TEST_CASE(ble_att_clt_test_rx_read_mult)
ble_att_clt_test_misc_init(&conn, &chan);
/*** Basic success. */
- rc = ble_att_read_mult_rsp_write(buf, sizeof buf);
- TEST_ASSERT(rc == 0);
+ ble_att_read_mult_rsp_write(buf, sizeof buf);
htole16(buf + BLE_ATT_READ_MULT_RSP_BASE_SZ + 0, 12);
rc = ble_hs_test_util_l2cap_rx_payload_flat(
@@ -493,8 +484,7 @@ TEST_CASE(ble_att_clt_test_rx_prep_write)
/*** Basic success. */
rsp.bapc_handle = 0x1234;
rsp.bapc_offset = 0;
- rc = ble_att_prep_write_rsp_write(buf, sizeof buf, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_prep_write_rsp_write(buf, sizeof buf, &rsp);
memset(buf + BLE_ATT_PREP_WRITE_CMD_BASE_SZ, 1, 5);
rc = ble_hs_test_util_l2cap_rx_payload_flat(
conn, chan, buf, BLE_ATT_PREP_WRITE_CMD_BASE_SZ + 5);
@@ -503,8 +493,7 @@ TEST_CASE(ble_att_clt_test_rx_prep_write)
/*** 0-length write. */
rsp.bapc_handle = 0x1234;
rsp.bapc_offset = 0;
- rc = ble_att_prep_write_rsp_write(buf, sizeof buf, &rsp);
- TEST_ASSERT(rc == 0);
+ ble_att_prep_write_rsp_write(buf, sizeof buf, &rsp);
rc = ble_hs_test_util_l2cap_rx_payload_flat(
conn, chan, buf, BLE_ATT_PREP_WRITE_CMD_BASE_SZ);
TEST_ASSERT(rc == 0);