[dpdk-dev] [PATCH] eal: fix C++ build (struct member: virtual)

Christoph Gysin christoph.gysin at gmail.com
Sat Oct 3 12:14:41 CEST 2015


I added the Signed-off, is there anything else missing?

Any chance to get this merged?

On Tue, Sep 29, 2015 at 9:53 AM, Christoph Gysin
<christoph.gysin at gmail.com> wrote:
> 'virtual' is a keyword and can't be used if the code is to compile with
> C++ compilers.
>
> If rte_devargs.h was included in C++ code, compilation with clang++
> failed with an error. g++ did not fail, but only because of a bug
> that treats it as an anonymous struct with a decl-specifier which it
> ignores.
>
> This simply renames the member to 'virt'.
>
> Signed-off-by: Christoph Gysin <christoph.gysin at gmail.com>
> ---
>  app/test/test_devargs.c                     | 4 ++--
>  lib/librte_eal/common/eal_common_dev.c      | 4 ++--
>  lib/librte_eal/common/eal_common_devargs.c  | 8 ++++----
>  lib/librte_eal/common/include/rte_devargs.h | 2 +-
>  4 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/app/test/test_devargs.c b/app/test/test_devargs.c
> index f7fc59c..049f32d 100644
> --- a/app/test/test_devargs.c
> +++ b/app/test/test_devargs.c
> @@ -91,8 +91,8 @@ test_devargs(void)
>         if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "eth_ring1,k1=val,k2=val2") < 0)
>                 goto fail;
>         devargs = TAILQ_FIRST(&devargs_list);
> -       if (strncmp(devargs->virtual.drv_name, "eth_ring1",
> -                       sizeof(devargs->virtual.drv_name)) != 0)
> +       if (strncmp(devargs->virt.drv_name, "eth_ring1",
> +                       sizeof(devargs->virt.drv_name)) != 0)
>                 goto fail;
>         if (!devargs->args || strcmp(devargs->args, "k1=val,k2=val2") != 0)
>                 goto fail;
> diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
> index 4089d66..a8a4146 100644
> --- a/lib/librte_eal/common/eal_common_dev.c
> +++ b/lib/librte_eal/common/eal_common_dev.c
> @@ -107,10 +107,10 @@ rte_eal_dev_init(void)
>                 if (devargs->type != RTE_DEVTYPE_VIRTUAL)
>                         continue;
>
> -               if (rte_eal_vdev_init(devargs->virtual.drv_name,
> +               if (rte_eal_vdev_init(devargs->virt.drv_name,
>                                         devargs->args)) {
>                         RTE_LOG(ERR, EAL, "failed to initialize %s device\n",
> -                                       devargs->virtual.drv_name);
> +                                       devargs->virt.drv_name);
>                         return -1;
>                 }
>         }
> diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c
> index ec56165..5d075d0 100644
> --- a/lib/librte_eal/common/eal_common_devargs.c
> +++ b/lib/librte_eal/common/eal_common_devargs.c
> @@ -107,9 +107,9 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str)
>                 break;
>         case RTE_DEVTYPE_VIRTUAL:
>                 /* save driver name */
> -               ret = snprintf(devargs->virtual.drv_name,
> -                              sizeof(devargs->virtual.drv_name), "%s", buf);
> -               if (ret < 0 || ret >= (int)sizeof(devargs->virtual.drv_name))
> +               ret = snprintf(devargs->virt.drv_name,
> +                              sizeof(devargs->virt.drv_name), "%s", buf);
> +               if (ret < 0 || ret >= (int)sizeof(devargs->virt.drv_name))
>                         goto fail;
>
>                 break;
> @@ -169,7 +169,7 @@ rte_eal_devargs_dump(FILE *f)
>                                devargs->args);
>                 else if (devargs->type == RTE_DEVTYPE_VIRTUAL)
>                         fprintf(f, "  VIRTUAL %s %s\n",
> -                              devargs->virtual.drv_name,
> +                              devargs->virt.drv_name,
>                                devargs->args);
>                 else
>                         fprintf(f, "  UNKNOWN %s\n", devargs->args);
> diff --git a/lib/librte_eal/common/include/rte_devargs.h b/lib/librte_eal/common/include/rte_devargs.h
> index 7084ae2..53c59f5 100644
> --- a/lib/librte_eal/common/include/rte_devargs.h
> +++ b/lib/librte_eal/common/include/rte_devargs.h
> @@ -86,7 +86,7 @@ struct rte_devargs {
>                 struct {
>                         /** Driver name. */
>                         char drv_name[32];
> -               } virtual;
> +               } virt;
>         };
>         /** Arguments string as given by user or "" for no argument. */
>         char *args;
> --
> 2.5.3
>



-- 
echo mailto: NOSPAM !#$.'<*>'|sed 's. ..'|tr "<*> !#:2" org at fr33z3


More information about the dev mailing list