get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/128689/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 128689,
    "url": "http://patches.dpdk.org/api/patches/128689/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230614142651.1456116-4-thomas@monjalon.net/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230614142651.1456116-4-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230614142651.1456116-4-thomas@monjalon.net",
    "date": "2023-06-14T14:26:49",
    "name": "[3/5] lib: align comment blocks",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "9414000ec3cfc5c329bf5a71e8b0f6fb6b66226e",
    "submitter": {
        "id": 685,
        "url": "http://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230614142651.1456116-4-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 28511,
            "url": "http://patches.dpdk.org/api/series/28511/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=28511",
            "date": "2023-06-14T14:26:46",
            "name": "cleanup in library header files",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/28511/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/128689/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/128689/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 90D2442CB3;\n\tWed, 14 Jun 2023 16:31:30 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 2864342D12;\n\tWed, 14 Jun 2023 16:31:19 +0200 (CEST)",
            "from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com\n [66.111.4.26]) by mails.dpdk.org (Postfix) with ESMTP id 6959142D10\n for <dev@dpdk.org>; Wed, 14 Jun 2023 16:31:18 +0200 (CEST)",
            "from compute2.internal (compute2.nyi.internal [10.202.2.46])\n by mailout.nyi.internal (Postfix) with ESMTP id 0B8105C00AC;\n Wed, 14 Jun 2023 10:31:18 -0400 (EDT)",
            "from mailfrontend2 ([10.202.2.163])\n by compute2.internal (MEProxy); Wed, 14 Jun 2023 10:31:18 -0400",
            "by mail.messagingengine.com (Postfix) with ESMTPA; Wed,\n 14 Jun 2023 10:31:16 -0400 (EDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n cc:cc:content-transfer-encoding:content-type:content-type:date\n :date:from:from:in-reply-to:in-reply-to:message-id:mime-version\n :references:reply-to:sender:subject:subject:to:to; s=fm2; t=\n 1686753078; x=1686839478; bh=ROXWrlPMj0Dj2f8IgfkbKyRWsUamdcsXHrp\n lx/KtODI=; b=aPUVuGfKssk60uWbDl/+r2IpJgNEMJSn22Iu4NFVE0VqNdB4xqY\n nClpDBwE2iXYeYjrrOqka7CQloweMOFyqbH2D6IDJs+oGctuzFxSrWiBy8RUwV6j\n 6vUTAxKqqUG0/ZMQh+FIA+7hJdTLY1XYv1Y6xmqlNcr07vYnlFb4UwoU+2HS01yE\n eyj8BEM8HI7Phj0BUcyJursjxYMc2WQx52r27Kpnk2RkuJAMqj0lu75LZGCJHAtr\n 8C0q7CEecMRErVYt7F0NcXYgw0T6o6Imm2pAXhle8zJNMHpf2z0zCDyar819Gdt4\n z/sgLVJo5hRXnMF7Gd0OgxpeQxeV+ZrawXg==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:cc:content-transfer-encoding\n :content-type:content-type:date:date:feedback-id:feedback-id\n :from:from:in-reply-to:in-reply-to:message-id:mime-version\n :references:reply-to:sender:subject:subject:to:to:x-me-proxy\n :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=\n 1686753078; x=1686839478; bh=ROXWrlPMj0Dj2f8IgfkbKyRWsUamdcsXHrp\n lx/KtODI=; b=HK75QXqE7ej9xrM21YeaKi8h1fREhKvxyoO9nCmbmcDibBPp9yk\n 1UWA3XhpqrNpK+lgmSNAJojIXsL2quMqwJDY3kVliLu3fO29FsA1B/YUtf6oavdl\n BsX3wslrFk0LjiluLrv9r7BlqGDCK3p6Vh+a2RIxNPN0C+AkKXo9LjZxc1QpphdN\n Rar1n0P6SZqUJvIusEoG8eoAFdPFyCEX3TTf43kBw0wOiDK2RSyKoWmdL1GUB0eK\n 0SALqbjYY9jkMRfCAK7Ehgk7uc3Ylrd+7yo6T7Ri1IOY62BTbb7kFOeAyk9InL2+\n /AanKYIoomYe+Fw3q1my+DQFcNgKUbcpL9A=="
        ],
        "X-ME-Sender": "<xms:Nc-JZMu5vrBLaIX5xXJ39C-RsebLwyrnOSnMA-fhqamvfpkd4528nQ>\n <xme:Nc-JZJeZOzWqhLSH-EZLLKCwl1CznPTwGjdLGtEok5Lf52jnJjvntxAFhMyJY_46r\n f1WEQ3kpMoXjFCy0A>",
        "X-ME-Received": "\n <xmr:Nc-JZHxn8rZA-J7-ivkWZxfUHEkcDyAsccfJE5NSLw_ma7Sm4Ecz_G3WTYmZac9JAujYT0TGi7vgauwNZu59k1kTUtrS9Cw>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedvhedrgedvtddgjeekucetufdoteggodetrfdotf\n fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen\n uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne\n cujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefvhhho\n mhgrshcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqne\n cuggftrfgrthhtvghrnheptdeiffffgeefteelhfekueetueduffejgfelvedtieejudek\n gfevheetheehgeejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh\n hfrhhomhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth",
        "X-ME-Proxy": "<xmx:Nc-JZPPjYuFzSV751JUjkQfpYZP9LyhVz6PO_OMHomCRfYj3DrB96g>\n <xmx:Nc-JZM8kL-pxl2M8OmB43dAwI66OhLz9yN8wqkTArRxy6--sXy7NLA>\n <xmx:Nc-JZHVC3wIMNyFUzSgXHIZvih4e0SJ771PCq6VewbTGHaf5C3w4Yg>\n <xmx:Ns-JZAQnOvQWfHKCrjBzbNfWhZqHxJ60jHSNZveA8OJROwLr0jX65Q>",
        "Feedback-ID": "i47234305:Fastmail",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,\n Cristian Dumitrescu <cristian.dumitrescu@intel.com>,\n Olivier Matz <olivier.matz@6wind.com>, Ruifeng Wang <ruifeng.wang@arm.com>,\n David Christensen <drc@linux.vnet.ibm.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Ferruh Yigit <ferruh.yigit@amd.com>,\n Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,\n Ori Kam <orika@nvidia.com>",
        "Subject": "[PATCH 3/5] lib: align comment blocks",
        "Date": "Wed, 14 Jun 2023 16:26:49 +0200",
        "Message-Id": "<20230614142651.1456116-4-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.40.1",
        "In-Reply-To": "<20230614142651.1456116-1-thomas@monjalon.net>",
        "References": "<20230614142651.1456116-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "Some comment blocks were missing a space or had too many spaces\nat the beginning of the lines, resulting in misalignment of asterisks.\n\nSuch mistakes were found with this kind of commands:\n\tgit grep '^\\*' lib\n\tgit grep '^   *\\*' lib\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\n---\n lib/acl/acl_gen.c                      |  10 +-\n lib/acl/acl_vect.h                     |   2 +-\n lib/cfgfile/rte_cfgfile.h              | 300 ++++++++++++-------------\n lib/cmdline/cmdline_parse_string.h     |  14 +-\n lib/eal/arm/include/rte_cycles_32.h    |  13 +-\n lib/eal/include/generic/rte_cycles.h   |   2 +-\n lib/eal/include/rte_hexdump.h          |  51 ++---\n lib/eal/ppc/include/rte_byteorder.h    |   2 +-\n lib/eal/x86/include/rte_byteorder_32.h |   2 +-\n lib/eal/x86/include/rte_byteorder_64.h |   2 +-\n lib/ethdev/rte_ethdev.h                |  65 +++---\n lib/ethdev/rte_flow.h                  |   8 +-\n lib/ethdev/rte_tm.h                    |   4 +-\n lib/table/rte_table_hash_ext.c         |  28 +--\n lib/table/rte_table_hash_lru.c         | 102 ++++-----\n 15 files changed, 302 insertions(+), 303 deletions(-)",
    "diff": "diff --git a/lib/acl/acl_gen.c b/lib/acl/acl_gen.c\nindex e759a2ca15..25e75fec35 100644\n--- a/lib/acl/acl_gen.c\n+++ b/lib/acl/acl_gen.c\n@@ -148,11 +148,11 @@ acl_node_fill_dfa(const struct rte_acl_node *node,\n }\n \n /*\n-*  Counts the number of groups of sequential bits that are\n-*  either 0 or 1, as specified by the zero_one parameter. This is used to\n-*  calculate the number of ranges in a node to see if it fits in a quad range\n-*  node.\n-*/\n+ * Count the number of groups of sequential bits that are either 0 or 1,\n+ * as specified by the zero_one parameter.\n+ * This is used to calculate the number of ranges in a node\n+ * to see if it fits in a quad range node.\n+ */\n static int\n acl_count_sequential_groups(struct rte_acl_bitset *bits, int zero_one)\n {\ndiff --git a/lib/acl/acl_vect.h b/lib/acl/acl_vect.h\nindex e4b4666090..2ab58a55a4 100644\n--- a/lib/acl/acl_vect.h\n+++ b/lib/acl/acl_vect.h\n@@ -36,7 +36,7 @@\n  * This is effectively a popcnt of bytes that are greater than the\n  * input byte.\n  * Single nodes are processed in the same ways as quad range nodes.\n-*/\n+ */\n #define ACL_TR_CALC_ADDR(P, S,\t\t\t\t\t\\\n \taddr, index_mask, next_input, shuffle_input,\t\t\\\n \tones_16, range_base, tr_lo, tr_hi)               do {\t\\\ndiff --git a/lib/cfgfile/rte_cfgfile.h b/lib/cfgfile/rte_cfgfile.h\nindex 7729c133b4..232c65c77b 100644\n--- a/lib/cfgfile/rte_cfgfile.h\n+++ b/lib/cfgfile/rte_cfgfile.h\n@@ -12,11 +12,11 @@ extern \"C\" {\n #endif\n \n /**\n-* @file\n-* RTE Configuration File\n-*\n-* This library allows reading application defined parameters from standard\n-* format configuration file.\n+ * @file\n+ * Configuration File management.\n+ *\n+ * This library allows reading application defined parameters\n+ * from standard format configuration file.\n  */\n \n #ifndef CFG_NAME_LEN\n@@ -63,15 +63,15 @@ enum {\n #define CFG_DEFAULT_COMMENT_CHARACTER ';'\n \n /**\n-* Open config file\n-*\n-* @param filename\n-*   Config file name\n-* @param flags\n-*   Config file flags\n-* @return\n-*   Handle to configuration file on success, NULL otherwise\n-*/\n+ * Open config file.\n+ *\n+ * @param filename\n+ *   Config file name.\n+ * @param flags\n+ *   Config file flags.\n+ * @return\n+ *   Handle to configuration file on success, NULL otherwise.\n+ */\n struct rte_cfgfile *rte_cfgfile_load(const char *filename, int flags);\n \n /**\n@@ -167,133 +167,133 @@ int rte_cfgfile_set_entry(struct rte_cfgfile *cfg, const char *sectionname,\n int rte_cfgfile_save(struct rte_cfgfile *cfg, const char *filename);\n \n /**\n-* Get number of sections in config file\n-*\n-* @param cfg\n-*   Config file\n-* @param sec_name\n-*   Section name\n-* @param length\n-*   Maximum section name length\n-* @return\n-*   Number of sections\n-*/\n+ * Get number of sections in config file.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sec_name\n+ *   Section name.\n+ * @param length\n+ *   Maximum section name length.\n+ * @return\n+ *   Number of sections.\n+ */\n int rte_cfgfile_num_sections(struct rte_cfgfile *cfg, const char *sec_name,\n \tsize_t length);\n \n /**\n-* Get name of all config file sections.\n-*\n-* Fills in the array sections with the name of all the sections in the file\n-* (up to the number of max_sections sections).\n-*\n-* @param cfg\n-*   Config file\n-* @param sections\n-*   Array containing section names after successful invocation. Each element\n-*   of this array should be preallocated by the user with at least\n-*   CFG_NAME_LEN characters.\n-* @param max_sections\n-*   Maximum number of section names to be stored in sections array\n-* @return\n-*   Number of populated sections names\n-*/\n+ * Get name of all config file sections.\n+ *\n+ * Fills in the array sections with the name of all the sections in the file\n+ * (up to the number of max_sections sections).\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sections\n+ *   Array containing section names after successful invocation.\n+ *   Each element of this array should be preallocated by the user\n+ *   with at least CFG_NAME_LEN characters.\n+ * @param max_sections\n+ *   Maximum number of section names to be stored in sections array.\n+ * @return\n+ *   Number of populated sections names.\n+ */\n int rte_cfgfile_sections(struct rte_cfgfile *cfg, char *sections[],\n \tint max_sections);\n \n /**\n-* Check if given section exists in config file\n-*\n-* @param cfg\n-*   Config file\n-* @param sectionname\n-*   Section name\n-* @return\n-*   TRUE (value different than 0) if section exists, FALSE (value 0) otherwise\n-*/\n+ * Check if given section exists in config file.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sectionname\n+ *   Section name.\n+ * @return\n+ *   TRUE (value different than 0) if section exists, FALSE (value 0) otherwise.\n+ */\n int rte_cfgfile_has_section(struct rte_cfgfile *cfg, const char *sectionname);\n \n /**\n-* Get number of entries in given config file section\n-*\n-* If multiple sections have the given name this function operates on the\n-* first one.\n-*\n-* @param cfg\n-*   Config file\n-* @param sectionname\n-*   Section name\n-* @return\n-*   Number of entries in section on success, -1 otherwise\n-*/\n+ * Get number of entries in given config file section.\n+ *\n+ * If multiple sections have the given name,\n+ * this function operates on the first one.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sectionname\n+ *   Section name.\n+ * @return\n+ *   Number of entries in section on success, -1 otherwise.\n+ */\n int rte_cfgfile_section_num_entries(struct rte_cfgfile *cfg,\n \tconst char *sectionname);\n \n /**\n-* Get number of entries in given config file section\n-*\n-* The index of a section is the same as the index of its name in the\n-* result of rte_cfgfile_sections. This API can be used when there are\n-* multiple sections with the same name.\n-*\n-* @param cfg\n-*   Config file\n-* @param sectionname\n-*   Section name\n-* @param index\n-*   Section index\n-* @return\n-*   Number of entries in section on success, -1 otherwise\n-*/\n+ * Get number of entries in given config file section.\n+ *\n+ * The index of a section is the same as the index of its name\n+ * in the result of rte_cfgfile_sections.\n+ * This API can be used when there are multiple sections with the same name.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sectionname\n+ *   Section name.\n+ * @param index\n+ *   Section index.\n+ * @return\n+ *   Number of entries in section on success, -1 otherwise.\n+ */\n int rte_cfgfile_section_num_entries_by_index(struct rte_cfgfile *cfg,\n \tchar *sectionname,\n \tint index);\n \n /**\n-* Get section entries as key-value pairs\n-*\n-* If multiple sections have the given name this function operates on the\n-* first one.\n-*\n-* @param cfg\n-*   Config file\n-* @param sectionname\n-*   Section name\n-* @param entries\n-*   Pre-allocated array of at least max_entries entries where the section\n-*   entries are stored as key-value pair after successful invocation\n-* @param max_entries\n-*   Maximum number of section entries to be stored in entries array\n-* @return\n-*   Number of entries populated on success, -1 otherwise\n-*/\n+ * Get section entries as key-value pairs.\n+ *\n+ * If multiple sections have the given name,\n+ * this function operates on the first one.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sectionname\n+ *   Section name.\n+ * @param entries\n+ *   Pre-allocated array of at least max_entries entries where the section\n+ *   entries are stored as key-value pair after successful invocation.\n+ * @param max_entries\n+ *   Maximum number of section entries to be stored in entries array.\n+ * @return\n+ *   Number of entries populated on success, -1 otherwise.\n+ */\n int rte_cfgfile_section_entries(struct rte_cfgfile *cfg,\n \tconst char *sectionname,\n \tstruct rte_cfgfile_entry *entries,\n \tint max_entries);\n \n /**\n-* Get section entries as key-value pairs\n-*\n-* The index of a section is the same as the index of its name in the\n-* result of rte_cfgfile_sections. This API can be used when there are\n-* multiple sections with the same name.\n-*\n-* @param cfg\n-*   Config file\n-* @param index\n-*   Section index\n-* @param sectionname\n-*   Pre-allocated string of at least CFG_NAME_LEN characters where the\n-*   section name is stored after successful invocation.\n-* @param entries\n-*   Pre-allocated array of at least max_entries entries where the section\n-*   entries are stored as key-value pair after successful invocation\n-* @param max_entries\n-*   Maximum number of section entries to be stored in entries array\n-* @return\n-*   Number of entries populated on success, -1 otherwise\n-*/\n+ * Get section entries as key-value pairs.\n+ *\n+ * The index of a section is the same as the index of its name\n+ * in the result of rte_cfgfile_sections.\n+ * This API can be used when there are multiple sections with the same name.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param index\n+ *   Section index.\n+ * @param sectionname\n+ *   Pre-allocated string of at least CFG_NAME_LEN characters\n+ *   where the section name is stored after successful invocation.\n+ * @param entries\n+ *   Pre-allocated array of at least max_entries entries where the section\n+ *   entries are stored as key-value pair after successful invocation.\n+ * @param max_entries\n+ *   Maximum number of section entries to be stored in entries array.\n+ * @return\n+ *   Number of entries populated on success, -1 otherwise.\n+ */\n int rte_cfgfile_section_entries_by_index(struct rte_cfgfile *cfg,\n \tint index,\n \tchar *sectionname,\n@@ -301,50 +301,50 @@ int rte_cfgfile_section_entries_by_index(struct rte_cfgfile *cfg,\n \tint max_entries);\n \n /**\n-* Get value of the named entry in named config file section\n-*\n-* If multiple sections have the given name this function operates on the\n-* first one.\n-*\n-* @param cfg\n-*   Config file\n-* @param sectionname\n-*   Section name\n-* @param entryname\n-*   Entry name\n-* @return\n-*   Entry value on success, NULL otherwise\n-*/\n+ * Get value of the named entry in named config file section.\n+ *\n+ * If multiple sections have the given name,\n+ * this function operates on the first one.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sectionname\n+ *   Section name.\n+ * @param entryname\n+ *   Entry name.\n+ * @return\n+ *   Entry value on success, NULL otherwise.\n+ */\n const char *rte_cfgfile_get_entry(struct rte_cfgfile *cfg,\n \tconst char *sectionname,\n \tconst char *entryname);\n \n /**\n-* Check if given entry exists in named config file section\n-*\n-* If multiple sections have the given name this function operates on the\n-* first one.\n-*\n-* @param cfg\n-*   Config file\n-* @param sectionname\n-*   Section name\n-* @param entryname\n-*   Entry name\n-* @return\n-*   TRUE (value different than 0) if entry exists, FALSE (value 0) otherwise\n-*/\n+ * Check if given entry exists in named config file section.\n+ *\n+ * If multiple sections have the given name,\n+ * this function operates on the first one.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @param sectionname\n+ *   Section name.\n+ * @param entryname\n+ *   Entry name.\n+ * @return\n+ *   TRUE (value different than 0) if entry exists, FALSE (value 0) otherwise.\n+ */\n int rte_cfgfile_has_entry(struct rte_cfgfile *cfg, const char *sectionname,\n \tconst char *entryname);\n \n /**\n-* Close config file\n-*\n-* @param cfg\n-*   Config file\n-* @return\n-*   0 on success, -1 otherwise\n-*/\n+ * Close config file.\n+ *\n+ * @param cfg\n+ *   Config file.\n+ * @return\n+ *   0 on success, -1 otherwise.\n+ */\n int rte_cfgfile_close(struct rte_cfgfile *cfg);\n \n #ifdef __cplusplus\ndiff --git a/lib/cmdline/cmdline_parse_string.h b/lib/cmdline/cmdline_parse_string.h\nindex 52a26670ee..2199ca9a21 100644\n--- a/lib/cmdline/cmdline_parse_string.h\n+++ b/lib/cmdline/cmdline_parse_string.h\n@@ -44,13 +44,13 @@ int cmdline_get_help_string(cmdline_parse_token_hdr_t *tk, char *dstbuf,\n \t\t\t    unsigned int size);\n \n /**\n-* Token marked as TOKEN_STRING_MULTI takes entire parsing string\n-* until “#” sign appear. Everything after “#” sign is treated as a comment.\n-*\n-* Note:\n-* In this case second parameter of TOKEN_STRING_INITIALIZER must be a type of\n-* cmdline_multi_string_t.\n-*/\n+ * Token marked as TOKEN_STRING_MULTI takes entire parsing string\n+ * until “#” sign appear. Everything after “#” sign is treated as a comment.\n+ *\n+ * Note:\n+ * In this case second parameter of TOKEN_STRING_INITIALIZER\n+ * must be a type of cmdline_multi_string_t.\n+ */\n #define TOKEN_STRING_MULTI \"\"\n \n #define TOKEN_STRING_INITIALIZER(structure, field, string)  \\\ndiff --git a/lib/eal/arm/include/rte_cycles_32.h b/lib/eal/arm/include/rte_cycles_32.h\nindex cec4d69e7a..859cd2e5bb 100644\n--- a/lib/eal/arm/include/rte_cycles_32.h\n+++ b/lib/eal/arm/include/rte_cycles_32.h\n@@ -5,12 +5,13 @@\n #ifndef _RTE_CYCLES_ARM32_H_\n #define _RTE_CYCLES_ARM32_H_\n \n-/* ARM v7 does not have suitable source of clock signals. The only clock counter\n-   available in the core is 32 bit wide. Therefore it is unsuitable as the\n-   counter overlaps every few seconds and probably is not accessible by\n-   userspace programs. Therefore we use clock_gettime(CLOCK_MONOTONIC_RAW) to\n-   simulate counter running at 1GHz.\n-*/\n+/* ARM v7 does not have suitable source of clock signals.\n+ * The only clock counter available in the core is 32 bit wide.\n+ * Therefore it is unsuitable as the counter overlaps every few seconds\n+ * and probably is not accessible by userspace programs.\n+ * Therefore we use clock_gettime(CLOCK_MONOTONIC_RAW)\n+ * to simulate counter running at 1GHz.\n+ */\n \n #include <time.h>\n \ndiff --git a/lib/eal/include/generic/rte_cycles.h b/lib/eal/include/generic/rte_cycles.h\nindex 69f3cee8d1..075e899f5a 100644\n--- a/lib/eal/include/generic/rte_cycles.h\n+++ b/lib/eal/include/generic/rte_cycles.h\n@@ -38,7 +38,7 @@ rte_get_tsc_hz(void);\n /**\n  * Return the number of TSC cycles since boot\n  *\n-  * @return\n+ * @return\n  *   the number of cycles\n  */\n static inline uint64_t\ndiff --git a/lib/eal/include/rte_hexdump.h b/lib/eal/include/rte_hexdump.h\nindex 80cf2933a7..009ce24c5c 100644\n--- a/lib/eal/include/rte_hexdump.h\n+++ b/lib/eal/include/rte_hexdump.h\n@@ -17,37 +17,34 @@ extern \"C\" {\n #endif\n \n /**\n-* Dump out memory in a special hex dump format.\n-*\n-* @param f\n-*\t\tA pointer to a file for output\n-* @param title\n-*\t\tIf not NULL this string is printed as a header to the output.\n-* @param buf\n-*\t\tThis is the buffer address to print out.\n-* @param len\n-*\t\tThe number of bytes to dump out\n-*/\n-\n+ * Dump out memory in a special hex dump format.\n+ *\n+ * @param f\n+ *   A pointer to a file for output.\n+ * @param title\n+ *   If not NULL this string is printed as a header to the output.\n+ * @param buf\n+ *   This is the buffer address to print out.\n+ * @param len\n+ *   The number of bytes to dump out.\n+ */\n extern void\n-rte_hexdump(FILE *f, const char * title, const void * buf, unsigned int len);\n+rte_hexdump(FILE *f, const char *title, const void *buf, unsigned int len);\n \n /**\n-* Dump out memory in a hex format with colons between bytes.\n-*\n-* @param f\n-*\t\tA pointer to a file for output\n-* @param title\n-*\t\tIf not NULL this string is printed as a header to the output.\n-* @param buf\n-*\t\tThis is the buffer address to print out.\n-* @param len\n-*\t\tThe number of bytes to dump out\n-*/\n-\n+ * Dump out memory in a hex format with colons between bytes.\n+ *\n+ * @param f\n+ *   A pointer to a file for output.\n+ * @param title\n+ *   If not NULL this string is printed as a header to the output.\n+ * @param buf\n+ *   This is the buffer address to print out.\n+ * @param len\n+ *   The number of bytes to dump out.\n+ */\n void\n-rte_memdump(FILE *f, const char * title, const void * buf, unsigned int len);\n-\n+rte_memdump(FILE *f, const char *title, const void *buf, unsigned int len);\n \n #ifdef __cplusplus\n }\ndiff --git a/lib/eal/ppc/include/rte_byteorder.h b/lib/eal/ppc/include/rte_byteorder.h\nindex bfdded40f5..49f369f1e7 100644\n--- a/lib/eal/ppc/include/rte_byteorder.h\n+++ b/lib/eal/ppc/include/rte_byteorder.h\n@@ -39,7 +39,7 @@ static inline uint32_t rte_arch_bswap32(uint32_t _x)\n /*\n  * An architecture-optimized byte swap for a 64-bit value.\n  *\n-  * Do not use this function directly. The preferred function is rte_bswap64().\n+ * Do not use this function directly. The preferred function is rte_bswap64().\n  */\n /* 64-bit mode */\n static inline uint64_t rte_arch_bswap64(uint64_t _x)\ndiff --git a/lib/eal/x86/include/rte_byteorder_32.h b/lib/eal/x86/include/rte_byteorder_32.h\nindex d5a768e52b..da901a4176 100644\n--- a/lib/eal/x86/include/rte_byteorder_32.h\n+++ b/lib/eal/x86/include/rte_byteorder_32.h\n@@ -15,7 +15,7 @@\n /*\n  * An architecture-optimized byte swap for a 64-bit value.\n  *\n-  * Do not use this function directly. The preferred function is rte_bswap64().\n+ * Do not use this function directly. The preferred function is rte_bswap64().\n  */\n /* Compat./Leg. mode */\n static inline uint64_t rte_arch_bswap64(uint64_t x)\ndiff --git a/lib/eal/x86/include/rte_byteorder_64.h b/lib/eal/x86/include/rte_byteorder_64.h\nindex 8c6cf285b5..537d9a511e 100644\n--- a/lib/eal/x86/include/rte_byteorder_64.h\n+++ b/lib/eal/x86/include/rte_byteorder_64.h\n@@ -15,7 +15,7 @@\n /*\n  * An architecture-optimized byte swap for a 64-bit value.\n  *\n-  * Do not use this function directly. The preferred function is rte_bswap64().\n+ * Do not use this function directly. The preferred function is rte_bswap64().\n  */\n /* 64-bit mode */\n static inline uint64_t rte_arch_bswap64(uint64_t _x)\ndiff --git a/lib/ethdev/rte_ethdev.h b/lib/ethdev/rte_ethdev.h\nindex e550f09889..91a3b863db 100644\n--- a/lib/ethdev/rte_ethdev.h\n+++ b/lib/ethdev/rte_ethdev.h\n@@ -825,10 +825,10 @@ rte_eth_rss_hf_refine(uint64_t rss_hf)\n #define RTE_ETH_VLAN_ID_MAX          0x0FFF /**< VLAN ID is in lower 12 bits*/\n /**@}*/\n \n-/* Definitions used for receive MAC address   */\n+/* Definitions used for receive MAC address */\n #define RTE_ETH_NUM_RECEIVE_MAC_ADDR   128 /**< Maximum nb. of receive mac addr. */\n \n-/* Definitions used for unicast hash  */\n+/* Definitions used for unicast hash */\n #define RTE_ETH_VMDQ_NUM_UC_HASH_ARRAY 128 /**< Maximum nb. of UC hash array. */\n \n /**@{@name VMDq Rx mode\n@@ -4496,7 +4496,7 @@ int rte_eth_dev_rss_reta_query(uint16_t port_id,\n  * @return\n  *   - (0) if successful.\n  *   - (-ENOTSUP) if hardware doesn't support.\n-  *  - (-ENODEV) if *port_id* invalid.\n+ *   - (-ENODEV) if *port_id* invalid.\n  *   - (-EIO) if device is removed.\n  *   - (-EINVAL) if bad parameter.\n  */\n@@ -4517,7 +4517,7 @@ int rte_eth_dev_uc_hash_table_set(uint16_t port_id, struct rte_ether_addr *addr,\n  * @return\n  *   - (0) if successful.\n  *   - (-ENOTSUP) if hardware doesn't support.\n-  *  - (-ENODEV) if *port_id* invalid.\n+ *   - (-ENODEV) if *port_id* invalid.\n  *   - (-EIO) if device is removed.\n  *   - (-EINVAL) if bad parameter.\n  */\n@@ -5231,38 +5231,39 @@ int\n rte_eth_read_clock(uint16_t port_id, uint64_t *clock);\n \n /**\n-* Get the port ID from device name. The device name should be specified\n-* as below:\n-* - PCIe address (Domain:Bus:Device.Function), for example- 0000:2:00.0\n-* - SoC device name, for example- fsl-gmac0\n-* - vdev dpdk name, for example- net_[pcap0|null0|tap0]\n-*\n-* @param name\n-*  pci address or name of the device\n-* @param port_id\n-*   pointer to port identifier of the device\n-* @return\n-*   - (0) if successful and port_id is filled.\n-*   - (-ENODEV or -EINVAL) on failure.\n-*/\n+ * Get the port ID from device name.\n+ * The device name should be specified as below:\n+ * - PCIe address (Domain:Bus:Device.Function), for example- 0000:2:00.0\n+ * - SoC device name, for example- fsl-gmac0\n+ * - vdev dpdk name, for example- net_[pcap0|null0|tap0]\n+ *\n+ * @param name\n+ *   PCI address or name of the device.\n+ * @param port_id\n+ *   Pointer to port identifier of the device.\n+ * @return\n+ *   - (0) if successful and port_id is filled.\n+ *   - (-ENODEV or -EINVAL) on failure.\n+ */\n int\n rte_eth_dev_get_port_by_name(const char *name, uint16_t *port_id);\n \n /**\n-* Get the device name from port ID. The device name is specified as below:\n-* - PCIe address (Domain:Bus:Device.Function), for example- 0000:02:00.0\n-* - SoC device name, for example- fsl-gmac0\n-* - vdev dpdk name, for example- net_[pcap0|null0|tun0|tap0]\n-*\n-* @param port_id\n-*   Port identifier of the device.\n-* @param name\n-*   Buffer of size RTE_ETH_NAME_MAX_LEN to store the name.\n-* @return\n-*   - (0) if successful.\n-*   - (-ENODEV) if *port_id* is invalid.\n-*   - (-EINVAL) on failure.\n-*/\n+ * Get the device name from port ID.\n+ * The device name is specified as below:\n+ * - PCIe address (Domain:Bus:Device.Function), for example- 0000:02:00.0\n+ * - SoC device name, for example- fsl-gmac0\n+ * - vdev dpdk name, for example- net_[pcap0|null0|tun0|tap0]\n+ *\n+ * @param port_id\n+ *   Port identifier of the device.\n+ * @param name\n+ *   Buffer of size RTE_ETH_NAME_MAX_LEN to store the name.\n+ * @return\n+ *   - (0) if successful.\n+ *   - (-ENODEV) if *port_id* is invalid.\n+ *   - (-EINVAL) on failure.\n+ */\n int\n rte_eth_dev_get_name_by_port(uint16_t port_id, char *name);\n \ndiff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h\nindex e11c4a044a..59e4093a5b 100644\n--- a/lib/ethdev/rte_flow.h\n+++ b/lib/ethdev/rte_flow.h\n@@ -5831,10 +5831,10 @@ rte_flow_template_table_destroy(uint16_t port_id,\n  */\n __extension__\n struct rte_flow_op_attr {\n-\t /**\n-\t  * When set, the requested action will not be sent to the HW immediately.\n-\t  * The application must call the rte_flow_queue_push to actually send it.\n-\t  */\n+\t/**\n+\t * When set, the requested action will not be sent to the HW immediately.\n+\t * The application must call the rte_flow_queue_push to actually send it.\n+\t */\n \tuint32_t postpone:1;\n };\n \ndiff --git a/lib/ethdev/rte_tm.h b/lib/ethdev/rte_tm.h\nindex 001d13f301..4103c49a3f 100644\n--- a/lib/ethdev/rte_tm.h\n+++ b/lib/ethdev/rte_tm.h\n@@ -1937,9 +1937,9 @@ rte_tm_node_cman_update(uint16_t port_id,\n  *   Error details. Filled in only on error, when not NULL.\n  * @return\n  *   0 on success, non-zero error code otherwise.\n-  *\n+ *\n  * @see struct rte_tm_capabilities::cman_wred_context_private_n_max\n-*/\n+ */\n __rte_experimental\n int\n rte_tm_node_wred_context_update(uint16_t port_id,\ndiff --git a/lib/table/rte_table_hash_ext.c b/lib/table/rte_table_hash_ext.c\nindex bb7d23019b..4753ccb15c 100644\n--- a/lib/table/rte_table_hash_ext.c\n+++ b/lib/table/rte_table_hash_ext.c\n@@ -829,20 +829,20 @@ static int rte_table_hash_ext_lookup_unoptimized(\n }\n \n /*\n-* The lookup function implements a 4-stage pipeline, with each stage processing\n-* two different packets. The purpose of pipelined implementation is to hide the\n-* latency of prefetching the data structures and loosen the data dependency\n-* between instructions.\n-*\n-*  p00  _______   p10  _______   p20  _______   p30  _______\n-*----->|       |----->|       |----->|       |----->|       |----->\n-*      |   0   |      |   1   |      |   2   |      |   3   |\n-*----->|_______|----->|_______|----->|_______|----->|_______|----->\n-*  p01            p11            p21            p31\n-*\n-* The naming convention is:\n-*    pXY = packet Y of stage X, X = 0 .. 3, Y = 0 .. 1\n-*/\n+ * The lookup function implements a 4-stage pipeline, with each stage processing\n+ * two different packets. The purpose of pipelined implementation is to hide the\n+ * latency of prefetching the data structures and loosen the data dependency\n+ * between instructions.\n+ *\n+ *  p00  _______   p10  _______   p20  _______   p30  _______\n+ *----->|       |----->|       |----->|       |----->|       |----->\n+ *      |   0   |      |   1   |      |   2   |      |   3   |\n+ *----->|_______|----->|_______|----->|_______|----->|_______|----->\n+ *  p01            p11            p21            p31\n+ *\n+ * The naming convention is:\n+ *    pXY = packet Y of stage X, X = 0 .. 3, Y = 0 .. 1\n+ */\n static int rte_table_hash_ext_lookup(\n \tvoid *table,\n \tstruct rte_mbuf **pkts,\ndiff --git a/lib/table/rte_table_hash_lru.c b/lib/table/rte_table_hash_lru.c\nindex d71fc70834..f312d898c2 100644\n--- a/lib/table/rte_table_hash_lru.c\n+++ b/lib/table/rte_table_hash_lru.c\n@@ -452,43 +452,43 @@ static int rte_table_hash_lru_lookup_unoptimized(\n }\n \n /*\n-* mask = match bitmask\n-* match = at least one match\n-* match_many = more than one match\n-* match_pos = position of first match\n-*\n-* ----------------------------------------\n-* mask\t\t match\t match_many\t  match_pos\n-* ----------------------------------------\n-* 0000\t\t 0\t\t 0\t\t\t  00\n-* 0001\t\t 1\t\t 0\t\t\t  00\n-* 0010\t\t 1\t\t 0\t\t\t  01\n-* 0011\t\t 1\t\t 1\t\t\t  00\n-* ----------------------------------------\n-* 0100\t\t 1\t\t 0\t\t\t  10\n-* 0101\t\t 1\t\t 1\t\t\t  00\n-* 0110\t\t 1\t\t 1\t\t\t  01\n-* 0111\t\t 1\t\t 1\t\t\t  00\n-* ----------------------------------------\n-* 1000\t\t 1\t\t 0\t\t\t  11\n-* 1001\t\t 1\t\t 1\t\t\t  00\n-* 1010\t\t 1\t\t 1\t\t\t  01\n-* 1011\t\t 1\t\t 1\t\t\t  00\n-* ----------------------------------------\n-* 1100\t\t 1\t\t 1\t\t\t  10\n-* 1101\t\t 1\t\t 1\t\t\t  00\n-* 1110\t\t 1\t\t 1\t\t\t  01\n-* 1111\t\t 1\t\t 1\t\t\t  00\n-* ----------------------------------------\n-*\n-* match = 1111_1111_1111_1110\n-* match_many = 1111_1110_1110_1000\n-* match_pos = 0001_0010_0001_0011__0001_0010_0001_0000\n-*\n-* match = 0xFFFELLU\n-* match_many = 0xFEE8LLU\n-* match_pos = 0x12131210LLU\n-*/\n+ * mask = match bitmask\n+ * match = at least one match\n+ * match_many = more than one match\n+ * match_pos = position of first match\n+ *\n+ * ----------------------------------------\n+ * mask\t\t match\t match_many\t  match_pos\n+ * ----------------------------------------\n+ * 0000\t\t 0\t\t 0\t\t\t  00\n+ * 0001\t\t 1\t\t 0\t\t\t  00\n+ * 0010\t\t 1\t\t 0\t\t\t  01\n+ * 0011\t\t 1\t\t 1\t\t\t  00\n+ * ----------------------------------------\n+ * 0100\t\t 1\t\t 0\t\t\t  10\n+ * 0101\t\t 1\t\t 1\t\t\t  00\n+ * 0110\t\t 1\t\t 1\t\t\t  01\n+ * 0111\t\t 1\t\t 1\t\t\t  00\n+ * ----------------------------------------\n+ * 1000\t\t 1\t\t 0\t\t\t  11\n+ * 1001\t\t 1\t\t 1\t\t\t  00\n+ * 1010\t\t 1\t\t 1\t\t\t  01\n+ * 1011\t\t 1\t\t 1\t\t\t  00\n+ * ----------------------------------------\n+ * 1100\t\t 1\t\t 1\t\t\t  10\n+ * 1101\t\t 1\t\t 1\t\t\t  00\n+ * 1110\t\t 1\t\t 1\t\t\t  01\n+ * 1111\t\t 1\t\t 1\t\t\t  00\n+ * ----------------------------------------\n+ *\n+ * match = 1111_1111_1111_1110\n+ * match_many = 1111_1110_1110_1000\n+ * match_pos = 0001_0010_0001_0011__0001_0010_0001_0000\n+ *\n+ * match = 0xFFFELLU\n+ * match_many = 0xFEE8LLU\n+ * match_pos = 0x12131210LLU\n+ */\n \n #define LUT_MATCH\t\t\t\t\t\t0xFFFELLU\n #define LUT_MATCH_MANY\t\t\t\t\t\t0xFEE8LLU\n@@ -781,20 +781,20 @@ static int rte_table_hash_lru_lookup_unoptimized(\n }\n \n /*\n-* The lookup function implements a 4-stage pipeline, with each stage processing\n-* two different packets. The purpose of pipelined implementation is to hide the\n-* latency of prefetching the data structures and loosen the data dependency\n-* between instructions.\n-*\n-*   p00  _______   p10  _______   p20  _______   p30  _______\n-* ----->|       |----->|       |----->|       |----->|       |----->\n-*       |   0   |      |   1   |      |   2   |      |   3   |\n-* ----->|_______|----->|_______|----->|_______|----->|_______|----->\n-*   p01            p11            p21            p31\n-*\n-* The naming convention is:\n-*\t  pXY = packet Y of stage X, X = 0 .. 3, Y = 0 .. 1\n-*/\n+ * The lookup function implements a 4-stage pipeline, with each stage processing\n+ * two different packets. The purpose of pipelined implementation is to hide the\n+ * latency of prefetching the data structures and loosen the data dependency\n+ * between instructions.\n+ *\n+ *   p00  _______   p10  _______   p20  _______   p30  _______\n+ * ----->|       |----->|       |----->|       |----->|       |----->\n+ *       |   0   |      |   1   |      |   2   |      |   3   |\n+ * ----->|_______|----->|_______|----->|_______|----->|_______|----->\n+ *   p01            p11            p21            p31\n+ *\n+ * The naming convention is:\n+ *\t  pXY = packet Y of stage X, X = 0 .. 3, Y = 0 .. 1\n+ */\n static int rte_table_hash_lru_lookup(\n \tvoid *table,\n \tstruct rte_mbuf **pkts,\n",
    "prefixes": [
        "3/5"
    ]
}