[PATCH v3 06/11] eal: typedef cpu flag enum as int for msvc
Konstantin Ananyev
konstantin.v.ananyev at yandex.ru
Mon Apr 10 21:59:33 CEST 2023
06/04/2023 01:45, Tyler Retzlaff пишет:
> Forward declaration of a typedef is a non-standard extension and is not
> supported by msvc. Use an int instead.
>
> Abstract the use of the int/enum rte_cpu_flag_t in function parameter
> lists by re-typdefing the enum rte_cpu_flag_t to the rte_cpu_flag_t
> identifier.
>
> Remove the use of __extension__ on function prototypes where
> rte_cpu_flag_t appeared in parameter lists, it is sufficient to have the
> conditionally compiled __extension__ at the non-standard forward
> declaration site.
>
> Signed-off-by: Tyler Retzlaff <roretzla at linux.microsoft.com>
> ---
> lib/eal/include/generic/rte_cpuflags.h | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/lib/eal/include/generic/rte_cpuflags.h b/lib/eal/include/generic/rte_cpuflags.h
> index d35551e..87ab03c 100644
> --- a/lib/eal/include/generic/rte_cpuflags.h
> +++ b/lib/eal/include/generic/rte_cpuflags.h
> @@ -44,8 +44,12 @@ struct rte_cpu_intrinsics {
> /**
> * Enumeration of all CPU features supported
> */
> +#ifndef RTE_TOOLCHAIN_MSVC
> __extension__
> -enum rte_cpu_flag_t;
> +typedef enum rte_cpu_flag_t rte_cpu_flag_t;
> +#else
> +typedef int rte_cpu_flag_t;
> +#endif
Just curious what exactly MSVC doesn't support here?
Is that construction like:
enum rte_cpu_flag_t {....};
enum rte_cpu_flag_t;
...
Or something else?
> /**
> * Get name of CPU flag
> @@ -56,9 +60,8 @@ struct rte_cpu_intrinsics {
> * flag name
> * NULL if flag ID is invalid
> */
> -__extension__
> const char *
> -rte_cpu_get_flag_name(enum rte_cpu_flag_t feature);
> +rte_cpu_get_flag_name(rte_cpu_flag_t feature);
>
> /**
> * Function for checking a CPU flag availability
> @@ -70,9 +73,8 @@ struct rte_cpu_intrinsics {
> * 0 if flag is not available
> * -ENOENT if flag is invalid
> */
> -__extension__
> int
> -rte_cpu_get_flag_enabled(enum rte_cpu_flag_t feature);
> +rte_cpu_get_flag_enabled(rte_cpu_flag_t feature);
>
> /**
> * This function checks that the currently used CPU supports the CPU features
More information about the dev
mailing list