get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 88841,
    "url": "http://patches.dpdk.org/api/patches/88841/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210310124856.8188-3-talshn@nvidia.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": "<20210310124856.8188-3-talshn@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210310124856.8188-3-talshn@nvidia.com",
    "date": "2021-03-10T12:48:56",
    "name": "[v4,2/2] eal: rename key opaque pointer and functions in TLS API",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "29137c45c9667136f600cc264098ab186d2f0347",
    "submitter": {
        "id": 1893,
        "url": "http://patches.dpdk.org/api/people/1893/?format=api",
        "name": "Tal Shnaiderman",
        "email": "talshn@nvidia.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/20210310124856.8188-3-talshn@nvidia.com/mbox/",
    "series": [
        {
            "id": 15578,
            "url": "http://patches.dpdk.org/api/series/15578/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=15578",
            "date": "2021-03-10T12:48:55",
            "name": "EAL Thread TLS API enhancements",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/15578/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/88841/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/88841/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 19F5CA0567;\n\tWed, 10 Mar 2021 13:49:06 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A414D22A595;\n\tWed, 10 Mar 2021 13:49:01 +0100 (CET)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by mails.dpdk.org (Postfix) with ESMTP id B7CD84068C\n for <dev@dpdk.org>; Wed, 10 Mar 2021 13:48:59 +0100 (CET)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n talshn@nvidia.com) with SMTP; 10 Mar 2021 14:48:58 +0200",
            "from nvidia.com (l-wincomp04-vm.mtl.labs.mlnx [10.237.1.5])\n by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 12ACmvkJ016030;\n Wed, 10 Mar 2021 14:48:57 +0200"
        ],
        "From": "Tal Shnaiderman <talshn@nvidia.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, pallavi.kadam@intel.com, dmitry.kozliuk@gmail.com,\n navasile@linux.microsoft.com, dmitrym@microsoft.com,\n david.marchand@redhat.com, anatoly.burakov@intel.com,\n vladimir.medvedkin@intel.com, mb@smartsharesystems.com",
        "Date": "Wed, 10 Mar 2021 14:48:56 +0200",
        "Message-Id": "<20210310124856.8188-3-talshn@nvidia.com>",
        "X-Mailer": "git-send-email 2.16.1.windows.4",
        "In-Reply-To": "<20210310124856.8188-1-talshn@nvidia.com>",
        "References": "<20210310120632.14464-2-talshn@nvidia.com>\n <20210310124856.8188-1-talshn@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v4 2/2] eal: rename key opaque pointer and\n functions in TLS API",
        "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": "rename the key opaque pointer from rte_tls_key to\nrte_thread_key to avoid confusion with transport layer security.\n\nAlso rename and remove the \"_tls\" term from the following\nfunctions to avoid redundancy:\n\nrte_thread_tls_key_create\nrte_thread_tls_key_delete\nrte_thread_tls_value_set\nrte_thread_tls_value_get\n\nSuggested-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>\nSuggested-by: Morten Brørup <mb@smartsharesystems.com>\nSigned-off-by: Tal Shnaiderman <talshn@nvidia.com>\nAcked-by: Morten Brørup <mb@smartsharesystems.com>\n---\n drivers/net/mlx5/linux/mlx5_flow_os.c   | 10 +++++-----\n drivers/net/mlx5/windows/mlx5_flow_os.c | 12 ++++++------\n lib/librte_eal/include/rte_thread.h     | 19 ++++++++++---------\n lib/librte_eal/rte_eal_exports.def      |  8 ++++----\n lib/librte_eal/unix/rte_thread.c        |  8 ++++----\n lib/librte_eal/version.map              |  8 ++++----\n lib/librte_eal/windows/rte_thread.c     |  8 ++++----\n 7 files changed, 37 insertions(+), 36 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/linux/mlx5_flow_os.c b/drivers/net/mlx5/linux/mlx5_flow_os.c\nindex 732b1b2dd8..893f00b824 100644\n--- a/drivers/net/mlx5/linux/mlx5_flow_os.c\n+++ b/drivers/net/mlx5/linux/mlx5_flow_os.c\n@@ -7,12 +7,12 @@\n #include <rte_thread.h>\n \n /* Key of thread specific flow workspace data. */\n-static rte_tls_key key_workspace;\n+static rte_thread_key key_workspace;\n \n int\n mlx5_flow_os_init_workspace_once(void)\n {\n-\tif (rte_thread_tls_key_create(&key_workspace, flow_release_workspace)) {\n+\tif (rte_thread_key_create(&key_workspace, flow_release_workspace)) {\n \t\tDRV_LOG(ERR, \"Can't create flow workspace data thread key.\");\n \t\treturn -ENOMEM;\n \t}\n@@ -22,17 +22,17 @@ mlx5_flow_os_init_workspace_once(void)\n void *\n mlx5_flow_os_get_specific_workspace(void)\n {\n-\treturn rte_thread_tls_value_get(key_workspace);\n+\treturn rte_thread_value_get(key_workspace);\n }\n \n int\n mlx5_flow_os_set_specific_workspace(struct mlx5_flow_workspace *data)\n {\n-\treturn rte_thread_tls_value_set(key_workspace, data);\n+\treturn rte_thread_value_set(key_workspace, data);\n }\n \n void\n mlx5_flow_os_release_workspace(void)\n {\n-\trte_thread_tls_key_delete(key_workspace);\n+\trte_thread_key_delete(key_workspace);\n }\ndiff --git a/drivers/net/mlx5/windows/mlx5_flow_os.c b/drivers/net/mlx5/windows/mlx5_flow_os.c\nindex 2cc02df322..c4d5790726 100644\n--- a/drivers/net/mlx5/windows/mlx5_flow_os.c\n+++ b/drivers/net/mlx5/windows/mlx5_flow_os.c\n@@ -252,7 +252,7 @@ struct mlx5_workspace_thread {\n  */\n static struct mlx5_workspace_thread *curr;\n static struct mlx5_workspace_thread *first;\n-rte_tls_key ws_tls_index;\n+rte_thread_key ws_tls_index;\n static pthread_mutex_t lock_thread_list;\n \n static bool\n@@ -329,7 +329,7 @@ mlx5_flow_os_release_workspace(void)\n \t\tflow_release_workspace(first->mlx5_ws);\n \t\tfree(first);\n \t}\n-\trte_thread_tls_key_delete(ws_tls_index);\n+\trte_thread_key_delete(ws_tls_index);\n \tpthread_mutex_destroy(&lock_thread_list);\n }\n \n@@ -368,7 +368,7 @@ mlx5_add_workspace_to_list(struct mlx5_flow_workspace *data)\n int\n mlx5_flow_os_init_workspace_once(void)\n {\n-\tint err = rte_thread_tls_key_create(&ws_tls_index, NULL);\n+\tint err = rte_thread_key_create(&ws_tls_index, NULL);\n \n \tif (err) {\n \t\tDRV_LOG(ERR, \"Can't create flow workspace data thread key.\");\n@@ -381,7 +381,7 @@ mlx5_flow_os_init_workspace_once(void)\n void *\n mlx5_flow_os_get_specific_workspace(void)\n {\n-\treturn rte_thread_tls_value_get(ws_tls_index);\n+\treturn rte_thread_value_get(ws_tls_index);\n }\n \n int\n@@ -391,7 +391,7 @@ mlx5_flow_os_set_specific_workspace(struct mlx5_flow_workspace *data)\n \tint old_err = rte_errno;\n \n \trte_errno = 0;\n-\tif (!rte_thread_tls_value_get(ws_tls_index)) {\n+\tif (!rte_thread_value_get(ws_tls_index)) {\n \t\tif (rte_errno) {\n \t\t\tDRV_LOG(ERR, \"Failed checking specific workspace.\");\n \t\t\trte_errno = old_err;\n@@ -409,7 +409,7 @@ mlx5_flow_os_set_specific_workspace(struct mlx5_flow_workspace *data)\n \t\t\treturn -1;\n \t\t}\n \t}\n-\tif (rte_thread_tls_value_set(ws_tls_index, data)) {\n+\tif (rte_thread_value_set(ws_tls_index, data)) {\n \t\tDRV_LOG(ERR, \"Failed setting specific workspace.\");\n \t\terr = -1;\n \t}\ndiff --git a/lib/librte_eal/include/rte_thread.h b/lib/librte_eal/include/rte_thread.h\nindex 7a503b81c9..27da0d8787 100644\n--- a/lib/librte_eal/include/rte_thread.h\n+++ b/lib/librte_eal/include/rte_thread.h\n@@ -23,7 +23,7 @@ extern \"C\" {\n /**\n  * TLS key type, an opaque pointer.\n  */\n-typedef struct eal_tls_key *rte_tls_key;\n+typedef struct eal_tls_key *rte_thread_key;\n \n /**\n  * Set core affinity of the current thread.\n@@ -65,13 +65,14 @@ void rte_thread_get_affinity(rte_cpuset_t *cpusetp);\n  */\n \n __rte_experimental\n-int rte_thread_tls_key_create(rte_tls_key *key, void (*destructor)(void *));\n+int rte_thread_key_create(rte_thread_key *key,\n+\t\t\tvoid (*destructor)(void *));\n \n /**\n  * Delete a TLS data key visible to all threads in the process.\n  *\n  * @param key\n- *   The key allocated by rte_thread_tls_key_create().\n+ *   The key allocated by rte_thread_key_create().\n  *\n  * @return\n  *   On success, zero.\n@@ -80,15 +81,15 @@ int rte_thread_tls_key_create(rte_tls_key *key, void (*destructor)(void *));\n  *                            ENOEXEC - Specific OS error.\n  */\n __rte_experimental\n-int rte_thread_tls_key_delete(rte_tls_key key);\n+int rte_thread_key_delete(rte_thread_key key);\n \n /**\n  * Set value bound to the TLS key on behalf of the calling thread.\n  *\n  * @param key\n- *   The key allocated by rte_thread_tls_key_create().\n+ *   The key allocated by rte_thread_key_create().\n  * @param value\n- *   The value bound to the rte_tls_key key for the calling thread.\n+ *   The value bound to the rte_thread_key key for the calling thread.\n  *\n  * @return\n  *   On success, zero.\n@@ -97,13 +98,13 @@ int rte_thread_tls_key_delete(rte_tls_key key);\n  *                            ENOEXEC - Specific OS error.\n  */\n __rte_experimental\n-int rte_thread_tls_value_set(rte_tls_key key, const void *value);\n+int rte_thread_value_set(rte_thread_key key, const void *value);\n \n /**\n  * Get value bound to the TLS key on behalf of the calling thread.\n  *\n  * @param key\n- *   The key allocated by rte_thread_tls_key_create().\n+ *   The key allocated by rte_thread_key_create().\n  *\n  * @return\n  *   On success, value data pointer (can also be NULL).\n@@ -112,7 +113,7 @@ int rte_thread_tls_value_set(rte_tls_key key, const void *value);\n  *                            ENOEXEC - Specific OS error.\n  */\n __rte_experimental\n-void *rte_thread_tls_value_get(rte_tls_key key);\n+void *rte_thread_value_get(rte_thread_key key);\n \n #ifdef __cplusplus\n }\ndiff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def\nindex 474cf123fa..c320077547 100644\n--- a/lib/librte_eal/rte_eal_exports.def\n+++ b/lib/librte_eal/rte_eal_exports.def\n@@ -325,10 +325,10 @@ EXPORTS\n \trte_vect_get_max_simd_bitwidth\n \trte_vect_set_max_simd_bitwidth\n \n-\trte_thread_tls_key_create\n-\trte_thread_tls_key_delete\n-\trte_thread_tls_value_get\n-\trte_thread_tls_value_set\n+\trte_thread_key_create\n+\trte_thread_key_delete\n+\trte_thread_value_get\n+\trte_thread_value_set\n \n \trte_mem_lock\n \trte_mem_map\ndiff --git a/lib/librte_eal/unix/rte_thread.c b/lib/librte_eal/unix/rte_thread.c\nindex b187c69a4c..c72d619ec1 100644\n--- a/lib/librte_eal/unix/rte_thread.c\n+++ b/lib/librte_eal/unix/rte_thread.c\n@@ -17,7 +17,7 @@ struct eal_tls_key {\n };\n \n int\n-rte_thread_tls_key_create(rte_tls_key *key, void (*destructor)(void *))\n+rte_thread_key_create(rte_thread_key *key, void (*destructor)(void *))\n {\n \tint err;\n \n@@ -39,7 +39,7 @@ rte_thread_tls_key_create(rte_tls_key *key, void (*destructor)(void *))\n }\n \n int\n-rte_thread_tls_key_delete(rte_tls_key key)\n+rte_thread_key_delete(rte_thread_key key)\n {\n \tint err;\n \n@@ -61,7 +61,7 @@ rte_thread_tls_key_delete(rte_tls_key key)\n }\n \n int\n-rte_thread_tls_value_set(rte_tls_key key, const void *value)\n+rte_thread_value_set(rte_thread_key key, const void *value)\n {\n \tint err;\n \n@@ -81,7 +81,7 @@ rte_thread_tls_value_set(rte_tls_key key, const void *value)\n }\n \n void *\n-rte_thread_tls_value_get(rte_tls_key key)\n+rte_thread_value_get(rte_thread_key key)\n {\n \tif (!key) {\n \t\tRTE_LOG(DEBUG, EAL, \"Invalid TLS key.\\n\");\ndiff --git a/lib/librte_eal/version.map b/lib/librte_eal/version.map\nindex fce90a112f..c07aab176c 100644\n--- a/lib/librte_eal/version.map\n+++ b/lib/librte_eal/version.map\n@@ -408,10 +408,10 @@ EXPERIMENTAL {\n \trte_power_monitor;\n \trte_power_monitor_wakeup;\n \trte_power_pause;\n-\trte_thread_tls_key_create;\n-\trte_thread_tls_key_delete;\n-\trte_thread_tls_value_get;\n-\trte_thread_tls_value_set;\n+\trte_thread_key_create;\n+\trte_thread_key_delete;\n+\trte_thread_value_get;\n+\trte_thread_value_set;\n };\n \n INTERNAL {\ndiff --git a/lib/librte_eal/windows/rte_thread.c b/lib/librte_eal/windows/rte_thread.c\nindex fa9e360855..667287c387 100644\n--- a/lib/librte_eal/windows/rte_thread.c\n+++ b/lib/librte_eal/windows/rte_thread.c\n@@ -12,7 +12,7 @@ struct eal_tls_key {\n };\n \n int\n-rte_thread_tls_key_create(rte_tls_key *key,\n+rte_thread_key_create(rte_thread_key *key,\n \t\t__rte_unused void (*destructor)(void *))\n {\n \t*key = malloc(sizeof(**key));\n@@ -32,7 +32,7 @@ rte_thread_tls_key_create(rte_tls_key *key,\n }\n \n int\n-rte_thread_tls_key_delete(rte_tls_key key)\n+rte_thread_key_delete(rte_thread_key key)\n {\n \tif (!key) {\n \t\tRTE_LOG(DEBUG, EAL, \"Invalid TLS key.\\n\");\n@@ -50,7 +50,7 @@ rte_thread_tls_key_delete(rte_tls_key key)\n }\n \n int\n-rte_thread_tls_value_set(rte_tls_key key, const void *value)\n+rte_thread_value_set(rte_thread_key key, const void *value)\n {\n \tchar *p;\n \n@@ -70,7 +70,7 @@ rte_thread_tls_value_set(rte_tls_key key, const void *value)\n }\n \n void *\n-rte_thread_tls_value_get(rte_tls_key key)\n+rte_thread_value_get(rte_thread_key key)\n {\n \tvoid *output;\n \n",
    "prefixes": [
        "v4",
        "2/2"
    ]
}