Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCHv3 0/4] decode fixed channels
@ 2011-10-17  8:20 Emeltchenko Andrei
  2011-10-17  8:20 ` [PATCHv3 1/4] add btohll macro Emeltchenko Andrei
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Emeltchenko Andrei @ 2011-10-17  8:20 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Decode fixed channels in L2CAP Information Response

Changes:
	v2: split headers to different patch per request
	v3: separate patch adding 64 bit get_val, fixing issues
	with type conversion

Andrei Emeltchenko (4):
  add btohll macro
  add fixed channel definitions
  add 64 bit get_val support
  decode fixed channel list info rsp

 lib/bluetooth.h |    4 ++++
 lib/l2cap.h     |    5 +++++
 parser/l2cap.c  |   40 +++++++++++++++++++++++++++++-----------
 3 files changed, 38 insertions(+), 11 deletions(-)

-- 
1.7.4.1


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

* [PATCHv3 1/4] add btohll macro
  2011-10-17  8:20 [PATCHv3 0/4] decode fixed channels Emeltchenko Andrei
@ 2011-10-17  8:20 ` Emeltchenko Andrei
  2011-10-17 15:32   ` Marcel Holtmann
  2011-10-17  8:21 ` [PATCHv3 2/4] add fixed channel definitions Emeltchenko Andrei
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 12+ messages in thread
From: Emeltchenko Andrei @ 2011-10-17  8:20 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

handle 64 bit swap
---
 lib/bluetooth.h |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/lib/bluetooth.h b/lib/bluetooth.h
index 738e07a..b0680e2 100644
--- a/lib/bluetooth.h
+++ b/lib/bluetooth.h
@@ -93,13 +93,17 @@ enum {
 #if __BYTE_ORDER == __LITTLE_ENDIAN
 #define htobs(d)  (d)
 #define htobl(d)  (d)
+#define htobll(d) (d)
 #define btohs(d)  (d)
 #define btohl(d)  (d)
+#define btohll(d) (d)
 #elif __BYTE_ORDER == __BIG_ENDIAN
 #define htobs(d)  bswap_16(d)
 #define htobl(d)  bswap_32(d)
+#define htobll(d) bswap_64(d)
 #define btohs(d)  bswap_16(d)
 #define btohl(d)  bswap_32(d)
+#define btohll(d) bswap_64(d)
 #else
 #error "Unknown byte order"
 #endif
-- 
1.7.4.1


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

* [PATCHv3 2/4] add fixed channel definitions
  2011-10-17  8:20 [PATCHv3 0/4] decode fixed channels Emeltchenko Andrei
  2011-10-17  8:20 ` [PATCHv3 1/4] add btohll macro Emeltchenko Andrei
@ 2011-10-17  8:21 ` Emeltchenko Andrei
  2011-10-17 15:29   ` Marcel Holtmann
  2011-10-17  8:21 ` [PATCHv3 3/4] add 64 bit get_val support Emeltchenko Andrei
  2011-10-17  8:21 ` [PATCHv3 4/4] decode fixed channel list info rsp Emeltchenko Andrei
  3 siblings, 1 reply; 12+ messages in thread
From: Emeltchenko Andrei @ 2011-10-17  8:21 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

---
 lib/l2cap.h |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/lib/l2cap.h b/lib/l2cap.h
index 47b3dc3..3880551 100644
--- a/lib/l2cap.h
+++ b/lib/l2cap.h
@@ -139,6 +139,11 @@ struct l2cap_conninfo {
 
 #define L2CAP_SDULEN_SIZE	2
 
+/* L2CAP fixed channels */
+#define L2CAP_FC_L2CAP		0x02
+#define L2CAP_FC_CONNLESS	0x04
+#define L2CAP_FC_A2MP		0x08
+
 /* L2CAP structures */
 typedef struct {
 	uint16_t	len;
-- 
1.7.4.1


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

* [PATCHv3 3/4] add 64 bit get_val support
  2011-10-17  8:20 [PATCHv3 0/4] decode fixed channels Emeltchenko Andrei
  2011-10-17  8:20 ` [PATCHv3 1/4] add btohll macro Emeltchenko Andrei
  2011-10-17  8:21 ` [PATCHv3 2/4] add fixed channel definitions Emeltchenko Andrei
@ 2011-10-17  8:21 ` Emeltchenko Andrei
  2011-10-17 15:31   ` Marcel Holtmann
  2011-10-17  8:21 ` [PATCHv3 4/4] decode fixed channel list info rsp Emeltchenko Andrei
  3 siblings, 1 reply; 12+ messages in thread
From: Emeltchenko Andrei @ 2011-10-17  8:21 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

---
 parser/l2cap.c |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/parser/l2cap.c b/parser/l2cap.c
index 6a5a4b2..e1fc1f8 100644
--- a/parser/l2cap.c
+++ b/parser/l2cap.c
@@ -232,7 +232,7 @@ static uint8_t get_ext_ctrl(int in, uint16_t handle, uint16_t cid)
 	return 0;
 }
 
-static uint32_t get_val(uint8_t *ptr, uint8_t len)
+static uint64_t get_val(uint8_t *ptr, uint8_t len)
 {
 	switch (len) {
 	case 1:
@@ -241,6 +241,8 @@ static uint32_t get_val(uint8_t *ptr, uint8_t len)
 		return btohs(bt_get_unaligned((uint16_t *) ptr));
 	case 4:
 		return btohl(bt_get_unaligned((uint32_t *) ptr));
+	case 8:
+		return btohll(bt_get_unaligned((uint64_t *) ptr));
 	}
 	return 0;
 }
@@ -409,7 +411,7 @@ static inline void command_rej(int level, struct frame *frm)
 
 	switch (reason) {
 	case 0x0001:
-		printf(" mtu %d\n", get_val(frm->ptr + L2CAP_CMD_REJ_SIZE, 2));
+		printf(" mtu %d\n", (uint16_t) get_val(frm->ptr + L2CAP_CMD_REJ_SIZE, 2));
 		break;
 	case 0x0002:
 		cid = get_val(frm->ptr + L2CAP_CMD_REJ_SIZE, 4);
@@ -552,13 +554,13 @@ static void conf_opt(int level, void *ptr, int len, int in, uint16_t handle,
 			set_mode(in, handle, cid, 0x00);
 			printf("MTU");
 			if (h->len > 0)
-				printf(" %d", get_val(h->val, h->len));
+				printf(" %d", (uint16_t) get_val(h->val, h->len));
 			break;
 
 		case L2CAP_CONF_FLUSH_TO:
 			printf("FlushTO");
 			if (h->len > 0)
-				printf(" %d", get_val(h->val, h->len));
+				printf(" %d", (uint16_t) get_val(h->val, h->len));
 			break;
 
 		case L2CAP_CONF_QOS:
@@ -582,7 +584,7 @@ static void conf_opt(int level, void *ptr, int len, int in, uint16_t handle,
 		case L2CAP_CONF_EWS:
 			printf("EWS");
 			if (h->len > 0)
-				printf(" %d", get_val(h->val, h->len));
+				printf(" %d", (uint16_t) get_val(h->val, h->len));
 			set_ext_ctrl(in, handle, cid, 1);
 			break;
 
@@ -727,18 +729,18 @@ static inline void echo_rsp(int level, l2cap_cmd_hdr *cmd, struct frame *frm)
 
 static void info_opt(int level, int type, void *ptr, int len)
 {
-	uint32_t mask;
+	uint64_t mask;
 	int i;
 
 	p_indent(level, 0);
 
 	switch (type) {
 	case 0x0001:
-		printf("Connectionless MTU %d\n", get_val(ptr, len));
+		printf("Connectionless MTU %d\n", (uint16_t) get_val(ptr, len));
 		break;
 	case 0x0002:
 		mask = get_val(ptr, len);
-		printf("Extended feature mask 0x%4.4x\n", mask);
+		printf("Extended feature mask 0x%4.4x\n", (uint32_t) mask);
 		if (parser.flags & DUMP_VERBOSE)
 			for (i=0; l2cap_features[i].name; i++)
 				if (mask & l2cap_features[i].flag) {
-- 
1.7.4.1


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

* [PATCHv3 4/4] decode fixed channel list info rsp
  2011-10-17  8:20 [PATCHv3 0/4] decode fixed channels Emeltchenko Andrei
                   ` (2 preceding siblings ...)
  2011-10-17  8:21 ` [PATCHv3 3/4] add 64 bit get_val support Emeltchenko Andrei
@ 2011-10-17  8:21 ` Emeltchenko Andrei
  3 siblings, 0 replies; 12+ messages in thread
From: Emeltchenko Andrei @ 2011-10-17  8:21 UTC (permalink / raw)
  To: linux-bluetooth

From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>

Decode fixed channels in information response

< ACL data: handle 1 flags 0x00 dlen 10
    L2CAP(s): Info req: type 3
> ACL data: handle 1 flags 0x02 dlen 20
    L2CAP(s): Info rsp: type 3 result 0
      Fixed channel list 0x0000000a
        L2CAP Signalling Channel
        AMP Manager Protocol
---
 parser/l2cap.c |   22 +++++++++++++++++++---
 1 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/parser/l2cap.c b/parser/l2cap.c
index e1fc1f8..3597058 100644
--- a/parser/l2cap.c
+++ b/parser/l2cap.c
@@ -61,10 +61,12 @@ static cid_info cid_table[2][CID_TABLE_SIZE];
 #define DCID cid_table[1]
 
 /* Can we move this to l2cap.h? */
-static struct {
+struct features {
 	char	*name;
 	int	flag;
-} l2cap_features[] = {
+};
+
+static struct features l2cap_features[] = {
 	{ "Flow control mode",			L2CAP_FEAT_FLOWCTL	},
 	{ "Retransmission mode",		L2CAP_FEAT_RETRANS	},
 	{ "Bi-directional QoS",			L2CAP_FEAT_BIDIR_QOS	},
@@ -78,6 +80,13 @@ static struct {
 	{ 0 }
 };
 
+static struct features l2cap_fix_chan[] = {
+	{ "L2CAP Signalling Channel",		L2CAP_FC_L2CAP		},
+	{ "L2CAP Connless",			L2CAP_FC_CONNLESS	},
+	{ "AMP Manager Protocol",		L2CAP_FC_A2MP		},
+	{ 0 }
+};
+
 static struct frame *add_handle(uint16_t handle)
 {
 	register handle_info *t = handle_table;
@@ -749,7 +758,14 @@ static void info_opt(int level, int type, void *ptr, int len)
 				}
 		break;
 	case 0x0003:
-		printf("Fixed channel list\n");
+		mask = get_val(ptr, len);
+		printf("Fixed channel list 0x%8.8llx\n", mask);
+		if (parser.flags & DUMP_VERBOSE)
+			for (i=0; l2cap_fix_chan[i].name; i++)
+				if (mask & l2cap_fix_chan[i].flag) {
+					p_indent(level + 1, 0);
+					printf("%s\n", l2cap_fix_chan[i].name);
+				}
 		break;
 	default:
 		printf("Unknown (len %d)\n", len);
-- 
1.7.4.1


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

* Re: [PATCHv3 2/4] add fixed channel definitions
  2011-10-17  8:21 ` [PATCHv3 2/4] add fixed channel definitions Emeltchenko Andrei
@ 2011-10-17 15:29   ` Marcel Holtmann
  0 siblings, 0 replies; 12+ messages in thread
From: Marcel Holtmann @ 2011-10-17 15:29 UTC (permalink / raw)
  To: Emeltchenko Andrei; +Cc: linux-bluetooth

Hi Andrei,

>  lib/l2cap.h |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/lib/l2cap.h b/lib/l2cap.h
> index 47b3dc3..3880551 100644
> --- a/lib/l2cap.h
> +++ b/lib/l2cap.h
> @@ -139,6 +139,11 @@ struct l2cap_conninfo {
>  
>  #define L2CAP_SDULEN_SIZE	2
>  
> +/* L2CAP fixed channels */
> +#define L2CAP_FC_L2CAP		0x02
> +#define L2CAP_FC_CONNLESS	0x04
> +#define L2CAP_FC_A2MP		0x08
> +

please get these added to bluez.git first and then send exactly the same
patch to add them here (once accepted).

Also please add also LE, LE signaling, AMP test manager as well. Just
make sure the list is complete according to 4.0 specification and
assigned numbers list.

Regards

Marcel



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

* Re: [PATCHv3 3/4] add 64 bit get_val support
  2011-10-17  8:21 ` [PATCHv3 3/4] add 64 bit get_val support Emeltchenko Andrei
@ 2011-10-17 15:31   ` Marcel Holtmann
  2011-10-18  6:33     ` Emeltchenko Andrei
  0 siblings, 1 reply; 12+ messages in thread
From: Marcel Holtmann @ 2011-10-17 15:31 UTC (permalink / raw)
  To: Emeltchenko Andrei; +Cc: linux-bluetooth

Hi Andrei,

>  parser/l2cap.c |   18 ++++++++++--------
>  1 files changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/parser/l2cap.c b/parser/l2cap.c
> index 6a5a4b2..e1fc1f8 100644
> --- a/parser/l2cap.c
> +++ b/parser/l2cap.c
> @@ -232,7 +232,7 @@ static uint8_t get_ext_ctrl(int in, uint16_t handle, uint16_t cid)
>  	return 0;
>  }
>  
> -static uint32_t get_val(uint8_t *ptr, uint8_t len)
> +static uint64_t get_val(uint8_t *ptr, uint8_t len)
>  {
>  	switch (len) {
>  	case 1:
> @@ -241,6 +241,8 @@ static uint32_t get_val(uint8_t *ptr, uint8_t len)
>  		return btohs(bt_get_unaligned((uint16_t *) ptr));
>  	case 4:
>  		return btohl(bt_get_unaligned((uint32_t *) ptr));
> +	case 8:
> +		return btohll(bt_get_unaligned((uint64_t *) ptr));
>  	}
>  	return 0;
>  }

turning everything into a uint64 is a bit heavy. Just change this into
broken down version. get_uint64, get_uint32, get_uint16 etc. Otherwise
you keep casting yourself crazy.

Regards

Marcel



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

* Re: [PATCHv3 1/4] add btohll macro
  2011-10-17  8:20 ` [PATCHv3 1/4] add btohll macro Emeltchenko Andrei
@ 2011-10-17 15:32   ` Marcel Holtmann
  0 siblings, 0 replies; 12+ messages in thread
From: Marcel Holtmann @ 2011-10-17 15:32 UTC (permalink / raw)
  To: Emeltchenko Andrei; +Cc: linux-bluetooth

Hi Andrei,

> From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
> 
> handle 64 bit swap

get this first merged into bluez.git and then backport it.

Regards

Marcel



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

* Re: [PATCHv3 3/4] add 64 bit get_val support
  2011-10-17 15:31   ` Marcel Holtmann
@ 2011-10-18  6:33     ` Emeltchenko Andrei
  2011-10-18 15:53       ` Marcel Holtmann
  0 siblings, 1 reply; 12+ messages in thread
From: Emeltchenko Andrei @ 2011-10-18  6:33 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth

Hi Marcel,

On Mon, Oct 17, 2011 at 08:31:08AM -0700, Marcel Holtmann wrote:
> Hi Andrei,
> 
> >  parser/l2cap.c |   18 ++++++++++--------
> >  1 files changed, 10 insertions(+), 8 deletions(-)
> > 
> > diff --git a/parser/l2cap.c b/parser/l2cap.c
> > index 6a5a4b2..e1fc1f8 100644
> > --- a/parser/l2cap.c
> > +++ b/parser/l2cap.c
> > @@ -232,7 +232,7 @@ static uint8_t get_ext_ctrl(int in, uint16_t handle, uint16_t cid)
> >  	return 0;
> >  }
> >  
> > -static uint32_t get_val(uint8_t *ptr, uint8_t len)
> > +static uint64_t get_val(uint8_t *ptr, uint8_t len)
> >  {
> >  	switch (len) {
> >  	case 1:
> > @@ -241,6 +241,8 @@ static uint32_t get_val(uint8_t *ptr, uint8_t len)
> >  		return btohs(bt_get_unaligned((uint16_t *) ptr));
> >  	case 4:
> >  		return btohl(bt_get_unaligned((uint32_t *) ptr));
> > +	case 8:
> > +		return btohll(bt_get_unaligned((uint64_t *) ptr));
> >  	}
> >  	return 0;
> >  }
> 
> turning everything into a uint64 is a bit heavy. Just change this into
> broken down version. get_uint64, get_uint32, get_uint16 etc. Otherwise
> you keep casting yourself crazy.

Yes, casting does not look nice. What about if I keep everything AS IS and
just use btohll(bt_get_unaligned((ptr)) to access 64 bit value.

Best regards 
Andrei Emeltchenko 

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

* Re: [PATCHv3 3/4] add 64 bit get_val support
  2011-10-18  6:33     ` Emeltchenko Andrei
@ 2011-10-18 15:53       ` Marcel Holtmann
  2011-10-19  7:59         ` Emeltchenko Andrei
  0 siblings, 1 reply; 12+ messages in thread
From: Marcel Holtmann @ 2011-10-18 15:53 UTC (permalink / raw)
  To: Emeltchenko Andrei; +Cc: linux-bluetooth

Hi Andrei,

> > >  parser/l2cap.c |   18 ++++++++++--------
> > >  1 files changed, 10 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/parser/l2cap.c b/parser/l2cap.c
> > > index 6a5a4b2..e1fc1f8 100644
> > > --- a/parser/l2cap.c
> > > +++ b/parser/l2cap.c
> > > @@ -232,7 +232,7 @@ static uint8_t get_ext_ctrl(int in, uint16_t handle, uint16_t cid)
> > >  	return 0;
> > >  }
> > >  
> > > -static uint32_t get_val(uint8_t *ptr, uint8_t len)
> > > +static uint64_t get_val(uint8_t *ptr, uint8_t len)
> > >  {
> > >  	switch (len) {
> > >  	case 1:
> > > @@ -241,6 +241,8 @@ static uint32_t get_val(uint8_t *ptr, uint8_t len)
> > >  		return btohs(bt_get_unaligned((uint16_t *) ptr));
> > >  	case 4:
> > >  		return btohl(bt_get_unaligned((uint32_t *) ptr));
> > > +	case 8:
> > > +		return btohll(bt_get_unaligned((uint64_t *) ptr));
> > >  	}
> > >  	return 0;
> > >  }
> > 
> > turning everything into a uint64 is a bit heavy. Just change this into
> > broken down version. get_uint64, get_uint32, get_uint16 etc. Otherwise
> > you keep casting yourself crazy.
> 
> Yes, casting does not look nice. What about if I keep everything AS IS and
> just use btohll(bt_get_unaligned((ptr)) to access 64 bit value.

this does not make it more readable. Create helpers like get_uint64 for
it.

Regards

Marcel



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

* Re: [PATCHv3 3/4] add 64 bit get_val support
  2011-10-18 15:53       ` Marcel Holtmann
@ 2011-10-19  7:59         ` Emeltchenko Andrei
  2011-10-19 15:59           ` Marcel Holtmann
  0 siblings, 1 reply; 12+ messages in thread
From: Emeltchenko Andrei @ 2011-10-19  7:59 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth

Hi Marcel,

On Tue, Oct 18, 2011 at 08:53:51AM -0700, Marcel Holtmann wrote:
> > > > +	case 8:
> > > > +		return btohll(bt_get_unaligned((uint64_t *) ptr));
> > > >  	}
> > > >  	return 0;
> > > >  }
> > > 
> > > turning everything into a uint64 is a bit heavy. Just change this into
> > > broken down version. get_uint64, get_uint32, get_uint16 etc. Otherwise
> > > you keep casting yourself crazy.
> > 
> > Yes, casting does not look nice. What about if I keep everything AS IS and
> > just use btohll(bt_get_unaligned((ptr)) to access 64 bit value.
> 
> this does not make it more readable. Create helpers like get_uint64 for
> it.

Is this OK:

--- a/parser/parser.h
+++ b/parser/parser.h
...
+static inline uint64_t get_uint64(void *ptr)
+{
+       return btohll(bt_get_unaligned((uint64_t *) ptr));
+}
...

--- a/parser/l2cap.c
+++ b/parser/l2cap.c
...
        case 0x0003:
-               fc_mask = btohll(bt_get_unaligned((uint64_t *) ptr));
+               fc_mask = get_uint64(ptr);
...

Best regards 
Andrei Emeltchenko 
 

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

* Re: [PATCHv3 3/4] add 64 bit get_val support
  2011-10-19  7:59         ` Emeltchenko Andrei
@ 2011-10-19 15:59           ` Marcel Holtmann
  0 siblings, 0 replies; 12+ messages in thread
From: Marcel Holtmann @ 2011-10-19 15:59 UTC (permalink / raw)
  To: Emeltchenko Andrei; +Cc: linux-bluetooth

Hi Andrei,

> > > > > +	case 8:
> > > > > +		return btohll(bt_get_unaligned((uint64_t *) ptr));
> > > > >  	}
> > > > >  	return 0;
> > > > >  }
> > > > 
> > > > turning everything into a uint64 is a bit heavy. Just change this into
> > > > broken down version. get_uint64, get_uint32, get_uint16 etc. Otherwise
> > > > you keep casting yourself crazy.
> > > 
> > > Yes, casting does not look nice. What about if I keep everything AS IS and
> > > just use btohll(bt_get_unaligned((ptr)) to access 64 bit value.
> > 
> > this does not make it more readable. Create helpers like get_uint64 for
> > it.
> 
> Is this OK:
> 
> --- a/parser/parser.h
> +++ b/parser/parser.h
> ...
> +static inline uint64_t get_uint64(void *ptr)
> +{
> +       return btohll(bt_get_unaligned((uint64_t *) ptr));
> +}
> ...

that would be fine with me.

And if you wanna go all out, then you could fix the weird SDP big-endian
conversion/handling that is lingering around the source code and all
parsers for a while now.

Maybe just something like get_le64, get_le32, get_be32 etc. Think about
it a little bit and if you are up for some major cleanup task.

Regards

Marcel



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

end of thread, other threads:[~2011-10-19 15:59 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-17  8:20 [PATCHv3 0/4] decode fixed channels Emeltchenko Andrei
2011-10-17  8:20 ` [PATCHv3 1/4] add btohll macro Emeltchenko Andrei
2011-10-17 15:32   ` Marcel Holtmann
2011-10-17  8:21 ` [PATCHv3 2/4] add fixed channel definitions Emeltchenko Andrei
2011-10-17 15:29   ` Marcel Holtmann
2011-10-17  8:21 ` [PATCHv3 3/4] add 64 bit get_val support Emeltchenko Andrei
2011-10-17 15:31   ` Marcel Holtmann
2011-10-18  6:33     ` Emeltchenko Andrei
2011-10-18 15:53       ` Marcel Holtmann
2011-10-19  7:59         ` Emeltchenko Andrei
2011-10-19 15:59           ` Marcel Holtmann
2011-10-17  8:21 ` [PATCHv3 4/4] decode fixed channel list info rsp Emeltchenko Andrei

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox