DPDK patches and discussions
 help / color / mirror / Atom feed
* Re: [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced?
@ 2013-06-12 12:23 lxu
  2013-06-12 13:39 ` Thomas Monjalon
  0 siblings, 1 reply; 5+ messages in thread
From: lxu @ 2013-06-12 12:23 UTC (permalink / raw)
  To: Olivier MATZ, dev

[-- Attachment #1: Type: text/plain, Size: 1421 bytes --]

Great! Thanks for the quick feedback.




------------------ Original ------------------
From:  "Olivier MATZ"<olivier.matz@6wind.com>;
Date:  Wed, Jun 12, 2013 05:17 PM
To:  "dev"<dev@dpdk.org>; 
Cc:  "lxu"<lxu4net@qq.com>; 
Subject:  Re: [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced?



Hello,

> Can we change the struct rte_eth_txmode ?
>
> Such as :
>
> struct rte_eth_txmode { int reserve[]; };   /* sizeof(struct rte_eth_txmode) == 0 in gcc and g++ */

I agree with your solution. Do you approve the following patch ?

From: lxu <lxu4net@qq.com>
Date: Wed, 12 Jun 2013 09:32:30 +0200
Subject: [PATCH] ethdev: force the size of struct rte_eth_txmode to be 0

The size of an empty structure is 0 when compiling with gcc, and 1 when
compiling with g++. Adding an empty table forces the size fo be 0, in C
or C++.

Acked-by: Olivier Matz <olivier.matz@6wind.com>
Signed-off-by: lxu <lxu4net@qq.com>
---
  lib/librte_ether/rte_ethdev.h |    1 +
  1 file changed, 1 insertion(+)

diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 5985496..e0a1ccf 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -320,6 +320,7 @@ struct rte_eth_vmdq_dcb_conf {
   * For future extensions.
   */
  struct rte_eth_txmode {
+       int reserved[]; /* force the size of struct to be 0 */
  };

  /**
-- 
1.7.10.4

[-- Attachment #2: Type: text/html, Size: 1977 bytes --]

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

* Re: [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced?
  2013-06-12 12:23 [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced? lxu
@ 2013-06-12 13:39 ` Thomas Monjalon
  2013-06-12 14:30   ` [dpdk-dev] [PATCH] ethdev: fix empty struct rte_eth_txmode Thomas Monjalon
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Monjalon @ 2013-06-12 13:39 UTC (permalink / raw)
  To: dev

12/06/2013 14:23, lxu :
> Great! Thanks for the quick feedback.
> 
> ------------------ Original ------------------
> From:  "Olivier MATZ"<olivier.matz@6wind.com>;
>
> I agree with your solution. Do you approve the following patch ?
> 
> From: lxu <lxu4net@qq.com>
> Date: Wed, 12 Jun 2013 09:32:30 +0200
> Subject: [PATCH] ethdev: force the size of struct rte_eth_txmode to be 0

applied, thanks

-- 
Thomas

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

* [dpdk-dev] [PATCH] ethdev: fix empty struct rte_eth_txmode
  2013-06-12 13:39 ` Thomas Monjalon
@ 2013-06-12 14:30   ` Thomas Monjalon
  2013-06-12 14:46     ` Olivier MATZ
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Monjalon @ 2013-06-12 14:30 UTC (permalink / raw)
  To: dev

The previous fix was for g++ but is broken with gcc:
	error: flexible array member in otherwise empty struct
See http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Zero-Length.html

Let's fix it with #ifdef __cplusplus.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 lib/librte_ether/rte_ethdev.h |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index a253b3f..2280772 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -320,7 +320,9 @@ struct rte_eth_vmdq_dcb_conf {
  * For future extensions.
  */
 struct rte_eth_txmode {
+#ifdef __cplusplus
 	int reserved[]; /* force size of struct to be 0 */
+#endif
 };
 
 /**
-- 
1.7.10.4

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

* Re: [dpdk-dev] [PATCH] ethdev: fix empty struct rte_eth_txmode
  2013-06-12 14:30   ` [dpdk-dev] [PATCH] ethdev: fix empty struct rte_eth_txmode Thomas Monjalon
@ 2013-06-12 14:46     ` Olivier MATZ
  2013-06-12 15:14       ` Thomas Monjalon
  0 siblings, 1 reply; 5+ messages in thread
From: Olivier MATZ @ 2013-06-12 14:46 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On 06/12/2013 04:30 PM, Thomas Monjalon wrote:
> The previous fix was for g++ but is broken with gcc:
> 	error: flexible array member in otherwise empty struct
> See http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Zero-Length.html
>
> Let's fix it with #ifdef __cplusplus.

Sorry Thomas for the previous one, I should have tested it.

This one looks good, I checked compilation and it works with
gcc-4.6.3 and g++-4.6.3

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

* Re: [dpdk-dev] [PATCH] ethdev: fix empty struct rte_eth_txmode
  2013-06-12 14:46     ` Olivier MATZ
@ 2013-06-12 15:14       ` Thomas Monjalon
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2013-06-12 15:14 UTC (permalink / raw)
  To: Olivier MATZ; +Cc: dev

12/06/2013 16:46, Olivier MATZ :
> On 06/12/2013 04:30 PM, Thomas Monjalon wrote:
> > The previous fix was for g++ but is broken with gcc:
> > 	error: flexible array member in otherwise empty struct
> 
> Sorry Thomas for the previous one, I should have tested it.

No problem, I should also better test before pushing :)

> This one looks good, I checked compilation and it works with
> gcc-4.6.3 and g++-4.6.3

pushed

-- 
Thomas

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

end of thread, other threads:[~2013-06-12 15:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-12 12:23 [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced? lxu
2013-06-12 13:39 ` Thomas Monjalon
2013-06-12 14:30   ` [dpdk-dev] [PATCH] ethdev: fix empty struct rte_eth_txmode Thomas Monjalon
2013-06-12 14:46     ` Olivier MATZ
2013-06-12 15:14       ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).