diff --git a/attrib/att-database.h b/attrib/att-database.h
index 3e854aa..e022eec 100644
--- a/attrib/att-database.h
+++ b/attrib/att-database.h
struct attribute {
uint16_t handle;
bt_uuid_t uuid;
- int read_reqs;
- int write_reqs;
+ size_t read_reqs;
+ size_t write_reqs;
uint8_t (*read_cb)(struct attribute *a, struct btd_device *device,
gpointer user_data);
uint8_t (*write_cb)(struct attribute *a, struct btd_device *device,
gpointer user_data);
gpointer cb_user_data;
- int len;
+ size_t len;
uint8_t *data;
};
diff --git a/attrib/att.c b/attrib/att.c
index 20a8efa..fc510f4 100644
--- a/attrib/att.c
+++ b/attrib/att.c
}
uint16_t enc_read_by_grp_req(uint16_t start, uint16_t end, bt_uuid_t *uuid,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
- const uint16_t min_len = sizeof(pdu[0]) + sizeof(start) + sizeof(end);
+ uint16_t min_len = sizeof(pdu[0]) + sizeof(start) + sizeof(end);
uint16_t length;
if (!uuid)
return min_len + length;
}
-uint16_t dec_read_by_grp_req(const uint8_t *pdu, int len, uint16_t *start,
+uint16_t dec_read_by_grp_req(const uint8_t *pdu, size_t len, uint16_t *start,
uint16_t *end, bt_uuid_t *uuid)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*start) + sizeof(*end);
}
uint16_t enc_read_by_grp_resp(struct att_data_list *list, uint8_t *pdu,
- int len)
+ size_t len)
{
int i;
uint16_t w;
if (list == NULL)
return 0;
- if (len < list->len + 2)
+ if (len < list->len + sizeof(uint8_t) * 2)
return 0;
pdu[0] = ATT_OP_READ_BY_GROUP_RESP;
return w;
}
-struct att_data_list *dec_read_by_grp_resp(const uint8_t *pdu, int len)
+struct att_data_list *dec_read_by_grp_resp(const uint8_t *pdu, size_t len)
{
struct att_data_list *list;
const uint8_t *ptr;
}
uint16_t enc_find_by_type_req(uint16_t start, uint16_t end, bt_uuid_t *uuid,
- const uint8_t *value, int vlen, uint8_t *pdu, int len)
+ const uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len)
{
uint16_t min_len = sizeof(pdu[0]) + sizeof(start) + sizeof(end) +
sizeof(uint16_t);
return min_len;
}
-uint16_t dec_find_by_type_req(const uint8_t *pdu, int len, uint16_t *start,
- uint16_t *end, bt_uuid_t *uuid, uint8_t *value, int *vlen)
+uint16_t dec_find_by_type_req(const uint8_t *pdu, size_t len, uint16_t *start,
+ uint16_t *end, bt_uuid_t *uuid,
+ uint8_t *value, size_t *vlen)
{
- int valuelen;
+ size_t valuelen;
uint16_t min_len = sizeof(pdu[0]) + sizeof(*start) +
sizeof(*end) + sizeof(uint16_t);
return len;
}
-uint16_t enc_find_by_type_resp(GSList *matches, uint8_t *pdu, int len)
+uint16_t enc_find_by_type_resp(GSList *matches, uint8_t *pdu, size_t len)
{
GSList *l;
uint16_t offset;
pdu[0] = ATT_OP_FIND_BY_TYPE_RESP;
- for (l = matches, offset = 1; l && len >= (offset + 4);
- l = l->next, offset += 4) {
+ for (l = matches, offset = 1;
+ l && len >= (offset + sizeof(uint16_t) * 2);
+ l = l->next, offset += sizeof(uint16_t) * 2) {
struct att_range *range = l->data;
att_put_u16(range->start, &pdu[offset]);
return offset;
}
-GSList *dec_find_by_type_resp(const uint8_t *pdu, int len)
+GSList *dec_find_by_type_resp(const uint8_t *pdu, size_t len)
{
struct att_range *range;
GSList *matches;
- int offset;
+ off_t offset;
if (pdu == NULL || len < 5)
return NULL;
if (pdu[0] != ATT_OP_FIND_BY_TYPE_RESP)
return NULL;
- for (offset = 1, matches = NULL; len >= (offset + 4); offset += 4) {
+ for (offset = 1, matches = NULL;
+ len >= (offset + sizeof(uint16_t) * 2);
+ offset += sizeof(uint16_t) * 2) {
range = g_new0(struct att_range, 1);
range->start = att_get_u16(&pdu[offset]);
range->end = att_get_u16(&pdu[offset + 2]);
}
uint16_t enc_read_by_type_req(uint16_t start, uint16_t end, bt_uuid_t *uuid,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
- const uint16_t min_len = sizeof(pdu[0]) + sizeof(start) + sizeof(end);
+ uint16_t min_len = sizeof(pdu[0]) + sizeof(start) + sizeof(end);
uint16_t length;
if (!uuid)
return min_len + length;
}
-uint16_t dec_read_by_type_req(const uint8_t *pdu, int len, uint16_t *start,
+uint16_t dec_read_by_type_req(const uint8_t *pdu, size_t len, uint16_t *start,
uint16_t *end, bt_uuid_t *uuid)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*start) + sizeof(*end);
return len;
}
-uint16_t enc_read_by_type_resp(struct att_data_list *list, uint8_t *pdu, int len)
+uint16_t enc_read_by_type_resp(struct att_data_list *list, uint8_t *pdu,
+ size_t len)
{
uint8_t *ptr;
- int i, w, l;
+ size_t i, w, l;
if (list == NULL)
return 0;
return w;
}
-struct att_data_list *dec_read_by_type_resp(const uint8_t *pdu, int len)
+struct att_data_list *dec_read_by_type_resp(const uint8_t *pdu, size_t len)
{
struct att_data_list *list;
const uint8_t *ptr;
return list;
}
-uint16_t enc_write_cmd(uint16_t handle, const uint8_t *value, int vlen,
- uint8_t *pdu, int len)
+uint16_t enc_write_cmd(uint16_t handle, const uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(handle);
return min_len;
}
-uint16_t dec_write_cmd(const uint8_t *pdu, int len, uint16_t *handle,
- uint8_t *value, int *vlen)
+uint16_t dec_write_cmd(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint8_t *value, size_t *vlen)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*handle);
return len;
}
-uint16_t enc_write_req(uint16_t handle, const uint8_t *value, int vlen,
- uint8_t *pdu, int len)
+uint16_t enc_write_req(uint16_t handle, const uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(handle);
return min_len;
}
-uint16_t dec_write_req(const uint8_t *pdu, int len, uint16_t *handle,
- uint8_t *value, int *vlen)
+uint16_t dec_write_req(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint8_t *value, size_t *vlen)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*handle);
return len;
}
-uint16_t enc_write_resp(uint8_t *pdu, int len)
+uint16_t enc_write_resp(uint8_t *pdu, size_t len)
{
if (pdu == NULL)
return 0;
return sizeof(pdu[0]);
}
-uint16_t dec_write_resp(const uint8_t *pdu, int len)
+uint16_t dec_write_resp(const uint8_t *pdu, size_t len)
{
if (pdu == NULL)
return 0;
return len;
}
-uint16_t enc_read_req(uint16_t handle, uint8_t *pdu, int len)
+uint16_t enc_read_req(uint16_t handle, uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(handle);
}
uint16_t enc_read_blob_req(uint16_t handle, uint16_t offset, uint8_t *pdu,
- int len)
+ size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(handle) +
sizeof(offset);
return min_len;
}
-uint16_t dec_read_req(const uint8_t *pdu, int len, uint16_t *handle)
+uint16_t dec_read_req(const uint8_t *pdu, size_t len, uint16_t *handle)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*handle);
return min_len;
}
-uint16_t dec_read_blob_req(const uint8_t *pdu, int len, uint16_t *handle,
+uint16_t dec_read_blob_req(const uint8_t *pdu, size_t len, uint16_t *handle,
uint16_t *offset)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*handle) +
return min_len;
}
-uint16_t enc_read_resp(uint8_t *value, int vlen, uint8_t *pdu, int len)
+uint16_t enc_read_resp(uint8_t *value, size_t vlen, uint8_t *pdu, size_t len)
{
if (pdu == NULL)
return 0;
return vlen + 1;
}
-uint16_t enc_read_blob_resp(uint8_t *value, int vlen, uint16_t offset,
- uint8_t *pdu, int len)
+uint16_t enc_read_blob_resp(uint8_t *value, size_t vlen, uint16_t offset,
+ uint8_t *pdu, size_t len)
{
if (pdu == NULL)
return 0;
return vlen + 1;
}
-ssize_t dec_read_resp(const uint8_t *pdu, int len, uint8_t *value, int vlen)
+ssize_t dec_read_resp(const uint8_t *pdu, size_t len, uint8_t *value, size_t vlen)
{
if (pdu == NULL)
return -EINVAL;
}
uint16_t enc_error_resp(uint8_t opcode, uint16_t handle, uint8_t status,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(opcode) +
sizeof(handle) + sizeof(status);
return min_len;
}
-uint16_t enc_find_info_req(uint16_t start, uint16_t end, uint8_t *pdu, int len)
+uint16_t enc_find_info_req(uint16_t start, uint16_t end, uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(start) + sizeof(end);
return min_len;
}
-uint16_t dec_find_info_req(const uint8_t *pdu, int len, uint16_t *start,
+uint16_t dec_find_info_req(const uint8_t *pdu, size_t len, uint16_t *start,
uint16_t *end)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*start) + sizeof(*end);
}
uint16_t enc_find_info_resp(uint8_t format, struct att_data_list *list,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
uint8_t *ptr;
- int i, w;
+ size_t i, w;
if (pdu == NULL)
return 0;
if (list == NULL)
return 0;
- if (len < list->len + 2)
+ if (len < list->len + sizeof(uint8_t) * 2)
return 0;
pdu[0] = ATT_OP_FIND_INFO_RESP;
return w;
}
-struct att_data_list *dec_find_info_resp(const uint8_t *pdu, int len,
+struct att_data_list *dec_find_info_resp(const uint8_t *pdu, size_t len,
uint8_t *format)
{
struct att_data_list *list;
return list;
}
-uint16_t enc_notification(uint16_t handle, uint8_t *value, int vlen,
- uint8_t *pdu, int len)
+uint16_t enc_notification(uint16_t handle, uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(uint16_t);
return vlen + min_len;
}
-uint16_t enc_indication(uint16_t handle, uint8_t *value, int vlen,
- uint8_t *pdu, int len)
+uint16_t enc_indication(uint16_t handle, uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(uint16_t);
return vlen + min_len;
}
-uint16_t dec_indication(const uint8_t *pdu, int len, uint16_t *handle,
- uint8_t *value, int vlen)
+uint16_t dec_indication(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint8_t *value, size_t vlen)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(uint16_t);
uint16_t dlen;
return dlen;
}
-uint16_t enc_confirmation(uint8_t *pdu, int len)
+uint16_t enc_confirmation(uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]);
return min_len;
}
-uint16_t enc_mtu_req(uint16_t mtu, uint8_t *pdu, int len)
+uint16_t enc_mtu_req(uint16_t mtu, uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(mtu);
return min_len;
}
-uint16_t dec_mtu_req(const uint8_t *pdu, int len, uint16_t *mtu)
+uint16_t dec_mtu_req(const uint8_t *pdu, size_t len, uint16_t *mtu)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*mtu);
return min_len;
}
-uint16_t enc_mtu_resp(uint16_t mtu, uint8_t *pdu, int len)
+uint16_t enc_mtu_resp(uint16_t mtu, uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(mtu);
return min_len;
}
-uint16_t dec_mtu_resp(const uint8_t *pdu, int len, uint16_t *mtu)
+uint16_t dec_mtu_resp(const uint8_t *pdu, size_t len, uint16_t *mtu)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*mtu);
}
uint16_t enc_prep_write_req(uint16_t handle, uint16_t offset,
- const uint8_t *value, int vlen, uint8_t *pdu, int len)
+ const uint8_t *value, size_t vlen, uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(handle) +
sizeof(offset);
return min_len;
}
-uint16_t dec_prep_write_resp(const uint8_t *pdu, int len, uint16_t *handle,
- uint16_t *offset, uint8_t *value, int *vlen)
+uint16_t dec_prep_write_resp(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint16_t *offset, uint8_t *value, size_t *vlen)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(*handle) +
sizeof(*offset);
return len;
}
-uint16_t enc_exec_write_req(uint8_t flags, uint8_t *pdu, int len)
+uint16_t enc_exec_write_req(uint8_t flags, uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]) + sizeof(flags);
return min_len;
}
-uint16_t dec_exec_write_resp(const uint8_t *pdu, int len)
+uint16_t dec_exec_write_resp(const uint8_t *pdu, size_t len)
{
const uint16_t min_len = sizeof(pdu[0]);
diff --git a/attrib/att.h b/attrib/att.h
index e7a29cb..9384be5 100644
--- a/attrib/att.h
+++ b/attrib/att.h
const char *att_ecode2str(uint8_t status);
uint16_t enc_read_by_grp_req(uint16_t start, uint16_t end, bt_uuid_t *uuid,
- uint8_t *pdu, int len);
-uint16_t dec_read_by_grp_req(const uint8_t *pdu, int len, uint16_t *start,
- uint16_t *end, bt_uuid_t *uuid);
-uint16_t enc_read_by_grp_resp(struct att_data_list *list, uint8_t *pdu, int len);
+ uint8_t *pdu, size_t len);
+uint16_t dec_read_by_grp_req(const uint8_t *pdu, size_t len, uint16_t *start,
+ uint16_t *end, bt_uuid_t *uuid);
+uint16_t enc_read_by_grp_resp(struct att_data_list *list, uint8_t *pdu,
+ size_t len);
uint16_t enc_find_by_type_req(uint16_t start, uint16_t end, bt_uuid_t *uuid,
- const uint8_t *value, int vlen, uint8_t *pdu, int len);
-uint16_t dec_find_by_type_req(const uint8_t *pdu, int len, uint16_t *start,
- uint16_t *end, bt_uuid_t *uuid, uint8_t *value, int *vlen);
-uint16_t enc_find_by_type_resp(GSList *ranges, uint8_t *pdu, int len);
-GSList *dec_find_by_type_resp(const uint8_t *pdu, int len);
-struct att_data_list *dec_read_by_grp_resp(const uint8_t *pdu, int len);
+ const uint8_t *value, size_t vlen, uint8_t *pdu,
+ size_t len);
+uint16_t dec_find_by_type_req(const uint8_t *pdu, size_t len, uint16_t *start,
+ uint16_t *end, bt_uuid_t *uuid, uint8_t *value, size_t *vlen);
+uint16_t enc_find_by_type_resp(GSList *ranges, uint8_t *pdu, size_t len);
+GSList *dec_find_by_type_resp(const uint8_t *pdu, size_t len);
+struct att_data_list *dec_read_by_grp_resp(const uint8_t *pdu, size_t len);
uint16_t enc_read_by_type_req(uint16_t start, uint16_t end, bt_uuid_t *uuid,
- uint8_t *pdu, int len);
-uint16_t dec_read_by_type_req(const uint8_t *pdu, int len, uint16_t *start,
- uint16_t *end, bt_uuid_t *uuid);
+ uint8_t *pdu, size_t len);
+uint16_t dec_read_by_type_req(const uint8_t *pdu, size_t len, uint16_t *start,
+ uint16_t *end, bt_uuid_t *uuid);
uint16_t enc_read_by_type_resp(struct att_data_list *list, uint8_t *pdu,
- int len);
-uint16_t enc_write_cmd(uint16_t handle, const uint8_t *value, int vlen,
- uint8_t *pdu, int len);
-uint16_t dec_write_cmd(const uint8_t *pdu, int len, uint16_t *handle,
- uint8_t *value, int *vlen);
-struct att_data_list *dec_read_by_type_resp(const uint8_t *pdu, int len);
-uint16_t enc_write_req(uint16_t handle, const uint8_t *value, int vlen,
- uint8_t *pdu, int len);
-uint16_t dec_write_req(const uint8_t *pdu, int len, uint16_t *handle,
- uint8_t *value, int *vlen);
-uint16_t enc_write_resp(uint8_t *pdu, int len);
-uint16_t dec_write_resp(const uint8_t *pdu, int len);
-uint16_t enc_read_req(uint16_t handle, uint8_t *pdu, int len);
+ size_t len);
+uint16_t enc_write_cmd(uint16_t handle, const uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len);
+uint16_t dec_write_cmd(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint8_t *value, size_t *vlen);
+struct att_data_list *dec_read_by_type_resp(const uint8_t *pdu, size_t len);
+uint16_t enc_write_req(uint16_t handle, const uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len);
+uint16_t dec_write_req(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint8_t *value, size_t *vlen);
+uint16_t enc_write_resp(uint8_t *pdu, size_t len);
+uint16_t dec_write_resp(const uint8_t *pdu, size_t len);
+uint16_t enc_read_req(uint16_t handle, uint8_t *pdu, size_t len);
uint16_t enc_read_blob_req(uint16_t handle, uint16_t offset, uint8_t *pdu,
- int len);
-uint16_t dec_read_req(const uint8_t *pdu, int len, uint16_t *handle);
-uint16_t dec_read_blob_req(const uint8_t *pdu, int len, uint16_t *handle,
+ size_t len);
+uint16_t dec_read_req(const uint8_t *pdu, size_t len, uint16_t *handle);
+uint16_t dec_read_blob_req(const uint8_t *pdu, size_t len, uint16_t *handle,
uint16_t *offset);
-uint16_t enc_read_resp(uint8_t *value, int vlen, uint8_t *pdu, int len);
-uint16_t enc_read_blob_resp(uint8_t *value, int vlen, uint16_t offset,
- uint8_t *pdu, int len);
-ssize_t dec_read_resp(const uint8_t *pdu, int len, uint8_t *value, int vlen);
+uint16_t enc_read_resp(uint8_t *value, size_t vlen, uint8_t *pdu, size_t len);
+uint16_t enc_read_blob_resp(uint8_t *value, size_t vlen, uint16_t offset,
+ uint8_t *pdu, size_t len);
+ssize_t dec_read_resp(const uint8_t *pdu, size_t len, uint8_t *value,
+ size_t vlen);
uint16_t enc_error_resp(uint8_t opcode, uint16_t handle, uint8_t status,
- uint8_t *pdu, int len);
-uint16_t enc_find_info_req(uint16_t start, uint16_t end, uint8_t *pdu, int len);
-uint16_t dec_find_info_req(const uint8_t *pdu, int len, uint16_t *start,
+ uint8_t *pdu, size_t len);
+uint16_t enc_find_info_req(uint16_t start, uint16_t end, uint8_t *pdu,
+ size_t len);
+uint16_t dec_find_info_req(const uint8_t *pdu, size_t len, uint16_t *start,
uint16_t *end);
uint16_t enc_find_info_resp(uint8_t format, struct att_data_list *list,
- uint8_t *pdu, int len);
-struct att_data_list *dec_find_info_resp(const uint8_t *pdu, int len,
+ uint8_t *pdu, size_t len);
+struct att_data_list *dec_find_info_resp(const uint8_t *pdu, size_t len,
uint8_t *format);
-uint16_t enc_notification(uint16_t handle, uint8_t *value, int vlen,
- uint8_t *pdu, int len);
-uint16_t enc_indication(uint16_t handle, uint8_t *value, int vlen,
- uint8_t *pdu, int len);
-uint16_t dec_indication(const uint8_t *pdu, int len, uint16_t *handle,
- uint8_t *value, int vlen);
-uint16_t enc_confirmation(uint8_t *pdu, int len);
-
-uint16_t enc_mtu_req(uint16_t mtu, uint8_t *pdu, int len);
-uint16_t dec_mtu_req(const uint8_t *pdu, int len, uint16_t *mtu);
-uint16_t enc_mtu_resp(uint16_t mtu, uint8_t *pdu, int len);
-uint16_t dec_mtu_resp(const uint8_t *pdu, int len, uint16_t *mtu);
+uint16_t enc_notification(uint16_t handle, uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len);
+uint16_t enc_indication(uint16_t handle, uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len);
+uint16_t dec_indication(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint8_t *value, size_t vlen);
+uint16_t enc_confirmation(uint8_t *pdu, size_t len);
+
+uint16_t enc_mtu_req(uint16_t mtu, uint8_t *pdu, size_t len);
+uint16_t dec_mtu_req(const uint8_t *pdu, size_t len, uint16_t *mtu);
+uint16_t enc_mtu_resp(uint16_t mtu, uint8_t *pdu, size_t len);
+uint16_t dec_mtu_resp(const uint8_t *pdu, size_t len, uint16_t *mtu);
uint16_t enc_prep_write_req(uint16_t handle, uint16_t offset,
- const uint8_t *value, int vlen, uint8_t *pdu, int len);
-uint16_t dec_prep_write_resp(const uint8_t *pdu, int len, uint16_t *handle,
- uint16_t *offset, uint8_t *value, int *vlen);
-uint16_t enc_exec_write_req(uint8_t flags, uint8_t *pdu, int len);
-uint16_t dec_exec_write_resp(const uint8_t *pdu, int len);
+ const uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len);
+uint16_t dec_prep_write_resp(const uint8_t *pdu, size_t len, uint16_t *handle,
+ uint16_t *offset, uint8_t *value,
+ size_t *vlen);
+uint16_t enc_exec_write_req(uint8_t flags, uint8_t *pdu, size_t len);
+uint16_t dec_exec_write_resp(const uint8_t *pdu, size_t len);
diff --git a/attrib/client.c b/attrib/client.c
index d9c1a2a..c438d7c 100644
--- a/attrib/client.c
+++ b/attrib/client.c
uint8_t *opdu;
guint handle;
uint16_t olen;
- int plen;
+ size_t plen;
if (len < 3) {
DBG("Malformed notification/indication packet (opcode 0x%02x)",
diff --git a/attrib/gatt.c b/attrib/gatt.c
index b7eb736..9ab283f 100644
--- a/attrib/gatt.c
+++ b/attrib/gatt.c
uint16_t u16;
uint128_t u128;
const void *value;
- int vlen;
+ size_t vlen;
/* Discover primary service by service UUID */
struct att_range *range;
uint8_t *buf;
guint16 oplen;
- int err = 0, buflen;
+ int err = 0;
+ size_t buflen;
if (status) {
err = status == ATT_ECODE_ATTR_NOT_FOUND ? 0 : status;
err = 0;
if (end != 0xffff) {
- int buflen;
+ size_t buflen;
uint8_t *buf = g_attrib_get_buffer(dp->attrib, &buflen);
guint16 oplen = encode_discover_primary(end + 1, 0xffff, NULL,
buf, buflen);
gpointer user_data)
{
struct discover_primary *dp;
- int buflen;
+ size_t buflen;
uint8_t *buf = g_attrib_get_buffer(attrib, &buflen);
GAttribResultFunc cb;
guint16 plen;
struct discover_char *dc = user_data;
struct att_data_list *list;
unsigned int i, err;
- int buflen;
+ size_t buflen;
uint8_t *buf;
guint16 oplen;
bt_uuid_t uuid;
bt_uuid_t *uuid, gatt_cb_t func,
gpointer user_data)
{
- int buflen;
+ size_t buflen;
uint8_t *buf = g_attrib_get_buffer(attrib, &buflen);
struct discover_char *dc;
bt_uuid_t type_uuid;
bt_uuid_t *uuid, GAttribResultFunc func,
gpointer user_data)
{
- int buflen;
+ size_t buflen;
uint8_t *buf = g_attrib_get_buffer(attrib, &buflen);
guint16 plen;
{
struct read_long_data *long_read = user_data;
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint8 *tmp;
guint16 plen;
guint id;
guint16 rlen, gpointer user_data)
{
struct read_long_data *long_read = user_data;
- int buflen;
+ size_t buflen;
uint8_t *buf = g_attrib_get_buffer(long_read->attrib, &buflen);
guint16 plen;
guint id;
GAttribResultFunc func, gpointer user_data)
{
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint16 plen;
guint id;
struct read_long_data *long_read;
guint16 handle;
uint16_t offset;
uint8_t *value;
- int vlen;
+ size_t vlen;
};
static guint execute_write(GAttrib *attrib, uint8_t flags,
GAttribResultFunc func, gpointer user_data)
{
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint16 plen;
buf = g_attrib_get_buffer(attrib, &buflen);
}
static guint prepare_write(GAttrib *attrib, uint16_t handle, uint16_t offset,
- uint8_t *value, int vlen, GAttribResultFunc func,
+ uint8_t *value, size_t vlen, GAttribResultFunc func,
gpointer user_data);
static void prepare_write_cb(guint8 status, const guint8 *rpdu,
}
static guint prepare_write(GAttrib *attrib, uint16_t handle, uint16_t offset,
- uint8_t *value, int vlen, GAttribResultFunc func,
+ uint8_t *value, size_t vlen, GAttribResultFunc func,
gpointer user_data)
{
guint16 plen;
- int buflen;
+ size_t buflen;
uint8_t *buf;
buf = g_attrib_get_buffer(attrib, &buflen);
}
guint gatt_write_char(GAttrib *attrib, uint16_t handle, uint8_t *value,
- int vlen, GAttribResultFunc func, gpointer user_data)
+ size_t vlen, GAttribResultFunc func, gpointer user_data)
{
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint16 plen;
struct write_long_data *long_write;
long_write->func = func;
long_write->user_data = user_data;
long_write->handle = handle;
- long_write->value = g_memdup(value,vlen);
+ long_write->value = g_memdup(value, vlen);
long_write->vlen = vlen;
return prepare_write(attrib, handle, long_write->offset, value, vlen,
gpointer user_data)
{
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint16 plen;
buf = g_attrib_get_buffer(attrib, &buflen);
GAttribResultFunc func, gpointer user_data)
{
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint16 plen;
buf = g_attrib_get_buffer(attrib, &buflen);
GDestroyNotify notify, gpointer user_data)
{
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint16 plen;
buf = g_attrib_get_buffer(attrib, &buflen);
diff --git a/attrib/gatt.h b/attrib/gatt.h
index aab93b6..7690fba 100644
--- a/attrib/gatt.h
+++ b/attrib/gatt.h
GAttribResultFunc func, gpointer user_data);
guint gatt_write_char(GAttrib *attrib, uint16_t handle, uint8_t *value,
- int vlen, GAttribResultFunc func, gpointer user_data);
+ size_t vlen, GAttribResultFunc func,
+ gpointer user_data);
guint gatt_find_info(GAttrib *attrib, uint16_t start, uint16_t end,
GAttribResultFunc func, gpointer user_data);
diff --git a/attrib/gattrib.c b/attrib/gattrib.c
index 00f59d7..c91f5e9 100644
--- a/attrib/gattrib.c
+++ b/attrib/gattrib.c
GIOChannel *io;
gint refs;
uint8_t *buf;
- int buflen;
+ size_t buflen;
guint read_watch;
guint write_watch;
guint timeout_watch;
return TRUE;
}
-uint8_t *g_attrib_get_buffer(GAttrib *attrib, int *len)
+uint8_t *g_attrib_get_buffer(GAttrib *attrib, size_t *len)
{
if (len == NULL)
return NULL;
diff --git a/attrib/gattrib.h b/attrib/gattrib.h
index f73b741..bcff039 100644
--- a/attrib/gattrib.h
+++ b/attrib/gattrib.h
gboolean g_attrib_is_encrypted(GAttrib *attrib);
-uint8_t *g_attrib_get_buffer(GAttrib *attrib, int *len);
+uint8_t *g_attrib_get_buffer(GAttrib *attrib, size_t *len);
gboolean g_attrib_set_mtu(GAttrib *attrib, int mtu);
gboolean g_attrib_unregister(GAttrib *attrib, guint id);
diff --git a/attrib/gatttool.c b/attrib/gatttool.c
index a11ca9f..416bb71 100644
--- a/attrib/gatttool.c
+++ b/attrib/gatttool.c
GAttrib *attrib = user_data;
uint8_t *opdu;
uint16_t handle, i, olen = 0;
- int plen;
+ size_t plen;
handle = att_get_u16(&pdu[1]);
diff --git a/attrib/interactive.c b/attrib/interactive.c
index 6cd8bd5..3e8a0d9 100644
--- a/attrib/interactive.c
+++ b/attrib/interactive.c
{
uint8_t *opdu;
uint16_t handle, i, olen;
- int plen;
+ size_t plen;
handle = att_get_u16(&pdu[1]);
diff --git a/profiles/thermometer/thermometer.c b/profiles/thermometer/thermometer.c
index 087662e..ad352a9 100644
--- a/profiles/thermometer/thermometer.c
+++ b/profiles/thermometer/thermometer.c
uint8_t *opdu;
uint16_t handle, olen;
GSList *l;
- int plen;
+ size_t plen;
if (len < 3) {
DBG("Bad pdu received");
diff --git a/profiles/time/server.c b/profiles/time/server.c
index d38b9b8..db97056 100644
--- a/profiles/time/server.c
+++ b/profiles/time/server.c
DBG("handle 0x%04x", a->handle);
if (a->len != 1)
- DBG("Invalid control point value size: %d", a->len);
+ DBG("Invalid control point value size: %zu", a->len);
switch (a->data[0]) {
case GET_REFERENCE_UPDATE:
diff --git a/src/attrib-server.c b/src/attrib-server.c
index 9064d15..bbed1a9 100644
--- a/src/attrib-server.c
+++ b/src/attrib-server.c
}
static struct attribute *attrib_db_add_new(struct gatt_server *server,
- uint16_t handle, bt_uuid_t *uuid, int read_reqs,
- int write_reqs, const uint8_t *value, int len)
+ uint16_t handle, bt_uuid_t *uuid,
+ size_t read_reqs, size_t write_reqs,
+ const uint8_t *value, size_t len)
{
struct attribute *a;
guint h = handle;
static uint16_t read_by_group(struct gatt_channel *channel, uint16_t start,
uint16_t end, bt_uuid_t *uuid,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
struct att_data_list *adl;
struct attribute *a;
static uint16_t read_by_type(struct gatt_channel *channel, uint16_t start,
uint16_t end, bt_uuid_t *uuid,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
struct att_data_list *adl;
GSList *l, *types;
return length;
}
-static int find_info(struct gatt_channel *channel, uint16_t start, uint16_t end,
- uint8_t *pdu, int len)
+static uint16_t find_info(struct gatt_channel *channel, uint16_t start,
+ uint16_t end, uint8_t *pdu, size_t len)
{
struct attribute *a;
struct att_data_list *adl;
return length;
}
-static int find_by_type(struct gatt_channel *channel, uint16_t start,
- uint16_t end, bt_uuid_t *uuid, const uint8_t *value,
- int vlen, uint8_t *opdu, int mtu)
+static uint16_t find_by_type(struct gatt_channel *channel, uint16_t start,
+ uint16_t end, bt_uuid_t *uuid,
+ const uint8_t *value, size_t vlen,
+ uint8_t *opdu, size_t mtu)
{
struct attribute *a;
struct att_range *range;
GSList *matches;
GList *dl, *database;
- int len;
+ uint16_t len;
if (start > end || start == 0x0000)
return enc_error_resp(ATT_OP_FIND_BY_TYPE_REQ, start,
}
static uint16_t read_value(struct gatt_channel *channel, uint16_t handle,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
struct attribute *a;
uint8_t status;
}
static uint16_t read_blob(struct gatt_channel *channel, uint16_t handle,
- uint16_t offset, uint8_t *pdu, int len)
+ uint16_t offset, uint8_t *pdu, size_t len)
{
struct attribute *a;
uint8_t status;
}
static uint16_t write_value(struct gatt_channel *channel, uint16_t handle,
- const uint8_t *value, int vlen,
- uint8_t *pdu, int len)
+ const uint8_t *value, size_t vlen,
+ uint8_t *pdu, size_t len)
{
struct attribute *a;
uint8_t status;
}
static uint16_t mtu_exchange(struct gatt_channel *channel, uint16_t mtu,
- uint8_t *pdu, int len)
+ uint8_t *pdu, size_t len)
{
GError *gerr = NULL;
GIOChannel *io;
uint16_t length, start, end, mtu, offset;
bt_uuid_t uuid;
uint8_t status = 0;
- int vlen;
+ size_t vlen;
DBG("op 0x%02x", ipdu[0]);
}
struct attribute *attrib_db_add(struct btd_adapter *adapter, uint16_t handle,
- bt_uuid_t *uuid, int read_reqs, int write_reqs,
- const uint8_t *value, int len)
+ bt_uuid_t *uuid, size_t read_reqs,
+ size_t write_reqs,
+ const uint8_t *value, size_t len)
{
GSList *l;
int attrib_db_update(struct btd_adapter *adapter, uint16_t handle,
bt_uuid_t *uuid, const uint8_t *value,
- int len, struct attribute **attr)
+ size_t len, struct attribute **attr)
{
struct gatt_server *server;
struct attribute *a;
}
int attrib_gap_set(struct btd_adapter *adapter, uint16_t uuid,
- const uint8_t *value, int len)
+ const uint8_t *value, size_t len)
{
struct gatt_server *server;
uint16_t handle;
diff --git a/src/attrib-server.h b/src/attrib-server.h
index 7af0cfa..3ec62ed 100644
--- a/src/attrib-server.h
+++ b/src/attrib-server.h
uint16_t attrib_db_find_avail(struct btd_adapter *adapter, bt_uuid_t *svc_uuid,
uint16_t nitems);
struct attribute *attrib_db_add(struct btd_adapter *adapter, uint16_t handle,
- bt_uuid_t *uuid, int read_reqs, int write_reqs,
- const uint8_t *value, int len);
+ bt_uuid_t *uuid, size_t read_reqs,
+ size_t write_reqs, const uint8_t *value,
+ size_t len);
int attrib_db_update(struct btd_adapter *adapter, uint16_t handle,
bt_uuid_t *uuid, const uint8_t *value,
- int len, struct attribute **attr);
+ size_t len, struct attribute **attr);
int attrib_db_del(struct btd_adapter *adapter, uint16_t handle);
int attrib_gap_set(struct btd_adapter *adapter, uint16_t uuid,
- const uint8_t *value, int len);
+ const uint8_t *value, size_t len);
uint32_t attrib_create_sdp(struct btd_adapter *adapter, uint16_t handle,
const char *name);
void attrib_free_sdp(uint32_t sdp_handle);