get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 11301,
    "url": "https://patches.dpdk.org/api/patches/11301/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1457540381-20274-6-git-send-email-olivier.matz@6wind.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1457540381-20274-6-git-send-email-olivier.matz@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1457540381-20274-6-git-send-email-olivier.matz@6wind.com",
    "date": "2016-03-09T16:19:11",
    "name": "[dpdk-dev,RFC,05/35] mempool: rename mempool_obj_ctor_t as mempool_obj_cb_t",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "e296ccafa8ddb325d712e9d56b94457620013fa0",
    "submitter": {
        "id": 8,
        "url": "https://patches.dpdk.org/api/people/8/?format=api",
        "name": "Olivier Matz",
        "email": "olivier.matz@6wind.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1457540381-20274-6-git-send-email-olivier.matz@6wind.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/11301/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/11301/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 624E85477;\n\tWed,  9 Mar 2016 17:22:25 +0100 (CET)",
            "from proxy.6wind.com (host.76.145.23.62.rev.coltfrance.com\n\t[62.23.145.76]) by dpdk.org (Postfix) with ESMTP id 8B7563978\n\tfor <dev@dpdk.org>; Wed,  9 Mar 2016 17:22:14 +0100 (CET)",
            "from glumotte.dev.6wind.com (unknown [10.16.0.195])\n\tby proxy.6wind.com (Postfix) with ESMTP id 7F3E323F82\n\tfor <dev@dpdk.org>; Wed,  9 Mar 2016 17:21:31 +0100 (CET)"
        ],
        "From": "Olivier Matz <olivier.matz@6wind.com>",
        "To": "dev@dpdk.org",
        "Date": "Wed,  9 Mar 2016 17:19:11 +0100",
        "Message-Id": "<1457540381-20274-6-git-send-email-olivier.matz@6wind.com>",
        "X-Mailer": "git-send-email 2.1.4",
        "In-Reply-To": "<1457540381-20274-1-git-send-email-olivier.matz@6wind.com>",
        "References": "<1457540381-20274-1-git-send-email-olivier.matz@6wind.com>",
        "Subject": "[dpdk-dev] [RFC 05/35] mempool: rename mempool_obj_ctor_t as\n\tmempool_obj_cb_t",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "In next commits, we will add the ability to populate the\nmempool and iterate through objects using the same function.\nWe will use the same callback type for that. As the callback is\nnot a constructor anymore, rename it into rte_mempool_obj_cb_t.\n\nThe rte_mempool_obj_iter_t that was used to iterate over objects\nwill be removed in next commits.\n\nNo functional change.\nIn this commit, the API is preserved through a compat typedef.\n\nSigned-off-by: Olivier Matz <olivier.matz@6wind.com>\n---\n app/test-pmd/mempool_anon.c                |  4 ++--\n app/test-pmd/mempool_osdep.h               |  2 +-\n drivers/net/xenvirt/rte_eth_xenvirt.h      |  2 +-\n drivers/net/xenvirt/rte_mempool_gntalloc.c |  4 ++--\n lib/librte_mempool/rte_dom0_mempool.c      |  2 +-\n lib/librte_mempool/rte_mempool.c           |  8 ++++----\n lib/librte_mempool/rte_mempool.h           | 27 ++++++++++++++-------------\n 7 files changed, 25 insertions(+), 24 deletions(-)",
    "diff": "diff --git a/app/test-pmd/mempool_anon.c b/app/test-pmd/mempool_anon.c\nindex 4730432..5e23848 100644\n--- a/app/test-pmd/mempool_anon.c\n+++ b/app/test-pmd/mempool_anon.c\n@@ -86,7 +86,7 @@ struct rte_mempool *\n mempool_anon_create(const char *name, unsigned elt_num, unsigned elt_size,\n \t\t   unsigned cache_size, unsigned private_data_size,\n \t\t   rte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\t   rte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\t   rte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\t   int socket_id, unsigned flags)\n {\n \tstruct rte_mempool *mp;\n@@ -190,7 +190,7 @@ mempool_anon_create(__rte_unused const char *name,\n \t__rte_unused unsigned private_data_size,\n \t__rte_unused rte_mempool_ctor_t *mp_init,\n \t__rte_unused void *mp_init_arg,\n-\t__rte_unused rte_mempool_obj_ctor_t *obj_init,\n+\t__rte_unused rte_mempool_obj_cb_t *obj_init,\n \t__rte_unused void *obj_init_arg,\n \t__rte_unused int socket_id, __rte_unused unsigned flags)\n {\ndiff --git a/app/test-pmd/mempool_osdep.h b/app/test-pmd/mempool_osdep.h\nindex 6b8df68..7ce7297 100644\n--- a/app/test-pmd/mempool_osdep.h\n+++ b/app/test-pmd/mempool_osdep.h\n@@ -48,7 +48,7 @@ struct rte_mempool *\n mempool_anon_create(const char *name, unsigned n, unsigned elt_size,\n \tunsigned cache_size, unsigned private_data_size,\n \trte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\trte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\trte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \tint socket_id, unsigned flags);\n \n #endif /*_RTE_MEMPOOL_OSDEP_H_ */\ndiff --git a/drivers/net/xenvirt/rte_eth_xenvirt.h b/drivers/net/xenvirt/rte_eth_xenvirt.h\nindex fc15a63..4995a9b 100644\n--- a/drivers/net/xenvirt/rte_eth_xenvirt.h\n+++ b/drivers/net/xenvirt/rte_eth_xenvirt.h\n@@ -51,7 +51,7 @@ struct rte_mempool *\n rte_mempool_gntalloc_create(const char *name, unsigned elt_num, unsigned elt_size,\n \t\t   unsigned cache_size, unsigned private_data_size,\n \t\t   rte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\t   rte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\t   rte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\t   int socket_id, unsigned flags);\n \n \ndiff --git a/drivers/net/xenvirt/rte_mempool_gntalloc.c b/drivers/net/xenvirt/rte_mempool_gntalloc.c\nindex 7bfbfda..69b9231 100644\n--- a/drivers/net/xenvirt/rte_mempool_gntalloc.c\n+++ b/drivers/net/xenvirt/rte_mempool_gntalloc.c\n@@ -78,7 +78,7 @@ static struct _mempool_gntalloc_info\n _create_mempool(const char *name, unsigned elt_num, unsigned elt_size,\n \t\t   unsigned cache_size, unsigned private_data_size,\n \t\t   rte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\t   rte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\t   rte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\t   int socket_id, unsigned flags)\n {\n \tstruct _mempool_gntalloc_info mgi;\n@@ -253,7 +253,7 @@ struct rte_mempool *\n rte_mempool_gntalloc_create(const char *name, unsigned elt_num, unsigned elt_size,\n \t\t   unsigned cache_size, unsigned private_data_size,\n \t\t   rte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\t   rte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\t   rte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\t   int socket_id, unsigned flags)\n {\n \tint rv;\ndiff --git a/lib/librte_mempool/rte_dom0_mempool.c b/lib/librte_mempool/rte_dom0_mempool.c\nindex 0d6d750..0051bd5 100644\n--- a/lib/librte_mempool/rte_dom0_mempool.c\n+++ b/lib/librte_mempool/rte_dom0_mempool.c\n@@ -83,7 +83,7 @@ struct rte_mempool *\n rte_dom0_mempool_create(const char *name, unsigned elt_num, unsigned elt_size,\n \tunsigned cache_size, unsigned private_data_size,\n \trte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\trte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\trte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \tint socket_id, unsigned flags)\n {\n \tstruct rte_mempool *mp = NULL;\ndiff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c\nindex ce0470d..83e7ed6 100644\n--- a/lib/librte_mempool/rte_mempool.c\n+++ b/lib/librte_mempool/rte_mempool.c\n@@ -128,7 +128,7 @@ static unsigned optimize_object_size(unsigned obj_size)\n \n static void\n mempool_add_elem(struct rte_mempool *mp, void *obj, uint32_t obj_idx,\n-\trte_mempool_obj_ctor_t *obj_init, void *obj_init_arg)\n+\trte_mempool_obj_cb_t *obj_init, void *obj_init_arg)\n {\n \tstruct rte_mempool_objhdr *hdr;\n \tstruct rte_mempool_objtlr *tlr __rte_unused;\n@@ -224,7 +224,7 @@ rte_mempool_obj_iter(void *vaddr, uint32_t elt_num, size_t total_elt_sz,\n \n struct mempool_populate_arg {\n \tstruct rte_mempool     *mp;\n-\trte_mempool_obj_ctor_t *obj_init;\n+\trte_mempool_obj_cb_t   *obj_init;\n \tvoid                   *obj_init_arg;\n };\n \n@@ -239,7 +239,7 @@ mempool_obj_populate(void *arg, void *start, void *end, uint32_t idx)\n \n static void\n mempool_populate(struct rte_mempool *mp, size_t num, size_t align,\n-\trte_mempool_obj_ctor_t *obj_init, void *obj_init_arg)\n+\trte_mempool_obj_cb_t *obj_init, void *obj_init_arg)\n {\n \tuint32_t elt_sz;\n \tstruct mempool_populate_arg arg;\n@@ -429,7 +429,7 @@ struct rte_mempool *\n rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,\n \t\tunsigned cache_size, unsigned private_data_size,\n \t\trte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\trte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\trte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\tint socket_id, unsigned flags, void *vaddr,\n \t\tconst phys_addr_t paddr[], uint32_t pg_num, uint32_t pg_shift)\n {\ndiff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h\nindex 6d98cdf..da04021 100644\n--- a/lib/librte_mempool/rte_mempool.h\n+++ b/lib/librte_mempool/rte_mempool.h\n@@ -318,6 +318,17 @@ void __mempool_check_cookies(const struct rte_mempool *mp,\n #endif /* RTE_LIBRTE_MEMPOOL_DEBUG */\n \n /**\n+ * An object callback function for mempool.\n+ *\n+ * Arguments are the mempool, the opaque pointer given by the user in\n+ * rte_mempool_create(), the pointer to the element and the index of\n+ * the element in the pool.\n+ */\n+typedef void (rte_mempool_obj_cb_t)(struct rte_mempool *mp,\n+\t\tvoid *opaque, void *obj, unsigned obj_idx);\n+typedef rte_mempool_obj_cb_t rte_mempool_obj_ctor_t; /* compat */\n+\n+/**\n  * A mempool object iterator callback function.\n  */\n typedef void (*rte_mempool_obj_iter_t)(void * /*obj_iter_arg*/,\n@@ -366,16 +377,6 @@ uint32_t rte_mempool_obj_iter(void *vaddr,\n \trte_mempool_obj_iter_t obj_iter, void *obj_iter_arg);\n \n /**\n- * An object constructor callback function for mempool.\n- *\n- * Arguments are the mempool, the opaque pointer given by the user in\n- * rte_mempool_create(), the pointer to the element and the index of\n- * the element in the pool.\n- */\n-typedef void (rte_mempool_obj_ctor_t)(struct rte_mempool *, void *,\n-\t\t\t\t      void *, unsigned);\n-\n-/**\n  * A mempool constructor callback function.\n  *\n  * Arguments are the mempool and the opaque pointer given by the user in\n@@ -468,7 +469,7 @@ struct rte_mempool *\n rte_mempool_create(const char *name, unsigned n, unsigned elt_size,\n \t\t   unsigned cache_size, unsigned private_data_size,\n \t\t   rte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\t   rte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\t   rte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\t   int socket_id, unsigned flags);\n \n /**\n@@ -534,7 +535,7 @@ struct rte_mempool *\n rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,\n \t\tunsigned cache_size, unsigned private_data_size,\n \t\trte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\trte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\trte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\tint socket_id, unsigned flags, void *vaddr,\n \t\tconst phys_addr_t paddr[], uint32_t pg_num, uint32_t pg_shift);\n \n@@ -623,7 +624,7 @@ struct rte_mempool *\n rte_dom0_mempool_create(const char *name, unsigned n, unsigned elt_size,\n \t\tunsigned cache_size, unsigned private_data_size,\n \t\trte_mempool_ctor_t *mp_init, void *mp_init_arg,\n-\t\trte_mempool_obj_ctor_t *obj_init, void *obj_init_arg,\n+\t\trte_mempool_obj_cb_t *obj_init, void *obj_init_arg,\n \t\tint socket_id, unsigned flags);\n \n \n",
    "prefixes": [
        "dpdk-dev",
        "RFC",
        "05/35"
    ]
}