get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 91050,
    "url": "http://patchwork.dpdk.org/api/patches/91050/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20210410224732.20234-2-dmitry.kozliuk@gmail.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20210410224732.20234-2-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210410224732.20234-2-dmitry.kozliuk@gmail.com",
    "date": "2021-04-10T22:47:29",
    "name": "[v9,1/4] eal/windows: hide asprintf() shim",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "7c10a17a0ccb96c99981820e05288a4ada707e40",
    "submitter": {
        "id": 1581,
        "url": "http://patchwork.dpdk.org/api/people/1581/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dmitry.kozliuk@gmail.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20210410224732.20234-2-dmitry.kozliuk@gmail.com/mbox/",
    "series": [
        {
            "id": 16271,
            "url": "http://patchwork.dpdk.org/api/series/16271/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=16271",
            "date": "2021-04-10T22:47:28",
            "name": "eal/windows: do not expose POSIX symbols",
            "version": 9,
            "mbox": "http://patchwork.dpdk.org/series/16271/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/91050/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/91050/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 D6CAEA0547;\n\tSun, 11 Apr 2021 00:47:47 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id AA3F914131E;\n\tSun, 11 Apr 2021 00:47:45 +0200 (CEST)",
            "from mail-lf1-f54.google.com (mail-lf1-f54.google.com\n [209.85.167.54])\n by mails.dpdk.org (Postfix) with ESMTP id 67BE71412F0\n for <dev@dpdk.org>; Sun, 11 Apr 2021 00:47:42 +0200 (CEST)",
            "by mail-lf1-f54.google.com with SMTP id b4so15345992lfi.6\n for <dev@dpdk.org>; Sat, 10 Apr 2021 15:47:42 -0700 (PDT)",
            "from localhost.localdomain (broadband-37-110-65-23.ip.moscow.rt.ru.\n [37.110.65.23])\n by smtp.gmail.com with ESMTPSA id o15sm370270lfu.155.2021.04.10.15.47.40\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 10 Apr 2021 15:47:40 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=R4TeunL59d1iplrfiowX1KEGm6Hi2DSeWMgA8pw6POI=;\n b=p8gYaX3QE+cEVLSP4LKQrbb7wDDHzw2RFRPNaA5242CmjZp7F7cbjLvEZ/YAXcBxv2\n pDxYs5s6UigNVd0g78+mr1mJQ+TxJ90jlPe8UBk8BvD+S+Nw94CfxyrXqEzdqPLjbfAu\n wQjXBcf9pDLFXFxqCxanlMR7Ey5HK2TCaX6Hw7UndI56Vaf05HEhYfqmJKA3KIJ6URKC\n SbvaiAQwXtUKSELo/E6R/eCDrSYvx9gdReWzwyLeJPfmORbPzhwLkyCQeja+uqJHIrEu\n nc9JgmGyIkOPyKbtdBWC3H62gm+phmoaeca1n+5Qo+KbwIa2tVNu/QyNhnA9l+JNK1NZ\n 6yfw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=R4TeunL59d1iplrfiowX1KEGm6Hi2DSeWMgA8pw6POI=;\n b=fJuYf0tg/UpZ+zkakHvzuj/iG4xOxfLO0pkVJbjEXPXnEw68w2ibaS6Q3eERi+sWS1\n OEPvinGlloQuk9CTYKvTXp4fMJNBZUKbr+urT4zZP8ytywwLIxwQRw3wefCQpCS7WQJ1\n rOAtX6D6u2gron9GaNh0ZZp2KHBYdJEA+RCW2NojUbWXnOalGfTzg8zbMTN7tCIg4vBR\n kMR3/GIo6Az2kpd/7H3XZUIXizK22XIkUsIsaCS802gg0scZMiOL2KMQ6KeKnaT2mrnw\n sMeemJZMlUybA6zlwpXjcLB0OTf86QHQy0IvV7KAXrdgk2TClBf5GY/SMoa8CgCD6Nt6\n pQgQ==",
        "X-Gm-Message-State": "AOAM530Q/aPjw8OcmjLoR5mvGVPb/BhXLaK/86urmLgtqHkh4aoAMYBx\n cIyHq0qyDF0MJJ1fQlHhMhP0UG4SqS6Yhw==",
        "X-Google-Smtp-Source": "\n ABdhPJwPifdUhv2QxAVdYbBHKHdYbWFj5gKsuv51zU4N/gRwL7xG6Kl7Jew7ctabWVAIHHIuBUctQw==",
        "X-Received": "by 2002:a19:5d55:: with SMTP id\n p21mr14091982lfj.316.1618094861683;\n Sat, 10 Apr 2021 15:47:41 -0700 (PDT)",
        "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "To": "dev@dpdk.org",
        "Cc": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>, Khoa To <khot@microsoft.com>,\n Nick Connolly <nick.connolly@mayadata.io>,\n Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>,\n Dmitry Malloy <dmitrym@microsoft.com>,\n Pallavi Kadam <pallavi.kadam@intel.com>",
        "Date": "Sun, 11 Apr 2021 01:47:29 +0300",
        "Message-Id": "<20210410224732.20234-2-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.29.3",
        "In-Reply-To": "<20210410224732.20234-1-dmitry.kozliuk@gmail.com>",
        "References": "<20210407222249.6729-1-dmitry.kozliuk@gmail.com>\n <20210410224732.20234-1-dmitry.kozliuk@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v9 1/4] eal/windows: hide asprintf() shim",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Make asprintf(3) implementation for Windows private to EAL, so that it's\nhidden from external consumers. It is not exposed to internal consumers\neither, because they don't need asprintf() and also because callers from\nother modules would have no reliable way to free allocated memory.\n\nSigned-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>\nAcked-by: Khoa To <khot@microsoft.com>\nAcked-by: Nick Connolly <nick.connolly@mayadata.io>\n---\n lib/librte_eal/common/eal_private.h     | 11 +++++++++\n lib/librte_eal/windows/eal.c            | 30 +++++++++++++++++++++++++\n lib/librte_eal/windows/include/rte_os.h | 30 -------------------------\n 3 files changed, 41 insertions(+), 30 deletions(-)",
    "diff": "diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h\nindex e3512111d9..64cf4e81c8 100644\n--- a/lib/librte_eal/common/eal_private.h\n+++ b/lib/librte_eal/common/eal_private.h\n@@ -716,4 +716,15 @@ void __rte_thread_init(unsigned int lcore_id, rte_cpuset_t *cpuset);\n  */\n void __rte_thread_uninit(void);\n \n+/**\n+ * asprintf(3) replacement for Windows.\n+ */\n+#ifdef RTE_EXEC_ENV_WINDOWS\n+__rte_format_printf(2, 3)\n+int eal_asprintf(char **buffer, const char *format, ...);\n+\n+#define asprintf(buffer, format, ...) \\\n+\t\teal_asprintf(buffer, format, ##__VA_ARGS__)\n+#endif\n+\n #endif /* _EAL_PRIVATE_H_ */\ndiff --git a/lib/librte_eal/windows/eal.c b/lib/librte_eal/windows/eal.c\nindex 41be20d89f..28c787c0b0 100644\n--- a/lib/librte_eal/windows/eal.c\n+++ b/lib/librte_eal/windows/eal.c\n@@ -2,6 +2,8 @@\n  * Copyright(c) 2019 Intel Corporation\n  */\n \n+#include <stdarg.h>\n+\n #include <fcntl.h>\n #include <io.h>\n #include <share.h>\n@@ -416,6 +418,34 @@ rte_eal_init(int argc, char **argv)\n \treturn fctret;\n }\n \n+/* Don't use MinGW asprintf() to have identical code with all toolchains. */\n+int\n+eal_asprintf(char **buffer, const char *format, ...)\n+{\n+\tint size, ret;\n+\tva_list arg;\n+\n+\tva_start(arg, format);\n+\tsize = vsnprintf(NULL, 0, format, arg);\n+\tva_end(arg);\n+\tif (size < 0)\n+\t\treturn -1;\n+\tsize++;\n+\n+\t*buffer = malloc(size);\n+\tif (*buffer == NULL)\n+\t\treturn -1;\n+\n+\tva_start(arg, format);\n+\tret = vsnprintf(*buffer, size, format, arg);\n+\tva_end(arg);\n+\tif (ret != size - 1) {\n+\t\tfree(*buffer);\n+\t\treturn -1;\n+\t}\n+\treturn ret;\n+}\n+\n int\n rte_vfio_container_dma_map(__rte_unused int container_fd,\n \t\t\t__rte_unused uint64_t vaddr,\ndiff --git a/lib/librte_eal/windows/include/rte_os.h b/lib/librte_eal/windows/include/rte_os.h\nindex f0512f20a6..1afe49f35e 100644\n--- a/lib/librte_eal/windows/include/rte_os.h\n+++ b/lib/librte_eal/windows/include/rte_os.h\n@@ -10,7 +10,6 @@\n  * which is not supported natively or named differently in Windows.\n  */\n \n-#include <stdarg.h>\n #include <stdio.h>\n #include <stdlib.h>\n #include <string.h>\n@@ -71,34 +70,6 @@ extern \"C\" {\n typedef long long ssize_t;\n \n #ifndef RTE_TOOLCHAIN_GCC\n-\n-static inline int\n-asprintf(char **buffer, const char *format, ...)\n-{\n-\tint size, ret;\n-\tva_list arg;\n-\n-\tva_start(arg, format);\n-\tsize = vsnprintf(NULL, 0, format, arg);\n-\tva_end(arg);\n-\tif (size < 0)\n-\t\treturn -1;\n-\tsize++;\n-\n-\t*buffer = (char *)malloc(size);\n-\tif (*buffer == NULL)\n-\t\treturn -1;\n-\n-\tva_start(arg, format);\n-\tret = vsnprintf(*buffer, size, format, arg);\n-\tva_end(arg);\n-\tif (ret != size - 1) {\n-\t\tfree(*buffer);\n-\t\treturn -1;\n-\t}\n-\treturn ret;\n-}\n-\n static inline const char *\n eal_strerror(int code)\n {\n@@ -111,7 +82,6 @@ eal_strerror(int code)\n #ifndef strerror\n #define strerror eal_strerror\n #endif\n-\n #endif /* RTE_TOOLCHAIN_GCC */\n \n #ifdef __cplusplus\n",
    "prefixes": [
        "v9",
        "1/4"
    ]
}