diff options
author | Anderson Lizardo <anderson.lizardo@openbossa.org> | 2013-07-19 13:34:11 -0400 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-07-24 08:42:05 -0700 |
commit | 910beb706c43ae5e181145823af47eef1fd665dd (patch) | |
tree | c43dd3f0f1aa82bf45135ed85b2ab4e0b04ae49e /attrib | |
parent | 9b1e7de26c639922e9054a9f6a75485aab20e19c (diff) | |
download | bluez-910beb706c43ae5e181145823af47eef1fd665dd.tar.gz |
attrib: Simplify prepare_write()
All parameters can be retrieved from struct write_long_data fields,
therefore there is no need to pass them separately.
Diffstat (limited to 'attrib')
-rw-r--r-- | attrib/gatt.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/attrib/gatt.c b/attrib/gatt.c index 3e6f040ec..90427a9d7 100644 --- a/attrib/gatt.c +++ b/attrib/gatt.c @@ -730,9 +730,7 @@ static guint execute_write(GAttrib *attrib, uint8_t flags, return g_attrib_send(attrib, 0, buf, plen, func, user_data, NULL); } -static guint prepare_write(GAttrib *attrib, uint16_t handle, uint16_t offset, - uint8_t *value, size_t vlen, GAttribResultFunc func, - gpointer user_data); +static guint prepare_write(struct write_long_data *long_write); static void prepare_write_cb(guint8 status, const guint8 *rpdu, guint16 rlen, gpointer user_data) @@ -756,28 +754,26 @@ static void prepare_write_cb(guint8 status, const guint8 *rpdu, guint16 rlen, return; } - prepare_write(long_write->attrib, long_write->handle, - long_write->offset, long_write->value, long_write->vlen, - long_write->func, long_write); + prepare_write(long_write); } -static guint prepare_write(GAttrib *attrib, uint16_t handle, uint16_t offset, - uint8_t *value, size_t vlen, GAttribResultFunc func, - gpointer user_data) +static guint prepare_write(struct write_long_data *long_write) { + GAttrib *attrib = long_write->attrib; + uint16_t handle = long_write->handle; + uint16_t offset = long_write->offset; + uint8_t *buf, *value = long_write->value + offset; + size_t buflen, vlen = long_write->vlen - offset; guint16 plen; - size_t buflen; - uint8_t *buf; buf = g_attrib_get_buffer(attrib, &buflen); - plen = enc_prep_write_req(handle, offset, &value[offset], vlen - offset, - buf, buflen); + plen = enc_prep_write_req(handle, offset, value, vlen, buf, buflen); if (plen == 0) return 0; - return g_attrib_send(attrib, 0, buf, plen, prepare_write_cb, - user_data, NULL); + return g_attrib_send(attrib, 0, buf, plen, prepare_write_cb, long_write, + NULL); } guint gatt_write_char(GAttrib *attrib, uint16_t handle, uint8_t *value, @@ -814,8 +810,7 @@ guint gatt_write_char(GAttrib *attrib, uint16_t handle, uint8_t *value, long_write->value = g_memdup(value, vlen); long_write->vlen = vlen; - return prepare_write(attrib, handle, long_write->offset, value, vlen, - func, long_write); + return prepare_write(long_write); } guint gatt_exchange_mtu(GAttrib *attrib, uint16_t mtu, GAttribResultFunc func, |