get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 98622,
    "url": "http://patchwork.dpdk.org/api/patches/98622/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/73806a6104c7b0a65fd48652566201676a5faf42.1631277001.git.anatoly.burakov@intel.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": "<73806a6104c7b0a65fd48652566201676a5faf42.1631277001.git.anatoly.burakov@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/73806a6104c7b0a65fd48652566201676a5faf42.1631277001.git.anatoly.burakov@intel.com",
    "date": "2021-09-10T12:30:04",
    "name": "[v1,2/7] fbarray: promote API's to stable",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "9ad44e66ff41db6e93a7f6e9f0c37196cb835214",
    "submitter": {
        "id": 4,
        "url": "http://patchwork.dpdk.org/api/people/4/?format=api",
        "name": "Burakov, Anatoly",
        "email": "anatoly.burakov@intel.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patchwork.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/73806a6104c7b0a65fd48652566201676a5faf42.1631277001.git.anatoly.burakov@intel.com/mbox/",
    "series": [
        {
            "id": 18839,
            "url": "http://patchwork.dpdk.org/api/series/18839/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=18839",
            "date": "2021-09-10T12:30:07",
            "name": "[v1,1/7] eal: promote IPC API's to stable",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/18839/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/98622/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/98622/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 ECE3CA0547;\n\tFri, 10 Sep 2021 14:32:34 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B0A6B411A0;\n\tFri, 10 Sep 2021 14:30:45 +0200 (CEST)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by mails.dpdk.org (Postfix) with ESMTP id 8897E41149\n for <dev@dpdk.org>; Fri, 10 Sep 2021 14:30:25 +0200 (CEST)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 10 Sep 2021 05:30:12 -0700",
            "from silpixa00401191.ir.intel.com ([10.55.128.95])\n by orsmga002.jf.intel.com with ESMTP; 10 Sep 2021 05:30:11 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10102\"; a=\"243386275\"",
            "E=Sophos;i=\"5.85,282,1624345200\"; d=\"scan'208\";a=\"243386275\"",
            "E=Sophos;i=\"5.85,282,1624345200\"; d=\"scan'208\";a=\"450460447\""
        ],
        "X-ExtLoop1": "1",
        "From": "Anatoly Burakov <anatoly.burakov@intel.com>",
        "To": "dev@dpdk.org,\n\tRay Kinsella <mdr@ashroe.eu>",
        "Date": "Fri, 10 Sep 2021 12:30:04 +0000",
        "Message-Id": "\n <73806a6104c7b0a65fd48652566201676a5faf42.1631277001.git.anatoly.burakov@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "\n <029012e59f555be16bed829229e8b48016157371.1631277001.git.anatoly.burakov@intel.com>",
        "References": "\n <029012e59f555be16bed829229e8b48016157371.1631277001.git.anatoly.burakov@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v1 2/7] fbarray: promote API's to stable",
        "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": "As per ABI policy, move the formerly experimental API's to the stable\nsection.\n\nSigned-off-by: Anatoly Burakov <anatoly.burakov@intel.com>\n---\n lib/eal/include/rte_fbarray.h | 26 ------------------\n lib/eal/version.map           | 52 +++++++++++++++++------------------\n 2 files changed, 26 insertions(+), 52 deletions(-)",
    "diff": "diff --git a/lib/eal/include/rte_fbarray.h b/lib/eal/include/rte_fbarray.h\nindex 6dccdbec98..c64868711e 100644\n--- a/lib/eal/include/rte_fbarray.h\n+++ b/lib/eal/include/rte_fbarray.h\n@@ -74,7 +74,6 @@ struct rte_fbarray {\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,\n \t\tunsigned int elt_sz);\n@@ -97,7 +96,6 @@ rte_fbarray_init(struct rte_fbarray *arr, const char *name, unsigned int len,\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_attach(struct rte_fbarray *arr);\n \n@@ -119,7 +117,6 @@ rte_fbarray_attach(struct rte_fbarray *arr);\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_destroy(struct rte_fbarray *arr);\n \n@@ -138,7 +135,6 @@ rte_fbarray_destroy(struct rte_fbarray *arr);\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_detach(struct rte_fbarray *arr);\n \n@@ -156,7 +152,6 @@ rte_fbarray_detach(struct rte_fbarray *arr);\n  *  - non-NULL pointer on success.\n  *  - NULL on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n void *\n rte_fbarray_get(const struct rte_fbarray *arr, unsigned int idx);\n \n@@ -174,7 +169,6 @@ rte_fbarray_get(const struct rte_fbarray *arr, unsigned int idx);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_idx(const struct rte_fbarray *arr, const void *elt);\n \n@@ -192,7 +186,6 @@ rte_fbarray_find_idx(const struct rte_fbarray *arr, const void *elt);\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_set_used(struct rte_fbarray *arr, unsigned int idx);\n \n@@ -210,7 +203,6 @@ rte_fbarray_set_used(struct rte_fbarray *arr, unsigned int idx);\n  *  - 0 on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_set_free(struct rte_fbarray *arr, unsigned int idx);\n \n@@ -229,7 +221,6 @@ rte_fbarray_set_free(struct rte_fbarray *arr, unsigned int idx);\n  *  - 0 if element is unused.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_is_used(struct rte_fbarray *arr, unsigned int idx);\n \n@@ -247,7 +238,6 @@ rte_fbarray_is_used(struct rte_fbarray *arr, unsigned int idx);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_next_free(struct rte_fbarray *arr, unsigned int start);\n \n@@ -265,7 +255,6 @@ rte_fbarray_find_next_free(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_next_used(struct rte_fbarray *arr, unsigned int start);\n \n@@ -286,7 +275,6 @@ rte_fbarray_find_next_used(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_next_n_free(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n@@ -308,7 +296,6 @@ rte_fbarray_find_next_n_free(struct rte_fbarray *arr, unsigned int start,\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_next_n_used(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n@@ -327,7 +314,6 @@ rte_fbarray_find_next_n_used(struct rte_fbarray *arr, unsigned int start,\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_contig_free(struct rte_fbarray *arr,\n \t\tunsigned int start);\n@@ -346,7 +332,6 @@ rte_fbarray_find_contig_free(struct rte_fbarray *arr,\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_contig_used(struct rte_fbarray *arr, unsigned int start);\n \n@@ -363,7 +348,6 @@ rte_fbarray_find_contig_used(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_prev_free(struct rte_fbarray *arr, unsigned int start);\n \n@@ -381,7 +365,6 @@ rte_fbarray_find_prev_free(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_prev_used(struct rte_fbarray *arr, unsigned int start);\n \n@@ -403,7 +386,6 @@ rte_fbarray_find_prev_used(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_prev_n_free(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n@@ -426,7 +408,6 @@ rte_fbarray_find_prev_n_free(struct rte_fbarray *arr, unsigned int start,\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_prev_n_used(struct rte_fbarray *arr, unsigned int start,\n \t\tunsigned int n);\n@@ -446,7 +427,6 @@ rte_fbarray_find_prev_n_used(struct rte_fbarray *arr, unsigned int start,\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_rev_contig_free(struct rte_fbarray *arr,\n \t\tunsigned int start);\n@@ -466,7 +446,6 @@ rte_fbarray_find_rev_contig_free(struct rte_fbarray *arr,\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_rev_contig_used(struct rte_fbarray *arr, unsigned int start);\n \n@@ -484,7 +463,6 @@ rte_fbarray_find_rev_contig_used(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_biggest_free(struct rte_fbarray *arr, unsigned int start);\n \n@@ -502,7 +480,6 @@ rte_fbarray_find_biggest_free(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_biggest_used(struct rte_fbarray *arr, unsigned int start);\n \n@@ -521,7 +498,6 @@ rte_fbarray_find_biggest_used(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_rev_biggest_free(struct rte_fbarray *arr, unsigned int start);\n \n@@ -540,7 +516,6 @@ rte_fbarray_find_rev_biggest_free(struct rte_fbarray *arr, unsigned int start);\n  *  - non-negative integer on success.\n  *  - -1 on failure, with ``rte_errno`` indicating reason for failure.\n  */\n-__rte_experimental\n int\n rte_fbarray_find_rev_biggest_used(struct rte_fbarray *arr, unsigned int start);\n \n@@ -554,7 +529,6 @@ rte_fbarray_find_rev_biggest_used(struct rte_fbarray *arr, unsigned int start);\n  * @param f\n  *   File object to dump information into.\n  */\n-__rte_experimental\n void\n rte_fbarray_dump_metadata(struct rte_fbarray *arr, FILE *f);\n \ndiff --git a/lib/eal/version.map b/lib/eal/version.map\nindex c6e78d68d1..d3b2b07a78 100644\n--- a/lib/eal/version.map\n+++ b/lib/eal/version.map\n@@ -70,6 +70,32 @@ DPDK_22 {\n \trte_epoll_ctl;\n \trte_epoll_wait;\n \trte_exit;\n+\trte_fbarray_attach;\n+\trte_fbarray_destroy;\n+\trte_fbarray_detach;\n+\trte_fbarray_dump_metadata;\n+\trte_fbarray_find_biggest_free;\n+\trte_fbarray_find_biggest_used;\n+\trte_fbarray_find_contig_free;\n+\trte_fbarray_find_contig_used;\n+\trte_fbarray_find_idx;\n+\trte_fbarray_find_next_free;\n+\trte_fbarray_find_next_n_free;\n+\trte_fbarray_find_next_n_used;\n+\trte_fbarray_find_next_used;\n+\trte_fbarray_find_prev_free;\n+\trte_fbarray_find_prev_n_free;\n+\trte_fbarray_find_prev_n_used;\n+\trte_fbarray_find_prev_used;\n+\trte_fbarray_find_rev_contig_free;\n+\trte_fbarray_find_rev_contig_used;\n+\trte_fbarray_find_rev_biggest_free;\n+\trte_fbarray_find_rev_biggest_used;\n+\trte_fbarray_get;\n+\trte_fbarray_init;\n+\trte_fbarray_is_used;\n+\trte_fbarray_set_free;\n+\trte_fbarray_set_used;\n \trte_free;\n \trte_get_hpet_cycles; # WINDOWS_NO_EXPORT\n \trte_get_hpet_hz; # WINDOWS_NO_EXPORT\n@@ -235,22 +261,6 @@ EXPERIMENTAL {\n \trte_dev_event_callback_unregister;\n \trte_dev_event_monitor_start; # WINDOWS_NO_EXPORT\n \trte_dev_event_monitor_stop; # WINDOWS_NO_EXPORT\n-\trte_fbarray_attach;\n-\trte_fbarray_destroy;\n-\trte_fbarray_detach;\n-\trte_fbarray_dump_metadata;\n-\trte_fbarray_find_contig_free;\n-\trte_fbarray_find_contig_used;\n-\trte_fbarray_find_idx;\n-\trte_fbarray_find_next_free;\n-\trte_fbarray_find_next_n_free;\n-\trte_fbarray_find_next_n_used;\n-\trte_fbarray_find_next_used;\n-\trte_fbarray_get;\n-\trte_fbarray_init;\n-\trte_fbarray_is_used;\n-\trte_fbarray_set_free;\n-\trte_fbarray_set_used;\n \trte_log_register_type_and_pick_level;\n \trte_malloc_dump_heaps;\n \trte_mem_alloc_validator_register;\n@@ -272,12 +282,6 @@ EXPERIMENTAL {\n \trte_class_unregister;\n \trte_dev_iterator_init;\n \trte_dev_iterator_next;\n-\trte_fbarray_find_prev_free;\n-\trte_fbarray_find_prev_n_free;\n-\trte_fbarray_find_prev_n_used;\n-\trte_fbarray_find_prev_used;\n-\trte_fbarray_find_rev_contig_free;\n-\trte_fbarray_find_rev_contig_used;\n \trte_memseg_contig_walk_thread_unsafe;\n \trte_memseg_list_walk_thread_unsafe;\n \trte_memseg_walk_thread_unsafe;\n@@ -311,10 +315,6 @@ EXPERIMENTAL {\n \t# added in 19.05\n \trte_dev_dma_map;\n \trte_dev_dma_unmap;\n-\trte_fbarray_find_biggest_free;\n-\trte_fbarray_find_biggest_used;\n-\trte_fbarray_find_rev_biggest_free;\n-\trte_fbarray_find_rev_biggest_used;\n \trte_intr_callback_unregister_pending;\n \trte_realloc_socket;\n \n",
    "prefixes": [
        "v1",
        "2/7"
    ]
}