[{"id":1764465,"web_url":"http://patchwork.ozlabs.org/comment/1764465/","msgid":"<bb1414cb-20ee-a404-741d-5819a17e2432@canonical.com>","list_archive_url":null,"date":"2017-09-07T01:45:27","subject":"ACK: [PATCH] lib: fwts_firmware: make enums into a defined type","submitter":{"id":10593,"url":"http://patchwork.ozlabs.org/api/people/10593/","name":"Alex Hung","email":"alex.hung@canonical.com"},"content":"On 2017-09-06 02:08 AM, Colin King wrote:\n> From: Colin Ian King <colin.king@canonical.com>\n> \n> Rather than passing around firmware enums as integers, make the enums into\n> a defined type and use that type.\n> \n> Signed-off-by: Colin Ian King <colin.king@canonical.com>\n> ---\n>   src/lib/include/fwts_firmware.h  | 14 +++++++-------\n>   src/lib/include/fwts_framework.h |  9 ++++++---\n>   src/lib/src/fwts_firmware.c      |  8 ++++----\n>   src/lib/src/fwts_framework.c     |  2 +-\n>   4 files changed, 18 insertions(+), 15 deletions(-)\n> \n> diff --git a/src/lib/include/fwts_firmware.h b/src/lib/include/fwts_firmware.h\n> index d6608680..e1c12f09 100644\n> --- a/src/lib/include/fwts_firmware.h\n> +++ b/src/lib/include/fwts_firmware.h\n> @@ -21,28 +21,28 @@\n>   \n>   #include <stdbool.h>\n>   \n> -enum firmware_type {\n> +typedef enum {\n>   \tFWTS_FIRMWARE_UNKNOWN = 0,\n>   \tFWTS_FIRMWARE_BIOS = 1,\n>   \tFWTS_FIRMWARE_UEFI = 2,\n>   \tFWTS_FIRMWARE_OPAL = 3,\n>   \tFWTS_FIRMWARE_OTHER = 100\n> -};\n> +} fwts_firmware_type;\n>   \n> -enum firmware_feature {\n> +typedef enum {\n>   \tFWTS_FW_FEATURE_ACPI\t\t= 0x1,\n>   \tFWTS_FW_FEATURE_DEVICETREE\t= 0x2,\n>   \tFWTS_FW_FEATURE_IPMI\t\t= 0x4,\n>   \tFWTS_FW_FEATURE_ALL\t\t= FWTS_FW_FEATURE_ACPI |\n>   \t\t\t\t\t  FWTS_FW_FEATURE_DEVICETREE |\n>   \t\t\t\t\t  FWTS_FW_FEATURE_IPMI\n> -};\n> +} fwts_firmware_feature;\n>   \n> -int fwts_firmware_detect(void);\n> +fwts_firmware_type fwts_firmware_detect(void);\n>   int fwts_firmware_features(void);\n> -const char *fwts_firmware_feature_string(const int features);\n> +const char *fwts_firmware_feature_string(const fwts_firmware_feature features);\n>   \n> -static inline bool fwts_firmware_has_features(const int features)\n> +static inline bool fwts_firmware_has_features(const fwts_firmware_feature features)\n>   {\n>   \treturn (fwts_firmware_features() & features) == features;\n>   }\n> diff --git a/src/lib/include/fwts_framework.h b/src/lib/include/fwts_framework.h\n> index bef903c8..3f15312b 100644\n> --- a/src/lib/include/fwts_framework.h\n> +++ b/src/lib/include/fwts_framework.h\n> @@ -32,6 +32,7 @@ typedef struct fwts_framework fwts_framework;\n>   #include \"fwts_list.h\"\n>   #include \"fwts_acpica_mode.h\"\n>   #include \"fwts_types.h\"\n> +#include \"fwts_firmware.h\"\n>   \n>   #define FWTS_FRAMEWORK_MAGIC\t0x2af61aec\n>   \n> @@ -143,7 +144,7 @@ struct fwts_framework {\n>   \tfwts_log_level failed_level;\t\t/* Bit mask of failed levels in test run */\n>   \tfwts_log_level filter_level;\t\t/* --log-level option filter */\n>   \n> -\tint firmware_type;\t\t\t/* Type of firmware */\n> +\tfwts_firmware_type firmware_type;\t/* Type of firmware */\n>   \tbool show_progress;\t\t\t/* Show progress while running current test */\n>   \n>   \tfwts_log_type\tlog_type;\t\t/* Output log type, default is plain text ASCII */\n> @@ -190,14 +191,16 @@ typedef struct fwts_framework_test {\n>   \tfwts_framework_ops *ops;\n>   \tfwts_priority priority;\n>   \tfwts_framework_flags flags;\n> -\tint fw_features;\n> +\tfwts_firmware_feature fw_features;\n>   \tfwts_results results;\t\t\t/* Per test results */\n>   \tbool\t    was_run;\n>   \n>   } fwts_framework_test;\n>   \n>   int  fwts_framework_args(const int argc, char **argv);\n> -void fwts_framework_test_add(const char *name, fwts_framework_ops *ops, const fwts_priority priority, const fwts_framework_flags flags, int fw_features);\n> +void fwts_framework_test_add(const char *name, fwts_framework_ops *ops,\n> +\tconst fwts_priority priority, const fwts_framework_flags flags,\n> +\tconst fwts_firmware_feature fw_features);\n>   int  fwts_framework_compare_test_name(void *, void *);\n>   void fwts_framework_show_version(FILE *fp, const char *name);\n>   \n> diff --git a/src/lib/src/fwts_firmware.c b/src/lib/src/fwts_firmware.c\n> index 5befa616..611ce8f8 100644\n> --- a/src/lib/src/fwts_firmware.c\n> +++ b/src/lib/src/fwts_firmware.c\n> @@ -23,11 +23,11 @@\n>   \n>   #include \"fwts.h\"\n>   \n> -static enum firmware_type firmware_type;\n> +static fwts_firmware_type firmware_type;\n>   static bool firmware_type_valid;\n>   \n>   static const struct {\n> -\tenum firmware_feature feature;\n> +\tfwts_firmware_feature feature;\n>   \tconst char name[16];\n>   } feature_names[] = {\n>   \t{ FWTS_FW_FEATURE_ACPI,\t\t\"ACPI\" },\n> @@ -39,7 +39,7 @@ static const struct {\n>    *  fwts_memory_map_entry_compare()\n>    *\tcallback used to sort memory_map entries on start address\n>    */\n> -int fwts_firmware_detect(void)\n> +fwts_firmware_type fwts_firmware_detect(void)\n>   {\n>   \tstruct stat statbuf;\n>   \n> @@ -86,7 +86,7 @@ int fwts_firmware_features(void)\n>   \treturn features;\n>   }\n>   \n> -const char *fwts_firmware_feature_string(const int features)\n> +const char *fwts_firmware_feature_string(const fwts_firmware_feature features)\n>   {\n>   \tconst int n = FWTS_ARRAY_LEN(feature_names);\n>   \tconst char sep[] = \", \";\n> diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c\n> index 02e1cde6..c0d71521 100644\n> --- a/src/lib/src/fwts_framework.c\n> +++ b/src/lib/src/fwts_framework.c\n> @@ -171,7 +171,7 @@ void fwts_framework_test_add(\n>   \tfwts_framework_ops *ops,\n>   \tconst fwts_priority priority,\n>   \tconst fwts_framework_flags flags,\n> -\tint fw_features)\n> +\tconst fwts_firmware_feature fw_features)\n>   {\n>   \tfwts_framework_test *new_test;\n>   \n> \n\nAcked-by: Alex Hung <alex.hung@canonical.com>","headers":{"Return-Path":"<fwts-devel-bounces@lists.ubuntu.com>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com\n\t(client-ip=91.189.94.19; helo=huckleberry.canonical.com;\n\tenvelope-from=fwts-devel-bounces@lists.ubuntu.com;\n\treceiver=<UNKNOWN>)","Received":["from huckleberry.canonical.com (huckleberry.canonical.com\n\t[91.189.94.19])\n\tby ozlabs.org (Postfix) with ESMTP id 3xnjvq14KKz9ryk;\n\tThu,  7 Sep 2017 11:45:42 +1000 (AEST)","from localhost ([127.0.0.1] helo=huckleberry.canonical.com)\n\tby huckleberry.canonical.com with esmtp (Exim 4.86_2)\n\t(envelope-from <fwts-devel-bounces@lists.ubuntu.com>)\n\tid 1dplsx-0006VT-Qn; Thu, 07 Sep 2017 01:45:39 +0000","from youngberry.canonical.com ([91.189.89.112])\n\tby huckleberry.canonical.com with esmtps\n\t(TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128)\n\t(Exim 4.86_2) (envelope-from <alex.hung@canonical.com>)\n\tid 1dplsw-0006VL-24\n\tfor fwts-devel@lists.ubuntu.com; Thu, 07 Sep 2017 01:45:38 +0000","from mail-pf0-f198.google.com ([209.85.192.198])\n\tby youngberry.canonical.com with esmtps\n\t(TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.76) (envelope-from <alex.hung@canonical.com>)\n\tid 1dplsv-0005W2-MT\n\tfor fwts-devel@lists.ubuntu.com; Thu, 07 Sep 2017 01:45:37 +0000","by mail-pf0-f198.google.com with SMTP id s137so15667202pfs.4\n\tfor <fwts-devel@lists.ubuntu.com>;\n\tWed, 06 Sep 2017 18:45:37 -0700 (PDT)","from [192.168.1.125] ([207.102.104.225])\n\tby smtp.gmail.com with ESMTPSA id\n\ti2sm1045176pgq.81.2017.09.06.18.45.35\n\tfor <fwts-devel@lists.ubuntu.com>\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 06 Sep 2017 18:45:35 -0700 (PDT)"],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:to:references:from:message-id:date\n\t:user-agent:mime-version:in-reply-to:content-language\n\t:content-transfer-encoding;\n\tbh=w3KpQ1inYRoJN0+A2kAqdrfwc6LEA9vFJ8DS+42hmBY=;\n\tb=TRh/IyYhR1eOCSvfJ+1bb3vO/OEzC4iZ03W62afFHqhQuJnnu+5YGAiqiU7ttis+VW\n\tEtyuvow4pDjfSIGxNt9CH48jSQFuN6Mcv7oPHFmOzgvcwXjcr0mk10SfyZ8YSVZmbUPb\n\tNZVAYKaTE740prA1eEipifMmIpfP/RDcS+FluYtmVH87z9befdynOlt9BXa+SK9BdP3+\n\tb/TTIoihYyJuBbrrWlHsEKJuejAsRZMLiYEZ6PeGiXB6urvpb229p1813e9z40u3S5hU\n\tV6jDfplixhuqTsjXS5PDuO2QN5npHdihEVWWphQT5xkBlAU+bGM22TYz31Xvw9CMN3Ih\n\t9lWg==","X-Gm-Message-State":"AHPjjUhujJezms7jkA9u1At8Wz/LHQ4giOJMtwYmiy9EJWD4ThWdIE80\n\tAL8gxwQjQ6LUpPQ9lkZYExsArPu5IWQMepnWauxRTugH4TtGmTmzJdJ0p8IhkAKcYxBRclHbRuc\n\tzZqxKRn+gvh9bR0TdZe0RAttPzgsua84=","X-Received":["by 10.84.175.195 with SMTP id t61mr1184169plb.424.1504748736177; \n\tWed, 06 Sep 2017 18:45:36 -0700 (PDT)","by 10.84.175.195 with SMTP id t61mr1184157plb.424.1504748735916; \n\tWed, 06 Sep 2017 18:45:35 -0700 (PDT)"],"X-Google-Smtp-Source":"ADKCNb7mM5ktXZESasNqBsNySX2qrFvCLsRfgn7mFUkepNKgppOfHUUjicCEC6kgrTO6hOYFfKyclw==","Subject":"ACK: [PATCH] lib: fwts_firmware: make enums into a defined type","To":"fwts-devel@lists.ubuntu.com","References":"<20170906090828.2156-1-colin.king@canonical.com>","From":"Alex Hung <alex.hung@canonical.com>","Message-ID":"<bb1414cb-20ee-a404-741d-5819a17e2432@canonical.com>","Date":"Wed, 6 Sep 2017 18:45:27 -0700","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.2.1","MIME-Version":"1.0","In-Reply-To":"<20170906090828.2156-1-colin.king@canonical.com>","Content-Language":"en-US","X-BeenThere":"fwts-devel@lists.ubuntu.com","X-Mailman-Version":"2.1.20","Precedence":"list","List-Id":"Firmware Test Suite Development <fwts-devel.lists.ubuntu.com>","List-Unsubscribe":"<https://lists.ubuntu.com/mailman/options/fwts-devel>,\n\t<mailto:fwts-devel-request@lists.ubuntu.com?subject=unsubscribe>","List-Archive":"<https://lists.ubuntu.com/archives/fwts-devel>","List-Post":"<mailto:fwts-devel@lists.ubuntu.com>","List-Help":"<mailto:fwts-devel-request@lists.ubuntu.com?subject=help>","List-Subscribe":"<https://lists.ubuntu.com/mailman/listinfo/fwts-devel>,\n\t<mailto:fwts-devel-request@lists.ubuntu.com?subject=subscribe>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Errors-To":"fwts-devel-bounces@lists.ubuntu.com","Sender":"\"fwts-devel\" <fwts-devel-bounces@lists.ubuntu.com>"}},{"id":1772509,"web_url":"http://patchwork.ozlabs.org/comment/1772509/","msgid":"<7f148e88-29e5-0f38-de16-32edd2c01d95@canonical.com>","list_archive_url":null,"date":"2017-09-21T07:56:37","subject":"ACK: [PATCH] lib: fwts_firmware: make enums into a defined type","submitter":{"id":14061,"url":"http://patchwork.ozlabs.org/api/people/14061/","name":"Ivan Hu","email":"ivan.hu@canonical.com"},"content":"On 09/06/2017 05:08 PM, Colin King wrote:\n> From: Colin Ian King <colin.king@canonical.com>\n> \n> Rather than passing around firmware enums as integers, make the enums into\n> a defined type and use that type.\n> \n> Signed-off-by: Colin Ian King <colin.king@canonical.com>\n> ---\n>   src/lib/include/fwts_firmware.h  | 14 +++++++-------\n>   src/lib/include/fwts_framework.h |  9 ++++++---\n>   src/lib/src/fwts_firmware.c      |  8 ++++----\n>   src/lib/src/fwts_framework.c     |  2 +-\n>   4 files changed, 18 insertions(+), 15 deletions(-)\n> \n> diff --git a/src/lib/include/fwts_firmware.h b/src/lib/include/fwts_firmware.h\n> index d6608680..e1c12f09 100644\n> --- a/src/lib/include/fwts_firmware.h\n> +++ b/src/lib/include/fwts_firmware.h\n> @@ -21,28 +21,28 @@\n>   \n>   #include <stdbool.h>\n>   \n> -enum firmware_type {\n> +typedef enum {\n>   \tFWTS_FIRMWARE_UNKNOWN = 0,\n>   \tFWTS_FIRMWARE_BIOS = 1,\n>   \tFWTS_FIRMWARE_UEFI = 2,\n>   \tFWTS_FIRMWARE_OPAL = 3,\n>   \tFWTS_FIRMWARE_OTHER = 100\n> -};\n> +} fwts_firmware_type;\n>   \n> -enum firmware_feature {\n> +typedef enum {\n>   \tFWTS_FW_FEATURE_ACPI\t\t= 0x1,\n>   \tFWTS_FW_FEATURE_DEVICETREE\t= 0x2,\n>   \tFWTS_FW_FEATURE_IPMI\t\t= 0x4,\n>   \tFWTS_FW_FEATURE_ALL\t\t= FWTS_FW_FEATURE_ACPI |\n>   \t\t\t\t\t  FWTS_FW_FEATURE_DEVICETREE |\n>   \t\t\t\t\t  FWTS_FW_FEATURE_IPMI\n> -};\n> +} fwts_firmware_feature;\n>   \n> -int fwts_firmware_detect(void);\n> +fwts_firmware_type fwts_firmware_detect(void);\n>   int fwts_firmware_features(void);\n> -const char *fwts_firmware_feature_string(const int features);\n> +const char *fwts_firmware_feature_string(const fwts_firmware_feature features);\n>   \n> -static inline bool fwts_firmware_has_features(const int features)\n> +static inline bool fwts_firmware_has_features(const fwts_firmware_feature features)\n>   {\n>   \treturn (fwts_firmware_features() & features) == features;\n>   }\n> diff --git a/src/lib/include/fwts_framework.h b/src/lib/include/fwts_framework.h\n> index bef903c8..3f15312b 100644\n> --- a/src/lib/include/fwts_framework.h\n> +++ b/src/lib/include/fwts_framework.h\n> @@ -32,6 +32,7 @@ typedef struct fwts_framework fwts_framework;\n>   #include \"fwts_list.h\"\n>   #include \"fwts_acpica_mode.h\"\n>   #include \"fwts_types.h\"\n> +#include \"fwts_firmware.h\"\n>   \n>   #define FWTS_FRAMEWORK_MAGIC\t0x2af61aec\n>   \n> @@ -143,7 +144,7 @@ struct fwts_framework {\n>   \tfwts_log_level failed_level;\t\t/* Bit mask of failed levels in test run */\n>   \tfwts_log_level filter_level;\t\t/* --log-level option filter */\n>   \n> -\tint firmware_type;\t\t\t/* Type of firmware */\n> +\tfwts_firmware_type firmware_type;\t/* Type of firmware */\n>   \tbool show_progress;\t\t\t/* Show progress while running current test */\n>   \n>   \tfwts_log_type\tlog_type;\t\t/* Output log type, default is plain text ASCII */\n> @@ -190,14 +191,16 @@ typedef struct fwts_framework_test {\n>   \tfwts_framework_ops *ops;\n>   \tfwts_priority priority;\n>   \tfwts_framework_flags flags;\n> -\tint fw_features;\n> +\tfwts_firmware_feature fw_features;\n>   \tfwts_results results;\t\t\t/* Per test results */\n>   \tbool\t    was_run;\n>   \n>   } fwts_framework_test;\n>   \n>   int  fwts_framework_args(const int argc, char **argv);\n> -void fwts_framework_test_add(const char *name, fwts_framework_ops *ops, const fwts_priority priority, const fwts_framework_flags flags, int fw_features);\n> +void fwts_framework_test_add(const char *name, fwts_framework_ops *ops,\n> +\tconst fwts_priority priority, const fwts_framework_flags flags,\n> +\tconst fwts_firmware_feature fw_features);\n>   int  fwts_framework_compare_test_name(void *, void *);\n>   void fwts_framework_show_version(FILE *fp, const char *name);\n>   \n> diff --git a/src/lib/src/fwts_firmware.c b/src/lib/src/fwts_firmware.c\n> index 5befa616..611ce8f8 100644\n> --- a/src/lib/src/fwts_firmware.c\n> +++ b/src/lib/src/fwts_firmware.c\n> @@ -23,11 +23,11 @@\n>   \n>   #include \"fwts.h\"\n>   \n> -static enum firmware_type firmware_type;\n> +static fwts_firmware_type firmware_type;\n>   static bool firmware_type_valid;\n>   \n>   static const struct {\n> -\tenum firmware_feature feature;\n> +\tfwts_firmware_feature feature;\n>   \tconst char name[16];\n>   } feature_names[] = {\n>   \t{ FWTS_FW_FEATURE_ACPI,\t\t\"ACPI\" },\n> @@ -39,7 +39,7 @@ static const struct {\n>    *  fwts_memory_map_entry_compare()\n>    *\tcallback used to sort memory_map entries on start address\n>    */\n> -int fwts_firmware_detect(void)\n> +fwts_firmware_type fwts_firmware_detect(void)\n>   {\n>   \tstruct stat statbuf;\n>   \n> @@ -86,7 +86,7 @@ int fwts_firmware_features(void)\n>   \treturn features;\n>   }\n>   \n> -const char *fwts_firmware_feature_string(const int features)\n> +const char *fwts_firmware_feature_string(const fwts_firmware_feature features)\n>   {\n>   \tconst int n = FWTS_ARRAY_LEN(feature_names);\n>   \tconst char sep[] = \", \";\n> diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c\n> index 02e1cde6..c0d71521 100644\n> --- a/src/lib/src/fwts_framework.c\n> +++ b/src/lib/src/fwts_framework.c\n> @@ -171,7 +171,7 @@ void fwts_framework_test_add(\n>   \tfwts_framework_ops *ops,\n>   \tconst fwts_priority priority,\n>   \tconst fwts_framework_flags flags,\n> -\tint fw_features)\n> +\tconst fwts_firmware_feature fw_features)\n>   {\n>   \tfwts_framework_test *new_test;\n>   \n> \n\nAcked-by: Ivan Hu <ivan.hu@canonical.com>","headers":{"Return-Path":"<fwts-devel-bounces@lists.ubuntu.com>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com\n\t(client-ip=91.189.94.19; helo=huckleberry.canonical.com;\n\tenvelope-from=fwts-devel-bounces@lists.ubuntu.com;\n\treceiver=<UNKNOWN>)","Received":["from huckleberry.canonical.com (huckleberry.canonical.com\n\t[91.189.94.19])\n\tby ozlabs.org (Postfix) with ESMTP id 3xyTTS28F1z9t3v;\n\tThu, 21 Sep 2017 17:56:44 +1000 (AEST)","from localhost ([127.0.0.1] helo=huckleberry.canonical.com)\n\tby huckleberry.canonical.com with esmtp (Exim 4.86_2)\n\t(envelope-from <fwts-devel-bounces@lists.ubuntu.com>)\n\tid 1duwLi-0002z1-N1; Thu, 21 Sep 2017 07:56:42 +0000","from youngberry.canonical.com ([91.189.89.112])\n\tby huckleberry.canonical.com with esmtps\n\t(TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128)\n\t(Exim 4.86_2) (envelope-from <ivan.hu@canonical.com>)\n\tid 1duwLh-0002ym-CQ\n\tfor fwts-devel@lists.ubuntu.com; Thu, 21 Sep 2017 07:56:41 +0000","from [175.181.226.10] (helo=[192.168.31.95])\n\tby youngberry.canonical.com with esmtpsa\n\t(TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.76) (envelope-from <ivan.hu@canonical.com>)\n\tid 1duwLg-0005qv-Rp\n\tfor fwts-devel@lists.ubuntu.com; Thu, 21 Sep 2017 07:56:41 +0000"],"Subject":"ACK: [PATCH] lib: fwts_firmware: make enums into a defined type","To":"fwts-devel@lists.ubuntu.com","References":"<20170906090828.2156-1-colin.king@canonical.com>","From":"ivanhu <ivan.hu@canonical.com>","Message-ID":"<7f148e88-29e5-0f38-de16-32edd2c01d95@canonical.com>","Date":"Thu, 21 Sep 2017 15:56:37 +0800","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101\n\tThunderbird/52.3.0","MIME-Version":"1.0","In-Reply-To":"<20170906090828.2156-1-colin.king@canonical.com>","Content-Language":"en-GB","X-BeenThere":"fwts-devel@lists.ubuntu.com","X-Mailman-Version":"2.1.20","Precedence":"list","List-Id":"Firmware Test Suite Development <fwts-devel.lists.ubuntu.com>","List-Unsubscribe":"<https://lists.ubuntu.com/mailman/options/fwts-devel>,\n\t<mailto:fwts-devel-request@lists.ubuntu.com?subject=unsubscribe>","List-Archive":"<https://lists.ubuntu.com/archives/fwts-devel>","List-Post":"<mailto:fwts-devel@lists.ubuntu.com>","List-Help":"<mailto:fwts-devel-request@lists.ubuntu.com?subject=help>","List-Subscribe":"<https://lists.ubuntu.com/mailman/listinfo/fwts-devel>,\n\t<mailto:fwts-devel-request@lists.ubuntu.com?subject=subscribe>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Errors-To":"fwts-devel-bounces@lists.ubuntu.com","Sender":"\"fwts-devel\" <fwts-devel-bounces@lists.ubuntu.com>"}}]