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/07/14 18:29:36 UTC
[4/5] incubator-mynewt-core git commit: BLE Host - Move opcode into
gatt access ctxt.
BLE Host - Move opcode into gatt access ctxt.
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/147a5632
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/147a5632
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/147a5632
Branch: refs/heads/develop
Commit: 147a56321108440ddb6077415248964b057b0780
Parents: 9420c87
Author: Christopher Collins <cc...@apache.org>
Authored: Thu Jul 14 11:07:33 2016 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Thu Jul 14 11:29:06 2016 -0700
----------------------------------------------------------------------
apps/bleprph/src/gatt_svr.c | 58 ++++++++++---------
apps/bletiny/src/gatt_svr.c | 61 ++++++++++----------
net/nimble/host/include/host/ble_gatt.h | 13 ++++-
net/nimble/host/src/ble_gatts.c | 18 +++---
.../host/src/test/ble_gatts_notify_test.c | 6 +-
net/nimble/host/src/test/ble_gatts_read_test.c | 12 ++--
net/nimble/host/src/test/ble_gatts_reg_test.c | 2 +-
7 files changed, 88 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/147a5632/apps/bleprph/src/gatt_svr.c
----------------------------------------------------------------------
diff --git a/apps/bleprph/src/gatt_svr.c b/apps/bleprph/src/gatt_svr.c
index 595a0d9..c2c40bd 100644
--- a/apps/bleprph/src/gatt_svr.c
+++ b/apps/bleprph/src/gatt_svr.c
@@ -55,20 +55,20 @@ const uint8_t gatt_svr_chr_sec_test_static_uuid[16] = {
static uint8_t gatt_svr_sec_test_static_val;
static int
-gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg);
static int
-gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg);
static int
gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
+ struct ble_gatt_access_ctxt *ctxt,
void *arg);
static int
gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
- void *arg);
+ struct ble_gatt_access_ctxt *ctxt,
+ void *arg);
static const struct ble_gatt_svc_def gatt_svr_svcs[] = {
{
@@ -193,7 +193,7 @@ gatt_svr_chr_write(uint8_t op, struct ble_gatt_access_ctxt *ctxt,
}
static int
-gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg)
{
uint16_t uuid16;
@@ -203,25 +203,25 @@ gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
switch (uuid16) {
case BLE_GAP_CHR_UUID16_DEVICE_NAME:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = bleprph_device_name;
ctxt->att->read.len = strlen(bleprph_device_name);
break;
case BLE_GAP_CHR_UUID16_APPEARANCE:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &bleprph_appearance;
ctxt->att->read.len = sizeof bleprph_appearance;
break;
case BLE_GAP_CHR_UUID16_PERIPH_PRIV_FLAG:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &bleprph_privacy_flag;
ctxt->att->read.len = sizeof bleprph_privacy_flag;
break;
case BLE_GAP_CHR_UUID16_RECONNECT_ADDR:
- assert(op == BLE_GATT_ACCESS_OP_WRITE_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR);
if (ctxt->att->write.len != sizeof bleprph_reconnect_addr) {
return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN;
}
@@ -230,7 +230,7 @@ gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
break;
case BLE_GAP_CHR_UUID16_PERIPH_PREF_CONN_PARAMS:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &bleprph_pref_conn_params;
ctxt->att->read.len = sizeof bleprph_pref_conn_params;
break;
@@ -244,7 +244,7 @@ gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
}
static int
-gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg)
{
uint16_t uuid16;
@@ -254,13 +254,13 @@ gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
switch (uuid16) {
case BLE_GATT_CHR_SERVICE_CHANGED_UUID16:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
if (ctxt->att->write.len != sizeof bleprph_gatt_service_changed) {
return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN;
}
memcpy(bleprph_gatt_service_changed, ctxt->att->write.data,
sizeof bleprph_gatt_service_changed);
- } else if (op == BLE_GATT_ACCESS_OP_READ_CHR) {
+ } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) {
ctxt->att->read.data = &bleprph_gatt_service_changed;
ctxt->att->read.len = sizeof bleprph_gatt_service_changed;
}
@@ -285,7 +285,7 @@ static uint16_t gatt_svr_alert_not_ctrl_pt;
static int
gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
+ struct ble_gatt_access_ctxt *ctxt,
void *arg)
{
uint16_t uuid16;
@@ -296,32 +296,34 @@ gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
switch (uuid16) {
case GATT_SVR_CHR_SUP_NEW_ALERT_CAT_UUID:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &gatt_svr_new_alert_cat;
ctxt->att->read.len = sizeof gatt_svr_new_alert_cat;
return 0;
case GATT_SVR_CHR_NEW_ALERT:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
- rc = gatt_svr_chr_write(op, ctxt, 0, sizeof gatt_svr_new_alert_val,
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ rc = gatt_svr_chr_write(ctxt->op, ctxt, 0,
+ sizeof gatt_svr_new_alert_val,
gatt_svr_new_alert_val,
&gatt_svr_new_alert_val_len);
return rc;
- } else if (op == BLE_GATT_ACCESS_OP_READ_CHR) {
+ } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) {
ctxt->att->read.data = (void *)&gatt_svr_new_alert_val;
ctxt->att->read.len = sizeof gatt_svr_new_alert_val;
return 0;
}
case GATT_SVR_CHR_SUP_UNR_ALERT_CAT_UUID:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &gatt_svr_unr_alert_cat;
ctxt->att->read.len = sizeof gatt_svr_unr_alert_cat;
return 0;
case GATT_SVR_CHR_UNR_ALERT_STAT_UUID:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
- rc = gatt_svr_chr_write(op, ctxt, 2, 2, &gatt_svr_unr_alert_stat,
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ rc = gatt_svr_chr_write(ctxt->op, ctxt, 2, 2,
+ &gatt_svr_unr_alert_stat,
NULL);
} else {
ctxt->att->read.data = &gatt_svr_unr_alert_stat;
@@ -331,8 +333,8 @@ gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
return rc;
case GATT_SVR_CHR_ALERT_NOT_CTRL_PT:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
- rc = gatt_svr_chr_write(op, ctxt, 2, 2,
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ rc = gatt_svr_chr_write(ctxt->op, ctxt, 2, 2,
&gatt_svr_alert_not_ctrl_pt, NULL);
} else {
rc = BLE_ATT_ERR_UNLIKELY;
@@ -347,7 +349,7 @@ gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
static int
gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
+ struct ble_gatt_access_ctxt *ctxt,
void *arg)
{
const void *uuid128;
@@ -361,7 +363,7 @@ gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
*/
if (memcmp(uuid128, gatt_svr_chr_sec_test_rand_uuid, 16) == 0) {
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
/* Respond with a 32-bit random number. Use the stack-provided buffer
* to hold the response data.
@@ -373,14 +375,14 @@ gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
}
if (memcmp(uuid128, gatt_svr_chr_sec_test_static_uuid, 16) == 0) {
- switch (op) {
+ switch (ctxt->op) {
case BLE_GATT_ACCESS_OP_READ_CHR:
ctxt->att->read.data = &gatt_svr_sec_test_static_val;
ctxt->att->read.len = sizeof gatt_svr_sec_test_static_val;
return 0;
case BLE_GATT_ACCESS_OP_WRITE_CHR:
- rc = gatt_svr_chr_write(op, ctxt,
+ rc = gatt_svr_chr_write(ctxt->op, ctxt,
sizeof gatt_svr_sec_test_static_val,
sizeof gatt_svr_sec_test_static_val,
&gatt_svr_sec_test_static_val, NULL);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/147a5632/apps/bletiny/src/gatt_svr.c
----------------------------------------------------------------------
diff --git a/apps/bletiny/src/gatt_svr.c b/apps/bletiny/src/gatt_svr.c
index 0b20f8e..ceb4522 100644
--- a/apps/bletiny/src/gatt_svr.c
+++ b/apps/bletiny/src/gatt_svr.c
@@ -55,20 +55,17 @@ const uint8_t gatt_svr_chr_sec_test_static_uuid[16] = {
static uint8_t gatt_svr_sec_test_static_val;
static int
-gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg);
static int
-gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg);
static int
gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
- void *arg);
-
+ struct ble_gatt_access_ctxt *ctxt, void *arg);
static int
gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
- void *arg);
+ struct ble_gatt_access_ctxt *ctxt, void *arg);
static const struct ble_gatt_svc_def gatt_svr_svcs[] = {
{
@@ -193,7 +190,7 @@ gatt_svr_chr_write(uint8_t op, struct ble_gatt_access_ctxt *ctxt,
}
static int
-gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg)
{
uint16_t uuid16;
@@ -203,25 +200,25 @@ gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
switch (uuid16) {
case BLE_GAP_CHR_UUID16_DEVICE_NAME:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = bletiny_device_name;
ctxt->att->read.len = strlen(bletiny_device_name);
break;
case BLE_GAP_CHR_UUID16_APPEARANCE:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &bletiny_appearance;
ctxt->att->read.len = sizeof bletiny_appearance;
break;
case BLE_GAP_CHR_UUID16_PERIPH_PRIV_FLAG:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &bletiny_privacy_flag;
ctxt->att->read.len = sizeof bletiny_privacy_flag;
break;
case BLE_GAP_CHR_UUID16_RECONNECT_ADDR:
- assert(op == BLE_GATT_ACCESS_OP_WRITE_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR);
if (ctxt->att->write.len != sizeof bletiny_reconnect_addr) {
return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN;
}
@@ -230,7 +227,7 @@ gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
break;
case BLE_GAP_CHR_UUID16_PERIPH_PREF_CONN_PARAMS:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &bletiny_pref_conn_params;
ctxt->att->read.len = sizeof bletiny_pref_conn_params;
break;
@@ -244,7 +241,7 @@ gatt_svr_chr_access_gap(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
}
static int
-gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
+gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt, void *arg)
{
uint16_t uuid16;
@@ -254,13 +251,13 @@ gatt_svr_chr_access_gatt(uint16_t conn_handle, uint16_t attr_handle, uint8_t op,
switch (uuid16) {
case BLE_GATT_CHR_SERVICE_CHANGED_UUID16:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
if (ctxt->att->write.len != sizeof bletiny_gatt_service_changed) {
return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN;
}
memcpy(bletiny_gatt_service_changed, ctxt->att->write.data,
sizeof bletiny_gatt_service_changed);
- } else if (op == BLE_GATT_ACCESS_OP_READ_CHR) {
+ } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) {
ctxt->att->read.data = &bletiny_gatt_service_changed;
ctxt->att->read.len = sizeof bletiny_gatt_service_changed;
}
@@ -285,8 +282,7 @@ static uint16_t gatt_svr_alert_not_ctrl_pt;
static int
gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
- void *arg)
+ struct ble_gatt_access_ctxt *ctxt, void *arg)
{
uint16_t uuid16;
int rc;
@@ -296,32 +292,34 @@ gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
switch (uuid16) {
case GATT_SVR_CHR_SUP_NEW_ALERT_CAT_UUID:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &gatt_svr_new_alert_cat;
ctxt->att->read.len = sizeof gatt_svr_new_alert_cat;
return 0;
case GATT_SVR_CHR_NEW_ALERT:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
- rc = gatt_svr_chr_write(op, ctxt, 0, sizeof gatt_svr_new_alert_val,
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ rc = gatt_svr_chr_write(ctxt->op, ctxt, 0,
+ sizeof gatt_svr_new_alert_val,
gatt_svr_new_alert_val,
&gatt_svr_new_alert_val_len);
return rc;
- } else if (op == BLE_GATT_ACCESS_OP_READ_CHR) {
+ } else if (ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR) {
ctxt->att->read.data = (void *)&gatt_svr_new_alert_val;
ctxt->att->read.len = sizeof gatt_svr_new_alert_val;
return 0;
}
case GATT_SVR_CHR_SUP_UNR_ALERT_CAT_UUID:
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
ctxt->att->read.data = &gatt_svr_unr_alert_cat;
ctxt->att->read.len = sizeof gatt_svr_unr_alert_cat;
return 0;
case GATT_SVR_CHR_UNR_ALERT_STAT_UUID:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
- rc = gatt_svr_chr_write(op, ctxt, 2, 2, &gatt_svr_unr_alert_stat,
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ rc = gatt_svr_chr_write(ctxt->op, ctxt, 2, 2,
+ &gatt_svr_unr_alert_stat,
NULL);
} else {
ctxt->att->read.data = &gatt_svr_unr_alert_stat;
@@ -331,8 +329,8 @@ gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
return rc;
case GATT_SVR_CHR_ALERT_NOT_CTRL_PT:
- if (op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
- rc = gatt_svr_chr_write(op, ctxt, 2, 2,
+ if (ctxt->op == BLE_GATT_ACCESS_OP_WRITE_CHR) {
+ rc = gatt_svr_chr_write(ctxt->op, ctxt, 2, 2,
&gatt_svr_alert_not_ctrl_pt, NULL);
} else {
rc = BLE_ATT_ERR_UNLIKELY;
@@ -347,8 +345,7 @@ gatt_svr_chr_access_alert(uint16_t conn_handle, uint16_t attr_handle,
static int
gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
- void *arg)
+ struct ble_gatt_access_ctxt *ctxt, void *arg)
{
const void *uuid128;
int rand_num;
@@ -361,7 +358,7 @@ gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
*/
if (memcmp(uuid128, gatt_svr_chr_sec_test_rand_uuid, 16) == 0) {
- assert(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ assert(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
/* Respond with a 32-bit random number. Use the stack-provided buffer
* to hold the response data.
@@ -373,14 +370,14 @@ gatt_svr_chr_access_sec_test(uint16_t conn_handle, uint16_t attr_handle,
}
if (memcmp(uuid128, gatt_svr_chr_sec_test_static_uuid, 16) == 0) {
- switch (op) {
+ switch (ctxt->op) {
case BLE_GATT_ACCESS_OP_READ_CHR:
ctxt->att->read.data = &gatt_svr_sec_test_static_val;
ctxt->att->read.len = sizeof gatt_svr_sec_test_static_val;
return 0;
case BLE_GATT_ACCESS_OP_WRITE_CHR:
- rc = gatt_svr_chr_write(op, ctxt,
+ rc = gatt_svr_chr_write(ctxt->op, ctxt,
sizeof gatt_svr_sec_test_static_val,
sizeof gatt_svr_sec_test_static_val,
&gatt_svr_sec_test_static_val, NULL);
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/147a5632/net/nimble/host/include/host/ble_gatt.h
----------------------------------------------------------------------
diff --git a/net/nimble/host/include/host/ble_gatt.h b/net/nimble/host/include/host/ble_gatt.h
index 6a710f8..c855a9b 100644
--- a/net/nimble/host/include/host/ble_gatt.h
+++ b/net/nimble/host/include/host/ble_gatt.h
@@ -183,8 +183,7 @@ int ble_gattc_init(void);
struct ble_gatt_access_ctxt;
typedef int ble_gatt_access_fn(uint16_t conn_handle, uint16_t attr_handle,
- uint8_t op, struct ble_gatt_access_ctxt *ctxt,
- void *arg);
+ struct ble_gatt_access_ctxt *ctxt, void *arg);
typedef uint16_t ble_gatt_chr_flags;
@@ -257,6 +256,16 @@ struct ble_gatt_svc_def {
*/
struct ble_gatt_access_ctxt {
/**
+ * Indicates the gatt operation being performed. This is equal to one of
+ * the following values:
+ * o BLE_GATT_ACCESS_OP_READ_CHR
+ * o BLE_GATT_ACCESS_OP_WRITE_CHR
+ * o BLE_GATT_ACCESS_OP_READ_DSC
+ * o BLE_GATT_ACCESS_OP_WRITE_DSC
+ */
+ uint8_t op;
+
+ /**
* The GATT operation being performed dictates which field in this union is
* valid. If a characteristic is being accessed, the chr field is valid.
* Otherwise, a descriptor is being accessed, in which case the dsc field
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/147a5632/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 3219c38..0aff98a 100644
--- a/net/nimble/host/src/ble_gatts.c
+++ b/net/nimble/host/src/ble_gatts.c
@@ -293,24 +293,23 @@ ble_gatts_chr_val_access(uint16_t conn_handle, uint16_t attr_handle,
{
const struct ble_gatt_chr_def *chr_def;
struct ble_gatt_access_ctxt gatt_ctxt;
- uint8_t gatt_op;
int rc;
chr_def = arg;
BLE_HS_DBG_ASSERT(chr_def != NULL && chr_def->access_cb != NULL);
- gatt_op = ble_gatts_chr_op(att_op);
- ble_gatts_chr_inc_val_stat(gatt_op);
+ gatt_ctxt.op = ble_gatts_chr_op(att_op);
+ ble_gatts_chr_inc_val_stat(gatt_ctxt.op);
gatt_ctxt.chr = chr_def;
gatt_ctxt.att = att_ctxt;
- rc = chr_def->access_cb(conn_handle, attr_handle, gatt_op, &gatt_ctxt,
+ rc = chr_def->access_cb(conn_handle, attr_handle, &gatt_ctxt,
chr_def->arg);
if (rc != 0) {
return rc;
}
- if (gatt_op == BLE_GATT_ACCESS_OP_WRITE_CHR &&
+ if (gatt_ctxt.op == BLE_GATT_ACCESS_OP_WRITE_CHR &&
ble_gatts_chr_clt_cfg_allowed(chr_def)) {
ble_gatts_chr_updated(attr_handle - 1);
@@ -412,14 +411,13 @@ ble_gatts_dsc_access(uint16_t conn_handle, uint16_t attr_handle,
{
struct ble_gatt_access_ctxt gatt_ctxt;
const struct ble_gatt_dsc_def *dsc_def;
- uint8_t gatt_op;
int rc;
dsc_def = arg;
BLE_HS_DBG_ASSERT(dsc_def != NULL && dsc_def->access_cb != NULL);
- gatt_op = ble_gatts_dsc_op(att_op);
- switch (gatt_op) {
+ gatt_ctxt.op = ble_gatts_dsc_op(att_op);
+ switch (gatt_ctxt.op) {
case BLE_GATT_ACCESS_OP_READ_DSC:
break;
@@ -431,11 +429,11 @@ ble_gatts_dsc_access(uint16_t conn_handle, uint16_t attr_handle,
return BLE_HS_EUNKNOWN;
}
- ble_gatts_dsc_inc_stat(gatt_op);
+ ble_gatts_dsc_inc_stat(gatt_ctxt.op);
gatt_ctxt.dsc = dsc_def;
gatt_ctxt.att = att_ctxt;
- rc = dsc_def->access_cb(conn_handle, attr_handle, gatt_op, &gatt_ctxt,
+ rc = dsc_def->access_cb(conn_handle, attr_handle, &gatt_ctxt,
dsc_def->arg);
if (rc != 0) {
return rc;
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/147a5632/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 28d2120..5a7b86d 100644
--- a/net/nimble/host/src/test/ble_gatts_notify_test.c
+++ b/net/nimble/host/src/test/ble_gatts_notify_test.c
@@ -33,7 +33,7 @@ static uint8_t ble_gatts_notify_test_peer_addr[6] = {2,3,4,5,6,7};
static int
ble_gatts_notify_test_misc_access(uint16_t conn_handle,
- uint16_t attr_handle, uint8_t op,
+ uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt,
void *arg);
static void
@@ -233,11 +233,11 @@ ble_gatts_notify_test_misc_reg_cb(uint8_t op,
static int
ble_gatts_notify_test_misc_access(uint16_t conn_handle,
- uint16_t attr_handle, uint8_t op,
+ uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt,
void *arg)
{
- TEST_ASSERT_FATAL(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ TEST_ASSERT_FATAL(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
TEST_ASSERT(conn_handle == 0xffff);
if (attr_handle == ble_gatts_notify_test_chr_1_def_handle + 1) {
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/147a5632/net/nimble/host/src/test/ble_gatts_read_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatts_read_test.c b/net/nimble/host/src/test/ble_gatts_read_test.c
index 401ddd8..71794cd 100644
--- a/net/nimble/host/src/test/ble_gatts_read_test.c
+++ b/net/nimble/host/src/test/ble_gatts_read_test.c
@@ -31,13 +31,13 @@ static uint8_t ble_gatts_read_test_peer_addr[6] = {2,3,4,5,6,7};
static int
ble_gatts_read_test_util_access_1(uint16_t conn_handle,
- uint16_t attr_handle, uint8_t op,
+ uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt,
void *arg);
static int
ble_gatts_read_test_util_access_2(uint16_t conn_handle,
- uint16_t attr_handle, uint8_t op,
+ uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt,
void *arg);
static void
@@ -126,11 +126,11 @@ ble_gatts_read_test_misc_reg_cb(uint8_t op,
static int
ble_gatts_read_test_util_access_1(uint16_t conn_handle,
- uint16_t attr_handle, uint8_t op,
+ uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt,
void *arg)
{
- TEST_ASSERT_FATAL(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ TEST_ASSERT_FATAL(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
TEST_ASSERT_FATAL(attr_handle == ble_gatts_read_test_chr_1_val_handle);
TEST_ASSERT(ctxt->chr ==
@@ -143,11 +143,11 @@ ble_gatts_read_test_util_access_1(uint16_t conn_handle,
static int
ble_gatts_read_test_util_access_2(uint16_t conn_handle,
- uint16_t attr_handle, uint8_t op,
+ uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt,
void *arg)
{
- TEST_ASSERT_FATAL(op == BLE_GATT_ACCESS_OP_READ_CHR);
+ TEST_ASSERT_FATAL(ctxt->op == BLE_GATT_ACCESS_OP_READ_CHR);
TEST_ASSERT_FATAL(attr_handle == ble_gatts_read_test_chr_2_def_handle + 1);
TEST_ASSERT(ctxt->chr ==
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/147a5632/net/nimble/host/src/test/ble_gatts_reg_test.c
----------------------------------------------------------------------
diff --git a/net/nimble/host/src/test/ble_gatts_reg_test.c b/net/nimble/host/src/test/ble_gatts_reg_test.c
index ff96f74..8732b5e 100644
--- a/net/nimble/host/src/test/ble_gatts_reg_test.c
+++ b/net/nimble/host/src/test/ble_gatts_reg_test.c
@@ -291,7 +291,7 @@ ble_gatts_reg_test_misc_verify_entry(uint8_t op, const uint8_t *uuid128)
static int
ble_gatts_reg_test_misc_dummy_access(uint16_t conn_handle,
- uint16_t attr_handle, uint8_t op,
+ uint16_t attr_handle,
struct ble_gatt_access_ctxt *ctxt,
void *arg)
{