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

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

Hello all,I'm trying to write a C++ DPDK example. Everything is fine until I tried to enable RSS feature. It wasn't work.After hardy works, I found it's because empty structure rte_eth_txmode. In gcc the size of rte_eth_txmode is 0. But in g++ it's 1. I known the empty structure is a gcc extension. But it isn't be permitted by C99 (6.7.2.1/7 "Structure and union specifiers": "If the struct-declaration-list contains no named members, the behavior is undefined"). 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++ */

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

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

* Re: [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced?
  2013-06-12  4:54 [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced? lxu
@ 2013-06-12  9:17 ` Olivier MATZ
  0 siblings, 0 replies; 4+ messages in thread
From: Olivier MATZ @ 2013-06-12  9:17 UTC (permalink / raw)
  To: dev

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

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

* 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, 0 replies; 4+ 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] 4+ messages in thread

* 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; 4+ 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] 4+ messages in thread

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

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-12  4:54 [dpdk-dev] Can the empty struct rte_eth_txmode be enhanced? lxu
2013-06-12  9:17 ` Olivier MATZ
2013-06-12 12:23 lxu
2013-06-12 13:39 ` 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).