get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 54248,
    "url": "http://patches.dpdk.org/api/patches/54248/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1559583160-13944-20-git-send-email-anoobj@marvell.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": "<1559583160-13944-20-git-send-email-anoobj@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1559583160-13944-20-git-send-email-anoobj@marvell.com",
    "date": "2019-06-03T17:32:19",
    "name": "[19/39] eventdev: add common initialize routine for eventmode devs",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "be5095bfb5e77b6fa667bcb85cb4072de10011e4",
    "submitter": {
        "id": 1205,
        "url": "http://patches.dpdk.org/api/people/1205/?format=api",
        "name": "Anoob Joseph",
        "email": "anoobj@marvell.com"
    },
    "delegate": {
        "id": 310,
        "url": "http://patches.dpdk.org/api/users/310/?format=api",
        "username": "jerin",
        "first_name": "Jerin",
        "last_name": "Jacob",
        "email": "jerinj@marvell.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1559583160-13944-20-git-send-email-anoobj@marvell.com/mbox/",
    "series": [
        {
            "id": 4868,
            "url": "http://patches.dpdk.org/api/series/4868/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=4868",
            "date": "2019-06-03T17:32:00",
            "name": "adding eventmode helper library",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/4868/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/54248/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/54248/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 259AD1BB4F;\n\tMon,  3 Jun 2019 19:36:12 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n\t[67.231.156.173]) by dpdk.org (Postfix) with ESMTP id A699C1B9CB\n\tfor <dev@dpdk.org>; Mon,  3 Jun 2019 19:36:01 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n\tby mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id\n\tx53HKMDR027514; Mon, 3 Jun 2019 10:36:01 -0700",
            "from sc-exch04.marvell.com ([199.233.58.184])\n\tby mx0b-0016f401.pphosted.com with ESMTP id 2sw79pr6vg-5\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); \n\tMon, 03 Jun 2019 10:36:00 -0700",
            "from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH04.marvell.com\n\t(10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3;\n\tMon, 3 Jun 2019 10:35:13 -0700",
            "from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com\n\t(10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend\n\tTransport; Mon, 3 Jun 2019 10:35:13 -0700",
            "from ajoseph83.caveonetworks.com.com (unknown [10.29.45.56])\n\tby maili.marvell.com (Postfix) with ESMTP id 555FA3F703F;\n\tMon,  3 Jun 2019 10:35:09 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n\th=from : to : cc :\n\tsubject : date : message-id : in-reply-to : references : mime-version\n\t: content-transfer-encoding : content-type; s=pfpt0818;\n\tbh=qfOL69PVCU/793+Wq06Pu4MPyn2I260J64ST2c4+fRo=;\n\tb=EJT2awsNyUuqlvP5c9tFYUuXxrfK3DlKCgWW0QaBrrsp64AkDX4b1LbYV5fOLhLyvoW0\n\t8ChkLjfkXRmpKhj/Fq6m6W+IvakkUoAfYbBJA3wBMSNy0FSmZhluOEZYJO2omHMhlltF\n\tMMPYMBHgwUQ2PsRiqov0G5zcmStFlgmfDLMh6savmjTaMCERBCv80LSL6Xt7a+lc8sRj\n\t/8l1qIvQJAhs0VrE9QzEogWxZ3gUvTOdh3nEw1NnoNP5TSRmF2eyltuscdofKFQfA7l8\n\tgEfZKcJldYXACwgY6pmEyvqzZEgqXZ6hL3Ctn1ykKF2spPPyGgYxTXGZC5pTb+pRYuOF\n\tXA== ",
        "From": "Anoob Joseph <anoobj@marvell.com>",
        "To": "Jerin Jacob <jerinj@marvell.com>, Nikhil Rao <nikhil.rao@intel.com>,\n\t\"Erik Gabriel Carrillo\" <erik.g.carrillo@intel.com>, Abhinandan Gujjar\n\t<abhinandan.gujjar@intel.com>,\n\tBruce Richardson <bruce.richardson@intel.com>,\n\tPablo de Lara <pablo.de.lara.guarch@intel.com>",
        "CC": "Anoob Joseph <anoobj@marvell.com>, Narayana Prasad <pathreya@marvell.com>,\n\t<dev@dpdk.org>, Lukasz Bartosik <lbartosik@marvell.com>, Pavan Nikhilesh\n\t<pbhagavatula@marvell.com>, Hemant Agrawal <hemant.agrawal@nxp.com>,\n\t\"Nipun  Gupta\" <nipun.gupta@nxp.com>, Harry van Haaren\n\t<harry.van.haaren@intel.com>, =?utf-8?q?Mattias_R=C3=B6nnblom?=\n\t<mattias.ronnblom@ericsson.com>,  Liang Ma <liang.j.ma@intel.com>",
        "Date": "Mon, 3 Jun 2019 23:02:19 +0530",
        "Message-ID": "<1559583160-13944-20-git-send-email-anoobj@marvell.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1559583160-13944-1-git-send-email-anoobj@marvell.com>",
        "References": "<1559583160-13944-1-git-send-email-anoobj@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:, ,\n\tdefinitions=2019-06-03_13:, , signatures=0",
        "Subject": "[dpdk-dev] [PATCH 19/39] eventdev: add common initialize routine\n\tfor eventmode devs",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Adding framework for common initialization routine for event mode.\nEvent mode would involve initialization of multiple devices, like\neventdev, ethdev etc and this routine would be the placeholder for all\ninitialization to come in.\n\nSigned-off-by: Anoob Joseph <anoobj@marvell.com>\nSigned-off-by: Lukasz Bartosik <lbartosik@marvell.com>\n---\n lib/librte_eventdev/rte_eventdev_version.map |  2 ++\n lib/librte_eventdev/rte_eventmode_helper.c   | 51 +++++++++++++++++++++++++++-\n lib/librte_eventdev/rte_eventmode_helper.h   | 26 +++++++++++++-\n 3 files changed, 77 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/lib/librte_eventdev/rte_eventdev_version.map b/lib/librte_eventdev/rte_eventdev_version.map\nindex 1199064..e156fa0 100644\n--- a/lib/librte_eventdev/rte_eventdev_version.map\n+++ b/lib/librte_eventdev/rte_eventdev_version.map\n@@ -130,4 +130,6 @@ EXPERIMENTAL {\n \trte_event_eth_rx_adapter_stats_get;\n \trte_eventmode_helper_print_options_list;\n \trte_eventmode_helper_print_options_description;\n+\trte_eventmode_helper_parse_args;\n+\trte_eventmode_helper_initialize_devs;\n };\ndiff --git a/lib/librte_eventdev/rte_eventmode_helper.c b/lib/librte_eventdev/rte_eventmode_helper.c\nindex 38f1a2b..d1a569b 100644\n--- a/lib/librte_eventdev/rte_eventmode_helper.c\n+++ b/lib/librte_eventdev/rte_eventmode_helper.c\n@@ -3,6 +3,7 @@\n  */\n #include <getopt.h>\n \n+#include <rte_ethdev.h>\n #include <rte_eventmode_helper.h>\n #include <rte_malloc.h>\n \n@@ -92,7 +93,7 @@ em_initialize_helper_conf(struct rte_eventmode_helper_conf *conf)\n \tconf->eth_portmask = -1;\n }\n \n-struct rte_eventmode_helper_conf *\n+struct rte_eventmode_helper_conf * __rte_experimental\n rte_eventmode_helper_parse_args(int argc, char **argv)\n {\n \tint32_t opt, ret;\n@@ -152,3 +153,51 @@ rte_eventmode_helper_parse_args(int argc, char **argv)\n \n \treturn NULL;\n }\n+\n+int32_t __rte_experimental\n+rte_eventmode_helper_initialize_devs(\n+\t\tstruct rte_eventmode_helper_conf *mode_conf)\n+{\n+\tint ret;\n+\tuint16_t portid;\n+\n+\tif (mode_conf == NULL) {\n+\t\tRTE_EM_HLPR_LOG_ERR(\"Invalid conf\");\n+\t\treturn -1;\n+\t}\n+\n+\tif (mode_conf->mode != RTE_EVENTMODE_HELPER_PKT_TRANSFER_MODE_EVENT)\n+\t\treturn 0;\n+\n+\tif (mode_conf->mode_params == NULL) {\n+\t\tRTE_EM_HLPR_LOG_ERR(\"Invalid mode params\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Stop eth devices before setting up adapter */\n+\tRTE_ETH_FOREACH_DEV(portid) {\n+\n+\t\t/* Use only the ports enabled */\n+\t\tif ((mode_conf->eth_portmask & (1 << portid)) == 0)\n+\t\t\tcontinue;\n+\n+\t\trte_eth_dev_stop(portid);\n+\t}\n+\n+\t/* Start eth devices after setting up adapter */\n+\tRTE_ETH_FOREACH_DEV(portid) {\n+\n+\t\t/* Use only the ports enabled */\n+\t\tif ((mode_conf->eth_portmask & (1 << portid)) == 0)\n+\t\t\tcontinue;\n+\n+\t\tret = rte_eth_dev_start(portid);\n+\t\tif (ret < 0) {\n+\t\t\tRTE_EM_HLPR_LOG_ERR(\n+\t\t\t\t\"Error starting eth dev %d\", portid);\n+\t\t\treturn -1;\n+\t\t}\n+\t}\n+\n+\treturn 0;\n+}\ndiff --git a/lib/librte_eventdev/rte_eventmode_helper.h b/lib/librte_eventdev/rte_eventmode_helper.h\nindex 77e69d0..0eafed3 100644\n--- a/lib/librte_eventdev/rte_eventmode_helper.h\n+++ b/lib/librte_eventdev/rte_eventmode_helper.h\n@@ -62,9 +62,33 @@ rte_eventmode_helper_print_options_description(void);\n  * @return\n  *   Configuration generated by parsing the event mode args.\n  */\n-struct rte_eventmode_helper_conf *\n+struct rte_eventmode_helper_conf * __rte_experimental\n rte_eventmode_helper_parse_args(int argc, char **argv);\n \n+/* Helper functions for initialization, & launching workers */\n+\n+/**\n+ * Initialize event mode devices\n+ *\n+ * Application could call this function to get the event device, eth device\n+ * and eth rx adapter initialized according to the conf populated using the\n+ * command line args.\n+ *\n+ * Application is expected to initialize the eth device and then the eventmode\n+ * helper subsystem will stop & start eth device according to it's requirement.\n+ * So call to this function should be done after the eth device is successfully\n+ * initialized.\n+ *\n+ * @param mode_conf\n+ *   Configuration of the mode in which app is doing packet handling\n+ * @return\n+ *  - 0 on success.\n+ *  - (<0) on failure.\n+ */\n+int32_t __rte_experimental\n+rte_eventmode_helper_initialize_devs(\n+\t\tstruct rte_eventmode_helper_conf *mode_conf);\n+\n #ifdef __cplusplus\n }\n #endif\n",
    "prefixes": [
        "19/39"
    ]
}