get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 115867,
    "url": "http://patches.dpdk.org/api/patches/115867/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220905083933.2506819-28-david.marchand@redhat.com/",
    "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": "<20220905083933.2506819-28-david.marchand@redhat.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220905083933.2506819-28-david.marchand@redhat.com",
    "date": "2022-09-05T08:39:33",
    "name": "[v5,27/27] dev: hide device object",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "8e72ed863acef6aaf330d9b25eb77053f98de96c",
    "submitter": {
        "id": 1173,
        "url": "http://patches.dpdk.org/api/people/1173/?format=api",
        "name": "David Marchand",
        "email": "david.marchand@redhat.com"
    },
    "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/20220905083933.2506819-28-david.marchand@redhat.com/mbox/",
    "series": [
        {
            "id": 24531,
            "url": "http://patches.dpdk.org/api/series/24531/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=24531",
            "date": "2022-09-05T08:39:07",
            "name": "[v5,01/27] devtools: forbid inclusions of driver only headers",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/24531/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/115867/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/115867/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 8C8CFA054A;\n\tMon,  5 Sep 2022 10:42:46 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C7E1E4282B;\n\tMon,  5 Sep 2022 10:41:53 +0200 (CEST)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by mails.dpdk.org (Postfix) with ESMTP id F396942B82\n for <dev@dpdk.org>; Mon,  5 Sep 2022 10:41:51 +0200 (CEST)",
            "from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com\n [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n us-mta-54-GRXTX2uaPWurlPgJTJqHWg-1; Mon, 05 Sep 2022 04:41:48 -0400",
            "from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com\n [10.11.54.6])\n (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n (No client certificate requested)\n by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 34CA429AB3EF;\n Mon,  5 Sep 2022 08:41:48 +0000 (UTC)",
            "from fchome.redhat.com (unknown [10.40.193.251])\n by smtp.corp.redhat.com (Postfix) with ESMTP id EC8D62166B26;\n Mon,  5 Sep 2022 08:41:46 +0000 (UTC)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1662367311;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=z/Ytw/dsVnSEuVknuG6C/wm1CmmadHzuC5pI5HzSYTw=;\n b=VV2Wn5vvtOgiMFIdaCt1x10KVlrPU9RHQ1JP4gljS6i7dh0vtYxz8R9tlt10jtzkJ87Yvg\n WJ7WuKgqr0X/dkQC7mEbKYuHcpuzuOEz6hlwc5cd3hUzemy25TQUC2VyT4NICD5UdBvHH4\n j25txQwXR1vLHeHOn1eYqOp/3c3+5lo=",
        "X-MC-Unique": "GRXTX2uaPWurlPgJTJqHWg-1",
        "From": "David Marchand <david.marchand@redhat.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, bruce.richardson@intel.com,\n Ray Kinsella <mdr@ashroe.eu>, Maxime Coquelin <maxime.coquelin@redhat.com>,\n Chenbo Xia <chenbo.xia@intel.com>",
        "Subject": "[PATCH v5 27/27] dev: hide device object",
        "Date": "Mon,  5 Sep 2022 10:39:33 +0200",
        "Message-Id": "<20220905083933.2506819-28-david.marchand@redhat.com>",
        "In-Reply-To": "<20220905083933.2506819-1-david.marchand@redhat.com>",
        "References": "<20220628144643.1213026-1-david.marchand@redhat.com>\n <20220905083933.2506819-1-david.marchand@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 2.78 on 10.11.54.6",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "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": "Make rte_device opaque for non internal users.\nThis will make extending this object possible without breaking the ABI.\n\nSome applications may have been dereferencing rte_device objects, mark\nthis object's accessors as stable.\n\nSigned-off-by: David Marchand <david.marchand@redhat.com>\nAcked-by: Bruce Richardson <bruce.richardson@intel.com>\n---\nChanges since RFC v2:\n- updated release notes,\n- marked accessors as stable,\n\n---\n doc/guides/rel_notes/deprecation.rst   |  7 -----\n doc/guides/rel_notes/release_22_11.rst |  4 +--\n lib/eal/common/eal_private.h           |  2 +-\n lib/eal/include/dev_driver.h           | 13 +++++++++\n lib/eal/include/rte_dev.h              | 37 --------------------------\n lib/eal/version.map                    | 14 +++++-----\n lib/vhost/vdpa.c                       |  1 +\n 7 files changed, 23 insertions(+), 55 deletions(-)",
    "diff": "diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex 98a00da385..64668500c7 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -47,13 +47,6 @@ Deprecation Notices\n * mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and\n   will be removed in DPDK 22.11.\n \n-* drivers: As a follow-up of the work on the ``rte_bus`` object,\n-  the ``rte_driver`` and ``rte_device`` objects (and as a domino effect,\n-  their bus-specific counterparts) will be made opaque in DPDK 22.11.\n-  Registering a driver on a bus will be marked as an internal API:\n-  external users may still register their drivers using the bus-specific\n-  driver header (see ``enable_driver_sdk`` meson option).\n-\n * bus: The ``dev->device.numa_node`` field is set by each bus driver for\n   every device it manages to indicate on which NUMA node this device lies.\n   When this information is unknown, the assigned value is not consistent\ndiff --git a/doc/guides/rel_notes/release_22_11.rst b/doc/guides/rel_notes/release_22_11.rst\nindex 4e20345b7a..43502349bd 100644\n--- a/doc/guides/rel_notes/release_22_11.rst\n+++ b/doc/guides/rel_notes/release_22_11.rst\n@@ -98,8 +98,8 @@ API Changes\n   ``vdev``, ``vmbus`` buses has been marked as an internal API.\n   External users may still register their driver using the associated driver\n   headers (see ``enable_driver_sdk`` meson option).\n-  The ``rte_driver`` object is now opaque and must be manipulated through added\n-  accessors.\n+  The ``rte_driver`` and ``rte_device`` objects are now opaque and must be\n+  manipulated through added accessors.\n \n * raw/ifgpa: The function ``rte_pmd_ifpga_get_pci_bus`` has been removed.\n \ndiff --git a/lib/eal/common/eal_private.h b/lib/eal/common/eal_private.h\nindex 44d14241f0..3ca9ce2ffc 100644\n--- a/lib/eal/common/eal_private.h\n+++ b/lib/eal/common/eal_private.h\n@@ -10,7 +10,7 @@\n #include <stdio.h>\n #include <sys/queue.h>\n \n-#include <rte_dev.h>\n+#include <dev_driver.h>\n #include <rte_lcore.h>\n #include <rte_memory.h>\n \ndiff --git a/lib/eal/include/dev_driver.h b/lib/eal/include/dev_driver.h\nindex 015188abd5..5efa8c437e 100644\n--- a/lib/eal/include/dev_driver.h\n+++ b/lib/eal/include/dev_driver.h\n@@ -21,6 +21,19 @@ struct rte_driver {\n \tconst char *alias;              /**< Driver alias. */\n };\n \n+/**\n+ * A structure describing a generic device.\n+ */\n+struct rte_device {\n+\tRTE_TAILQ_ENTRY(rte_device) next; /**< Next device */\n+\tconst char *name;             /**< Device name */\n+\tconst char *bus_info;         /**< Device bus specific information */\n+\tconst struct rte_driver *driver; /**< Driver assigned after probing */\n+\tconst struct rte_bus *bus;    /**< Bus handle assigned on scan */\n+\tint numa_node;                /**< NUMA node connection */\n+\tstruct rte_devargs *devargs;  /**< Arguments for latest probing */\n+};\n+\n #ifdef __cplusplus\n }\n #endif\ndiff --git a/lib/eal/include/rte_dev.h b/lib/eal/include/rte_dev.h\nindex f010dd6441..dc1acc8953 100644\n--- a/lib/eal/include/rte_dev.h\n+++ b/lib/eal/include/rte_dev.h\n@@ -86,90 +86,66 @@ rte_driver_name(const struct rte_driver *driver);\n /**\n  * Retrieve a device bus.\n  *\n- * @warning\n- * @b EXPERIMENTAL: this API may change without prior notice\n- *\n  * @param dev\n  *   A pointer to a device structure.\n  * @return\n  *   A pointer to this device bus.\n  */\n-__rte_experimental\n const struct rte_bus *\n rte_dev_bus(const struct rte_device *dev);\n \n /**\n  * Retrieve bus specific information for a device.\n  *\n- * @warning\n- * @b EXPERIMENTAL: this API may change without prior notice\n- *\n  * @param dev\n  *   A pointer to a device structure.\n  * @return\n  *   A string describing this device or NULL if none is available.\n  */\n-__rte_experimental\n const char *\n rte_dev_bus_info(const struct rte_device *dev);\n \n /**\n  * Retrieve a device arguments.\n  *\n- * @warning\n- * @b EXPERIMENTAL: this API may change without prior notice\n- *\n  * @param dev\n  *   A pointer to a device structure.\n  * @return\n  *   A pointer to this device devargs.\n  */\n-__rte_experimental\n const struct rte_devargs *\n rte_dev_devargs(const struct rte_device *dev);\n \n /**\n  * Retrieve a device driver.\n  *\n- * @warning\n- * @b EXPERIMENTAL: this API may change without prior notice\n- *\n  * @param dev\n  *   A pointer to a device structure.\n  * @return\n  *   A pointer to this device driver.\n  */\n-__rte_experimental\n const struct rte_driver *\n rte_dev_driver(const struct rte_device *dev);\n \n /**\n  * Retrieve a device name.\n  *\n- * @warning\n- * @b EXPERIMENTAL: this API may change without prior notice\n- *\n  * @param dev\n  *   A pointer to a device structure.\n  * @return\n  *   A pointer to this device name.\n  */\n-__rte_experimental\n const char *\n rte_dev_name(const struct rte_device *dev);\n \n /**\n  * Retrieve a device numa node.\n  *\n- * @warning\n- * @b EXPERIMENTAL: this API may change without prior notice\n- *\n  * @param dev\n  *   A pointer to a device structure.\n  * @return\n  *   A pointer to this device numa node.\n  */\n-__rte_experimental\n int\n rte_dev_numa_node(const struct rte_device *dev);\n \n@@ -179,19 +155,6 @@ rte_dev_numa_node(const struct rte_device *dev);\n  */\n #define RTE_DEV_NAME_MAX_LEN 64\n \n-/**\n- * A structure describing a generic device.\n- */\n-struct rte_device {\n-\tRTE_TAILQ_ENTRY(rte_device) next; /**< Next device */\n-\tconst char *name;             /**< Device name */\n-\tconst char *bus_info;         /**< Device bus specific information */\n-\tconst struct rte_driver *driver; /**< Driver assigned after probing */\n-\tconst struct rte_bus *bus;    /**< Bus handle assigned on scan */\n-\tint numa_node;                /**< NUMA node connection */\n-\tstruct rte_devargs *devargs;  /**< Arguments for latest probing */\n-};\n-\n /**\n  * Query status of a device.\n  *\ndiff --git a/lib/eal/version.map b/lib/eal/version.map\nindex 0cf321605e..3c14cf2724 100644\n--- a/lib/eal/version.map\n+++ b/lib/eal/version.map\n@@ -26,7 +26,13 @@ DPDK_23 {\n \trte_delay_us_block;\n \trte_delay_us_callback_register;\n \trte_delay_us_sleep;\n+\trte_dev_bus;\n+\trte_dev_bus_info;\n+\trte_dev_devargs;\n+\trte_dev_driver;\n \trte_dev_is_probed;\n+\trte_dev_name;\n+\trte_dev_numa_node;\n \trte_dev_probe;\n \trte_dev_remove;\n \trte_devargs_add;\n@@ -424,14 +430,6 @@ EXPERIMENTAL {\n \trte_thread_self;\n \trte_thread_set_affinity_by_id;\n \trte_thread_set_priority;\n-\n-\t# added in 22.11\n-\trte_dev_bus;\n-\trte_dev_bus_info;\n-\trte_dev_devargs;\n-\trte_dev_driver;\n-\trte_dev_name;\n-\trte_dev_numa_node;\n };\n \n INTERNAL {\ndiff --git a/lib/vhost/vdpa.c b/lib/vhost/vdpa.c\nindex a6ca785b29..bb828577cb 100644\n--- a/lib/vhost/vdpa.c\n+++ b/lib/vhost/vdpa.c\n@@ -10,6 +10,7 @@\n \n #include <sys/queue.h>\n \n+#include <dev_driver.h>\n #include <rte_class.h>\n #include <rte_malloc.h>\n #include <rte_spinlock.h>\n",
    "prefixes": [
        "v5",
        "27/27"
    ]
}