All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid
@ 2015-04-02 11:15 Grzegorz Kolodziejczyk
  2015-04-02 11:15 ` [PATCH 2/5] profiles/network: Use lib/uuid instead of operating on raw bnep msg Grzegorz Kolodziejczyk
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Grzegorz Kolodziejczyk @ 2015-04-02 11:15 UTC (permalink / raw)
  To: linux-bluetooth

This patch allows to cut bluetooth base if it's bluetooth base uuid.
If the uuid is bluetooth base, src uuid can be converted, otherwise
error is returned.
---
 lib/uuid.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 lib/uuid.h |  1 +
 2 files changed, 45 insertions(+)

diff --git a/lib/uuid.c b/lib/uuid.c
index fd61968..d2ad66d 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -73,6 +73,34 @@ static void bt_uuid32_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst)
 	memcpy(&dst->value.u128.data[BASE_UUID32_OFFSET], &be32, sizeof(be32));
 }
 
+static int bt_uuid128_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst)
+{
+	if (memcmp(&src->value.u128.data, &bluetooth_base_uuid.data, 2) ||
+					memcmp(&src->value.u128.data[4],
+					&bluetooth_base_uuid.data[4], 12))
+		return -EINVAL;
+
+	dst->type = BT_UUID16;
+
+	memcpy(&dst->value.u16, &src->value.u128.data[BASE_UUID16_OFFSET],
+							sizeof(uint16_t));
+
+	return 0;
+}
+
+static int bt_uuid32_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst)
+{
+	/* Bluetooth base have zeroized first two bytes */
+	if (src->value.u32 & 0xffff0000)
+		return -EINVAL;
+
+	dst->type = BT_UUID16;
+
+	dst->value.u16 = src->value.u32 & 0x0000ffff;
+
+	return 0;
+}
+
 void bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst)
 {
 	switch (src->type) {
@@ -91,6 +119,22 @@ void bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst)
 	}
 }
 
+int bt_uuid_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst)
+{
+	switch (src->type) {
+	case BT_UUID128:
+		return bt_uuid128_to_uuid16(src, dst);
+	case BT_UUID32:
+		return bt_uuid32_to_uuid16(src, dst);
+	case BT_UUID16:
+		*dst = *src;
+		return 0;
+	case BT_UUID_UNSPEC:
+	default:
+		return -EINVAL;
+	}
+}
+
 static int bt_uuid128_cmp(const bt_uuid_t *u1, const bt_uuid_t *u2)
 {
 	return memcmp(&u1->value.u128, &u2->value.u128, sizeof(uint128_t));
diff --git a/lib/uuid.h b/lib/uuid.h
index 2dcfe9e..26f8532 100644
--- a/lib/uuid.h
+++ b/lib/uuid.h
@@ -161,6 +161,7 @@ int bt_uuid128_create(bt_uuid_t *btuuid, uint128_t value);
 
 int bt_uuid_cmp(const bt_uuid_t *uuid1, const bt_uuid_t *uuid2);
 void bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst);
+int bt_uuid_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst);
 
 #define MAX_LEN_UUID_STR 37
 
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/5] profiles/network: Use lib/uuid instead of operating on raw bnep msg
  2015-04-02 11:15 [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
@ 2015-04-02 11:15 ` Grzegorz Kolodziejczyk
  2015-04-02 11:15 ` [PATCH 3/5] lib/uuid: Modify bt_uuid_to_le return value to uuid len Grzegorz Kolodziejczyk
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Grzegorz Kolodziejczyk @ 2015-04-02 11:15 UTC (permalink / raw)
  To: linux-bluetooth

This patch moves operation on uuids in setup to lib/uuid which handles
whole operations.
---
 profiles/network/bnep.c | 85 +++++++++++++++++++++++--------------------------
 1 file changed, 39 insertions(+), 46 deletions(-)

diff --git a/profiles/network/bnep.c b/profiles/network/bnep.c
index ab72021..5b031a1 100644
--- a/profiles/network/bnep.c
+++ b/profiles/network/bnep.c
@@ -114,16 +114,19 @@ static int bnep_conndel(const bdaddr_t *dst)
 	return 0;
 }
 
-static int bnep_connadd(int sk, uint16_t role, char *dev)
+static int bnep_connadd(int sk, bt_uuid_t *local_role, char *dev)
 {
 	struct bnep_connadd_req req;
+	bt_uuid_t uuid;
 
 	memset(&req, 0, sizeof(req));
 	strncpy(req.device, dev, 16);
 	req.device[15] = '\0';
 
+	bt_uuid_to_uuid16(local_role, &uuid);
+
 	req.sock = sk;
-	req.role = role;
+	req.role = uuid.value.u16;
 	if (ioctl(ctl, BNEPCONNADD, &req) < 0) {
 		int err = -errno;
 		error("bnep: Failed to add device %s: %s(%d)",
@@ -203,6 +206,7 @@ static gboolean bnep_setup_cb(GIOChannel *chan, GIOCondition cond,
 	char pkt[BNEP_MTU];
 	ssize_t r;
 	int sk;
+	bt_uuid_t local_role;
 
 	if (cond & G_IO_NVAL)
 		return FALSE;
@@ -257,7 +261,7 @@ static gboolean bnep_setup_cb(GIOChannel *chan, GIOCondition cond,
 	setsockopt(sk, SOL_SOCKET, SO_RCVTIMEO, &timeo, sizeof(timeo));
 
 	sk = g_io_channel_unix_get_fd(session->io);
-	if (bnep_connadd(sk, session->src, session->iface) < 0)
+	if (bnep_connadd(sk, &local_role, session->iface) < 0)
 		goto failed;
 
 	if (bnep_if_up(session->iface) < 0) {
@@ -522,13 +526,10 @@ static ssize_t bnep_send_ctrl_rsp(int sk, uint8_t ctrl, uint16_t resp)
 }
 
 static uint16_t bnep_setup_decode(int sk, struct bnep_setup_conn_req *req,
-								uint16_t *dst)
+								bt_uuid_t *dst)
 {
-	const uint8_t bt_base[] = { 0x00, 0x00, 0x10, 0x00, 0x80, 0x00,
-					0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB };
-	uint16_t src;
+	bt_uuid_t src, nap_uuid, gn_uuid, panu_uuid;
 	uint8_t *dest, *source;
-	uint32_t val;
 
 	if (req->type != BNEP_CONTROL || req->ctrl != BNEP_SETUP_CONN_REQ)
 		return BNEP_CONN_NOT_ALLOWED;
@@ -538,60 +539,52 @@ static uint16_t bnep_setup_decode(int sk, struct bnep_setup_conn_req *req,
 
 	switch (req->uuid_size) {
 	case 2: /* UUID16 */
-		*dst = get_be16(dest);
-		src = get_be16(source);
+		bt_uuid16_create(dst, get_be16(dest));
+		bt_uuid16_create(&src, get_be16(source));
 		break;
-	case 16: /* UUID128 */
-		/* Check that the bytes in the UUID, except the service ID
-		 * itself, are correct. The service ID is checked in
-		 * bnep_setup_chk(). */
-		if (memcmp(&dest[4], bt_base, sizeof(bt_base)) != 0)
-			return BNEP_CONN_INVALID_DST;
-		if (memcmp(&source[4], bt_base, sizeof(bt_base)) != 0)
-			return BNEP_CONN_INVALID_SRC;
-
-		/* Intentional no-break */
-
 	case 4: /* UUID32 */
-		val = get_be32(dest);
-		if (val > 0xffff)
-			return BNEP_CONN_INVALID_DST;
-
-		*dst = val;
-
-		val = get_be32(source);
-		if (val > 0xffff)
-			return BNEP_CONN_INVALID_SRC;
+		bt_uuid32_create(dst, get_be32(dest));
+		bt_uuid32_create(&src, get_be32(source));
+		break;
+	case 16: {/* UUID128 */
+		uint128_t tmp_src_uuid, tmp_dst_uuid;
 
-		src = val;
+		memcpy(tmp_dst_uuid.data, dest, sizeof(tmp_dst_uuid));
+		memcpy(tmp_src_uuid.data, dest, sizeof(tmp_src_uuid));
 		break;
+		}
 	default:
 		return BNEP_CONN_INVALID_SVC;
 	}
 
+	bt_uuid16_create(&nap_uuid, BNEP_SVC_NAP);
+	bt_uuid16_create(&gn_uuid, BNEP_SVC_GN);
+	bt_uuid16_create(&panu_uuid, BNEP_SVC_PANU);
+
 	/* Allowed PAN Profile scenarios */
-	switch (*dst) {
-	case BNEP_SVC_NAP:
-	case BNEP_SVC_GN:
-		if (src == BNEP_SVC_PANU)
+	if ((!bt_uuid_cmp(dst, &nap_uuid) || !bt_uuid_cmp(dst, &gn_uuid))) {
+		if (!bt_uuid_cmp(&src, &panu_uuid))
 			return BNEP_SUCCESS;
-		return BNEP_CONN_INVALID_SRC;
-	case BNEP_SVC_PANU:
-		if (src == BNEP_SVC_PANU || src == BNEP_SVC_GN ||
-							src == BNEP_SVC_NAP)
+		else
+			return BNEP_CONN_INVALID_SRC;
+	} else if (!bt_uuid_cmp(dst, &panu_uuid)) {
+		if (!bt_uuid_cmp(&src, &panu_uuid) ||
+					!bt_uuid_cmp(&src, &gn_uuid) ||
+					!bt_uuid_cmp(&src, &nap_uuid))
 			return BNEP_SUCCESS;
-
-		return BNEP_CONN_INVALID_SRC;
+		else
+			return BNEP_CONN_INVALID_SRC;
+	} else {
+		return BNEP_CONN_INVALID_DST;
 	}
-
-	return BNEP_CONN_INVALID_DST;
 }
 
 int bnep_server_add(int sk, char *bridge, char *iface, const bdaddr_t *addr,
 						uint8_t *setup_data, int len)
 {
 	int err;
-	uint16_t rsp, dst;
+	uint16_t rsp;
+	bt_uuid_t local_role;
 	struct bnep_setup_conn_req *req = (void *) setup_data;
 
 	/* Highest known Control command ID
@@ -609,7 +602,7 @@ int bnep_server_add(int sk, char *bridge, char *iface, const bdaddr_t *addr,
 	}
 
 	/* Processing BNEP_SETUP_CONNECTION_REQUEST_MSG */
-	rsp = bnep_setup_decode(sk, req, &dst);
+	rsp = bnep_setup_decode(sk, req, &local_role);
 	if (rsp != BNEP_SUCCESS) {
 		err = -rsp;
 		error("bnep: error while decoding setup connection request: %d",
@@ -617,7 +610,7 @@ int bnep_server_add(int sk, char *bridge, char *iface, const bdaddr_t *addr,
 		goto reply;
 	}
 
-	err = bnep_connadd(sk, dst, iface);
+	err = bnep_connadd(sk, &local_role, iface);
 	if (err < 0) {
 		rsp = BNEP_CONN_NOT_ALLOWED;
 		goto reply;
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/5] lib/uuid: Modify bt_uuid_to_le return value to uuid len
  2015-04-02 11:15 [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
  2015-04-02 11:15 ` [PATCH 2/5] profiles/network: Use lib/uuid instead of operating on raw bnep msg Grzegorz Kolodziejczyk
@ 2015-04-02 11:15 ` Grzegorz Kolodziejczyk
  2015-04-02 11:15 ` [PATCH 4/5] shared/gatt-db: Use lib/uuid uuid_to_le function Grzegorz Kolodziejczyk
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Grzegorz Kolodziejczyk @ 2015-04-02 11:15 UTC (permalink / raw)
  To: linux-bluetooth

This patch modifies return value of bt_uuid_to_le function to uuid
length in case of successful conversion.
---
 lib/uuid.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/uuid.c b/lib/uuid.c
index d2ad66d..b962adf 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -343,7 +343,7 @@ int bt_uuid_to_le(const bt_uuid_t *src, void *dst)
 	switch (src->type) {
 	case BT_UUID16:
 		bt_put_le16(src->value.u16, dst);
-		return 0;
+		return sizeof(src->value.u16);
 	case BT_UUID32:
 		bt_uuid32_to_uuid128(src, &uuid);
 		src = &uuid;
@@ -351,7 +351,7 @@ int bt_uuid_to_le(const bt_uuid_t *src, void *dst)
 	case BT_UUID128:
 		/* Convert from 128-bit BE to LE */
 		bswap_128(&src->value.u128, dst);
-		return 0;
+		return sizeof(src->value.u128);
 	case BT_UUID_UNSPEC:
 	default:
 		return -EINVAL;
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/5] shared/gatt-db: Use lib/uuid uuid_to_le function
  2015-04-02 11:15 [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
  2015-04-02 11:15 ` [PATCH 2/5] profiles/network: Use lib/uuid instead of operating on raw bnep msg Grzegorz Kolodziejczyk
  2015-04-02 11:15 ` [PATCH 3/5] lib/uuid: Modify bt_uuid_to_le return value to uuid len Grzegorz Kolodziejczyk
@ 2015-04-02 11:15 ` Grzegorz Kolodziejczyk
  2015-04-02 11:15 ` [PATCH 5/5] shared/gatt-db: Convert uuid32 to uuid128 in le_to_uuid Grzegorz Kolodziejczyk
  2015-05-04 13:56 ` [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
  4 siblings, 0 replies; 6+ messages in thread
From: Grzegorz Kolodziejczyk @ 2015-04-02 11:15 UTC (permalink / raw)
  To: linux-bluetooth

This patch replace internal function uuid_to_le with lib/uuid function
which does the same.
---
 src/shared/gatt-db.c | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/src/shared/gatt-db.c b/src/shared/gatt-db.c
index 2b2090c..f103c5a 100644
--- a/src/shared/gatt-db.c
+++ b/src/shared/gatt-db.c
@@ -335,20 +335,6 @@ bool gatt_db_isempty(struct gatt_db *db)
 	return queue_isempty(db->services);
 }
 
-static int uuid_to_le(const bt_uuid_t *uuid, uint8_t *dst)
-{
-	bt_uuid_t uuid128;
-
-	if (uuid->type == BT_UUID16) {
-		put_le16(uuid->value.u16, dst);
-		return bt_uuid_len(uuid);
-	}
-
-	bt_uuid_to_uuid128(uuid, &uuid128);
-	bswap_128(&uuid128.value.u128, dst);
-	return bt_uuid_len(&uuid128);
-}
-
 static bool le_to_uuid(const uint8_t *src, size_t len, bt_uuid_t *uuid)
 {
 	uint128_t u128;
@@ -400,7 +386,7 @@ static struct gatt_db_service *gatt_db_service_create(const bt_uuid_t *uuid,
 	else
 		type = &secondary_service_uuid;
 
-	len = uuid_to_le(uuid, value);
+	len = bt_uuid_to_le(uuid, value);
 
 	service->attributes[0] = new_attribute(service, handle, type, value,
 									len);
@@ -698,7 +684,7 @@ service_insert_characteristic(struct gatt_db_service *service,
 	/* We set handle of characteristic value, which will be added next */
 	put_le16(handle, &value[1]);
 	len += sizeof(uint16_t);
-	len += uuid_to_le(uuid, &value[3]);
+	len += bt_uuid_to_le(uuid, &value[3]);
 
 	service->attributes[i] = new_attribute(service, handle - 1,
 							&characteristic_uuid,
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 5/5] shared/gatt-db: Convert uuid32 to uuid128 in le_to_uuid
  2015-04-02 11:15 [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
                   ` (2 preceding siblings ...)
  2015-04-02 11:15 ` [PATCH 4/5] shared/gatt-db: Use lib/uuid uuid_to_le function Grzegorz Kolodziejczyk
@ 2015-04-02 11:15 ` Grzegorz Kolodziejczyk
  2015-05-04 13:56 ` [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
  4 siblings, 0 replies; 6+ messages in thread
From: Grzegorz Kolodziejczyk @ 2015-04-02 11:15 UTC (permalink / raw)
  To: linux-bluetooth

This patch refactor le_to_uuid function and convert 32-bit uuid value to
128-bit value then swap bytes. This is needed since we don't handle
32-bit uuid values.
---
 src/shared/gatt-db.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/shared/gatt-db.c b/src/shared/gatt-db.c
index f103c5a..295d6cc 100644
--- a/src/shared/gatt-db.c
+++ b/src/shared/gatt-db.c
@@ -337,25 +337,25 @@ bool gatt_db_isempty(struct gatt_db *db)
 
 static bool le_to_uuid(const uint8_t *src, size_t len, bt_uuid_t *uuid)
 {
+	bt_uuid_t uuid128, uuid32;
 	uint128_t u128;
 
-	if (len == 2) {
+	switch (len) {
+	case 2:
 		bt_uuid16_create(uuid, get_le16(src));
 		return true;
-	}
-
-	if (len == 4) {
-		bt_uuid32_create(uuid, get_le32(src));
+	case 4:
+		bt_uuid32_create(&uuid32, get_le32(src));
+		bt_uuid_to_uuid128(&uuid32, &uuid128);
+		src = uuid128.value.u128.data;
+		/* Fallthrough */
+	case 16:
+		bswap_128(src, &u128);
+		bt_uuid128_create(uuid, u128);
 		return true;
-	}
-
-	if (len != 16)
+	default:
 		return false;
-
-	bswap_128(src, &u128);
-	bt_uuid128_create(uuid, u128);
-
-	return true;
+	}
 }
 
 static struct gatt_db_service *gatt_db_service_create(const bt_uuid_t *uuid,
-- 
2.1.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid
  2015-04-02 11:15 [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
                   ` (3 preceding siblings ...)
  2015-04-02 11:15 ` [PATCH 5/5] shared/gatt-db: Convert uuid32 to uuid128 in le_to_uuid Grzegorz Kolodziejczyk
@ 2015-05-04 13:56 ` Grzegorz Kolodziejczyk
  4 siblings, 0 replies; 6+ messages in thread
From: Grzegorz Kolodziejczyk @ 2015-05-04 13:56 UTC (permalink / raw)
  To: linux-bluetooth

ping

On 2 April 2015 at 13:15, Grzegorz Kolodziejczyk
<grzegorz.kolodziejczyk@tieto.com> wrote:
> This patch allows to cut bluetooth base if it's bluetooth base uuid.
> If the uuid is bluetooth base, src uuid can be converted, otherwise
> error is returned.
> ---
>  lib/uuid.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  lib/uuid.h |  1 +
>  2 files changed, 45 insertions(+)
>
> diff --git a/lib/uuid.c b/lib/uuid.c
> index fd61968..d2ad66d 100644
> --- a/lib/uuid.c
> +++ b/lib/uuid.c
> @@ -73,6 +73,34 @@ static void bt_uuid32_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst)
>         memcpy(&dst->value.u128.data[BASE_UUID32_OFFSET], &be32, sizeof(be32));
>  }
>
> +static int bt_uuid128_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst)
> +{
> +       if (memcmp(&src->value.u128.data, &bluetooth_base_uuid.data, 2) ||
> +                                       memcmp(&src->value.u128.data[4],
> +                                       &bluetooth_base_uuid.data[4], 12))
> +               return -EINVAL;
> +
> +       dst->type = BT_UUID16;
> +
> +       memcpy(&dst->value.u16, &src->value.u128.data[BASE_UUID16_OFFSET],
> +                                                       sizeof(uint16_t));
> +
> +       return 0;
> +}
> +
> +static int bt_uuid32_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst)
> +{
> +       /* Bluetooth base have zeroized first two bytes */
> +       if (src->value.u32 & 0xffff0000)
> +               return -EINVAL;
> +
> +       dst->type = BT_UUID16;
> +
> +       dst->value.u16 = src->value.u32 & 0x0000ffff;
> +
> +       return 0;
> +}
> +
>  void bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst)
>  {
>         switch (src->type) {
> @@ -91,6 +119,22 @@ void bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst)
>         }
>  }
>
> +int bt_uuid_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst)
> +{
> +       switch (src->type) {
> +       case BT_UUID128:
> +               return bt_uuid128_to_uuid16(src, dst);
> +       case BT_UUID32:
> +               return bt_uuid32_to_uuid16(src, dst);
> +       case BT_UUID16:
> +               *dst = *src;
> +               return 0;
> +       case BT_UUID_UNSPEC:
> +       default:
> +               return -EINVAL;
> +       }
> +}
> +
>  static int bt_uuid128_cmp(const bt_uuid_t *u1, const bt_uuid_t *u2)
>  {
>         return memcmp(&u1->value.u128, &u2->value.u128, sizeof(uint128_t));
> diff --git a/lib/uuid.h b/lib/uuid.h
> index 2dcfe9e..26f8532 100644
> --- a/lib/uuid.h
> +++ b/lib/uuid.h
> @@ -161,6 +161,7 @@ int bt_uuid128_create(bt_uuid_t *btuuid, uint128_t value);
>
>  int bt_uuid_cmp(const bt_uuid_t *uuid1, const bt_uuid_t *uuid2);
>  void bt_uuid_to_uuid128(const bt_uuid_t *src, bt_uuid_t *dst);
> +int bt_uuid_to_uuid16(const bt_uuid_t *src, bt_uuid_t *dst);
>
>  #define MAX_LEN_UUID_STR 37
>
> --
> 2.1.0
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-05-04 13:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-02 11:15 [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk
2015-04-02 11:15 ` [PATCH 2/5] profiles/network: Use lib/uuid instead of operating on raw bnep msg Grzegorz Kolodziejczyk
2015-04-02 11:15 ` [PATCH 3/5] lib/uuid: Modify bt_uuid_to_le return value to uuid len Grzegorz Kolodziejczyk
2015-04-02 11:15 ` [PATCH 4/5] shared/gatt-db: Use lib/uuid uuid_to_le function Grzegorz Kolodziejczyk
2015-04-02 11:15 ` [PATCH 5/5] shared/gatt-db: Convert uuid32 to uuid128 in le_to_uuid Grzegorz Kolodziejczyk
2015-05-04 13:56 ` [PATCH 1/5] lib/uuid: Add uuid conversion to 16 bit uuid Grzegorz Kolodziejczyk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.