From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6293C42912; Mon, 10 Apr 2023 21:59:40 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E6BA940DDC; Mon, 10 Apr 2023 21:59:39 +0200 (CEST) Received: from forward502a.mail.yandex.net (forward502a.mail.yandex.net [178.154.239.82]) by mails.dpdk.org (Postfix) with ESMTP id 7B1A840A81 for ; Mon, 10 Apr 2023 21:59:38 +0200 (CEST) Received: from mail-nwsmtp-smtp-production-main-49.vla.yp-c.yandex.net (mail-nwsmtp-smtp-production-main-49.vla.yp-c.yandex.net [IPv6:2a02:6b8:c18:3487:0:640:5432:0]) by forward502a.mail.yandex.net (Yandex) with ESMTP id AB68D5E765; Mon, 10 Apr 2023 22:59:37 +0300 (MSK) Received: by mail-nwsmtp-smtp-production-main-49.vla.yp-c.yandex.net (smtp/Yandex) with ESMTPSA id Yxa4cjAWsa60-p3JaduWT; Mon, 10 Apr 2023 22:59:36 +0300 X-Yandex-Fwd: 1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1681156776; bh=HAsfmF2RB7LrovzjNDvOkboHzuxxU7jirkLeezNdshY=; h=From:In-Reply-To:Cc:Date:References:To:Subject:Message-ID; b=xFIYWlX3EJhUWHPPGZFqAXCAjrJOlAnDWnYdeYbBgAiNf4o6PwJNYDY8JwBjtwZ+9 WtbCW+YJUHKbw5noMJ3zBvDB2udXsynuI3MQ152yCeKvAVt+K2Z5N9fRBadWORK03L SGtrTCAXJZdowxFY9vGnBgb49vQstCehwya/cQoo= Authentication-Results: mail-nwsmtp-smtp-production-main-49.vla.yp-c.yandex.net; dkim=pass header.i=@yandex.ru Message-ID: <54a3d95b-51b3-6f3e-7d2f-d893ae9a8c4a@yandex.ru> Date: Mon, 10 Apr 2023 20:59:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [PATCH v3 06/11] eal: typedef cpu flag enum as int for msvc Content-Language: en-US To: Tyler Retzlaff , dev@dpdk.org Cc: bruce.richardson@intel.com, david.marchand@redhat.com, thomas@monjalon.net, mb@smartsharesystems.com, konstantin.ananyev@huawei.com References: <1680558751-17931-1-git-send-email-roretzla@linux.microsoft.com> <1680741919-22102-1-git-send-email-roretzla@linux.microsoft.com> <1680741919-22102-7-git-send-email-roretzla@linux.microsoft.com> From: Konstantin Ananyev In-Reply-To: <1680741919-22102-7-git-send-email-roretzla@linux.microsoft.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 > --- > 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