get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 119178,
    "url": "http://patchwork.dpdk.org/api/patches/119178/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20221026194613.1008232-12-john.miller@atomicrules.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": "<20221026194613.1008232-12-john.miller@atomicrules.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20221026194613.1008232-12-john.miller@atomicrules.com",
    "date": "2022-10-26T19:46:11",
    "name": "[12/14] baseband/ark: introduce ark baseband driver common functions",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "0b092ea7257979fc6cdd4b5a689a01b84d6b3173",
    "submitter": {
        "id": 719,
        "url": "http://patchwork.dpdk.org/api/people/719/?format=api",
        "name": "John Miller",
        "email": "john.miller@atomicrules.com"
    },
    "delegate": {
        "id": 2642,
        "url": "http://patchwork.dpdk.org/api/users/2642/?format=api",
        "username": "mcoquelin",
        "first_name": "Maxime",
        "last_name": "Coquelin",
        "email": "maxime.coquelin@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20221026194613.1008232-12-john.miller@atomicrules.com/mbox/",
    "series": [
        {
            "id": 25445,
            "url": "http://patchwork.dpdk.org/api/series/25445/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=25445",
            "date": "2022-10-26T19:46:00",
            "name": "[01/14] doc/guides/bbdevs: add ark baseband device documentation",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/25445/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/119178/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/119178/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 A5185A04FD;\n\tWed, 26 Oct 2022 21:47:38 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 65CAF42BC3;\n\tWed, 26 Oct 2022 21:46:50 +0200 (CEST)",
            "from mail-io1-f49.google.com (mail-io1-f49.google.com\n [209.85.166.49]) by mails.dpdk.org (Postfix) with ESMTP id A81DD42BAF\n for <dev@dpdk.org>; Wed, 26 Oct 2022 21:46:44 +0200 (CEST)",
            "by mail-io1-f49.google.com with SMTP id l127so14455242iof.12\n for <dev@dpdk.org>; Wed, 26 Oct 2022 12:46:44 -0700 (PDT)",
            "from john-System-Product-Name.tds\n (h64-35-205-155.cntcnh.broadband.dynamic.tds.net. [64.35.205.155])\n by smtp.googlemail.com with ESMTPSA id\n m1-20020a056e020de100b002faecf63c48sm2336169ilj.79.2022.10.26.12.46.42\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 26 Oct 2022 12:46:43 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=atomicrules-com.20210112.gappssmtp.com; s=20210112;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=LnVjMq5w4uF+BGPTL0pxH6FUU5464U2rFvFQFELIytU=;\n b=3hBqfAlexHoKwRu+sycovaL/cBFTs4VfN2nadsUJLoGOgM3d8iFvNcuVYLKL6xvjgJ\n AmcCX3PPUMemolTe6OH3xLhKrq6OMablTgF5yomLaba0PLKM3X40AocAVsYxYWM3nDdQ\n NRIGr3DkkmJKEQCumpM953MhMhYC6CNPWcQ4UVR4Akyv5dSXZxtYaR4cK0xWMETYG46T\n HSf0Ek02yMGFuZsX60mRft+X+YTzcZapAIakELZsgcH75fatAEPvmHxcYLCdCKKQhudL\n hr0vqQ9xA+QesMEwPwadPc+6cLx9abHXELplBjSfTXwdrK2p7qnymr5u7+xKvqAcGCqG\n 9Rng==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20210112;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=LnVjMq5w4uF+BGPTL0pxH6FUU5464U2rFvFQFELIytU=;\n b=a11aoZxikT6o20rw0VXPzSzRO6DyHyEjP2RJNJ/MJs/66rXkjAfHiHyEyYz70fe8I1\n A7gIeKw8QcWs4vk5lLyyEx9l2MZULnZFVS2AKL0WIBU3oGR75yqyFJiDsfZm1Il7peDi\n UjhfxvrhTjUWvlIT3h6JuIG0gmmp7woKzEZDZS+nXx5s73E5ZdlQzPFb5EMREXd0nOWK\n nfl2ZJ835DejGwNKUOiwGKLHLjTK8xckz+wl9E9rAQe1+QkuSppgPiXa4bfgEwMzxE98\n x5XoWacZQNo9IRkaFMAGVb3NQN1Tz/cedtotJ8V3lkhMcLL8fzGun5Pjzas/OCyBx2hp\n lMcA==",
        "X-Gm-Message-State": "ACrzQf03NcNGlMY+Ip+V3nazyxM853NUkMLHiZBAmtLgqfUg6f9V4Mjt\n e1pEgyiWiAliCtMD9hrkuY1/mxQzsIjvKA==",
        "X-Google-Smtp-Source": "\n AMsMyM75vnn9jMWEwVZH2q0wqCrXg290hHDDiKxcrRKB6BGv09XUoODWSJdsIMfEEawUTOd7XmDfBA==",
        "X-Received": "by 2002:a05:6638:2392:b0:363:de4d:d135 with SMTP id\n q18-20020a056638239200b00363de4dd135mr30610148jat.131.1666813604066;\n Wed, 26 Oct 2022 12:46:44 -0700 (PDT)",
        "From": "John Miller <john.miller@atomicrules.com>",
        "To": "nicolas.chautru@intel.com",
        "Cc": "dev@dpdk.org, ed.czeck@atomicrules.com, shepard.siegel@atomicrules.com,\n John Miller <john.miller@atomicrules.com>",
        "Subject": "[PATCH 12/14] baseband/ark: introduce ark baseband driver common\n functions",
        "Date": "Wed, 26 Oct 2022 15:46:11 -0400",
        "Message-Id": "<20221026194613.1008232-12-john.miller@atomicrules.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20221026194613.1008232-1-john.miller@atomicrules.com>",
        "References": "<20221026194613.1008232-1-john.miller@atomicrules.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "This patch introduces the Arkville baseband device driver common functions.\n\nSigned-off-by: John Miller <john.miller@atomicrules.com>\n---\n drivers/baseband/ark/ark_bbdev_common.c | 109 ++++++++++++++++++++++++\n drivers/baseband/ark/ark_bbdev_common.h | 100 ++++++++++++++++++++++\n 2 files changed, 209 insertions(+)\n create mode 100644 drivers/baseband/ark/ark_bbdev_common.c\n create mode 100644 drivers/baseband/ark/ark_bbdev_common.h",
    "diff": "diff --git a/drivers/baseband/ark/ark_bbdev_common.c b/drivers/baseband/ark/ark_bbdev_common.c\nnew file mode 100644\nindex 0000000000..b980dd7159\n--- /dev/null\n+++ b/drivers/baseband/ark/ark_bbdev_common.c\n@@ -0,0 +1,109 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2016-2021 Atomic Rules LLC\n+ */\n+\n+#include <string.h>\n+\n+#include <rte_kvargs.h>\n+#include <rte_log.h>\n+\n+#include \"ark_bbdev_common.h\"\n+\n+int ark_bbdev_logtype;\n+RTE_LOG_REGISTER_DEFAULT(ark_bbdev_logtype, DEBUG);\n+\n+static const char * const ark_bbdev_valid_params[] = {\n+\tARK_BBDEV_PKTDIR_ARG,\n+\tARK_BBDEV_PKTGEN_ARG,\n+\tARK_BBDEV_PKTCHKR_ARG,\n+\tNULL\n+};\n+\n+static inline int\n+process_pktdir_arg(const char *key, const char *value,\n+\t\t   void *extra_args)\n+{\n+\tuint32_t *u32 = extra_args;\n+\tARK_BBDEV_LOG(DEBUG, \"key = %s, value = %s\", key, value);\n+\n+\t*u32 = strtol(value, NULL, 0);\n+\tARK_BBDEV_LOG(DEBUG, \"pkt_dir_v = 0x%x\", *u32);\n+\treturn 0;\n+}\n+\n+static inline int\n+process_file_args(const char *key, const char *value, void *extra_args)\n+{\n+\tchar *args = (char *)extra_args;\n+\tARK_BBDEV_LOG(DEBUG, \"key = %s, value = %s\", key, value);\n+\n+\t/* Open the configuration file */\n+\tFILE *file = fopen(value, \"r\");\n+\tchar line[ARK_MAX_ARG_LEN];\n+\tint  size = 0;\n+\tint first = 1;\n+\n+\tif (file == NULL) {\n+\t\tARK_BBDEV_LOG(ERR, \"Unable to open config file %s\",\n+\t\t\t      value);\n+\t\treturn -1;\n+\t}\n+\n+\twhile (fgets(line, sizeof(line), file)) {\n+\t\tsize += strlen(line);\n+\t\tif (size >= ARK_MAX_ARG_LEN) {\n+\t\t\tARK_BBDEV_LOG(ERR, \"Unable to parse file %s args, \"\n+\t\t\t\t      \"parameter list is too long\", value);\n+\t\t\tfclose(file);\n+\t\t\treturn -1;\n+\t\t}\n+\t\tif (first) {\n+\t\t\tstrncpy(args, line, ARK_MAX_ARG_LEN);\n+\t\t\tfirst = 0;\n+\t\t} else {\n+\t\t\tstrncat(args, line, ARK_MAX_ARG_LEN);\n+\t\t}\n+\t}\n+\tARK_BBDEV_LOG(DEBUG, \"file = %s\", args);\n+\tfclose(file);\n+\treturn 0;\n+}\n+\n+\n+/* Parse parameters used to create device */\n+int\n+parse_ark_bbdev_params(const char *input_args,\n+\t\t       struct ark_bbdevice *ark_bb)\n+{\n+\tstruct rte_kvargs *kvlist = NULL;\n+\tint ret = 0;\n+\n+\tif (ark_bb == NULL)\n+\t\treturn -EINVAL;\n+\tif (input_args == NULL)\n+\t\treturn ret;\n+\n+\tkvlist = rte_kvargs_parse(input_args, ark_bbdev_valid_params);\n+\tif (kvlist == NULL)\n+\t\treturn -EFAULT;\n+\n+\tret = rte_kvargs_process(kvlist, ARK_BBDEV_PKTDIR_ARG,\n+\t\t\t\t  &process_pktdir_arg, &ark_bb->pkt_dir_v);\n+\tif (ret < 0)\n+\t\tgoto exit;\n+\n+\tret = rte_kvargs_process(kvlist, ARK_BBDEV_PKTGEN_ARG,\n+\t\t\t\t &process_file_args, &ark_bb->pkt_gen_args);\n+\tif (ret < 0)\n+\t\tgoto exit;\n+\n+\tret = rte_kvargs_process(kvlist, ARK_BBDEV_PKTCHKR_ARG,\n+\t\t\t\t &process_file_args, &ark_bb->pkt_chkr_args);\n+\tif (ret < 0)\n+\t\tgoto exit;\n+\n+ exit:\n+\tif (kvlist)\n+\t\trte_kvargs_free(kvlist);\n+\treturn ret;\n+}\ndiff --git a/drivers/baseband/ark/ark_bbdev_common.h b/drivers/baseband/ark/ark_bbdev_common.h\nnew file mode 100644\nindex 0000000000..9240a11669\n--- /dev/null\n+++ b/drivers/baseband/ark/ark_bbdev_common.h\n@@ -0,0 +1,100 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2016-2021 Atomic Rules LLC\n+ */\n+\n+#ifndef _ARK_BBDEV_COMMON_H_\n+#define _ARK_BBDEV_COMMON_H_\n+\n+#include \"ark_pktchkr.h\"\n+#include \"ark_pktdir.h\"\n+#include \"ark_pktgen.h\"\n+#include \"ark_bbext.h\"\n+\n+#define ARK_MAX_ARG_LEN 256\n+\n+/* Acceptable params for ark BBDEV devices */\n+/*\n+ * The packet generator is a functional block used to generate packet\n+ * patterns for testing.  It is not intended for nominal use.\n+ */\n+#define ARK_BBDEV_PKTGEN_ARG \"Pkt_gen\"\n+\n+/*\n+ * The packet checker is a functional block used to verify packet\n+ * patterns for testing.  It is not intended for nominal use.\n+ */\n+#define ARK_BBDEV_PKTCHKR_ARG \"Pkt_chkr\"\n+\n+/*\n+ * The packet director is used to select the internal ingress and\n+ * egress packets paths during testing.  It is not intended for\n+ * nominal use.\n+ */\n+#define ARK_BBDEV_PKTDIR_ARG \"Pkt_dir\"\n+\n+\n+#define def_ptr(type, name) \\\n+\tunion type {\t\t   \\\n+\t\tuint64_t *t64;\t   \\\n+\t\tuint32_t *t32;\t   \\\n+\t\tuint16_t *t16;\t   \\\n+\t\tuint8_t  *t8;\t   \\\n+\t\tvoid     *v;\t   \\\n+\t} name\n+\n+/*\n+ * Structure to store private data for each PF/VF instance.\n+ */\n+struct ark_bbdevice {\n+\t/* Our Bar 0 */\n+\tuint8_t *bar0;\n+\n+\t/* Application Bar needed for extensions */\n+\tuint8_t *a_bar;\n+\n+\t/* rte baseband device */\n+\tstruct rte_bbdev *bbdev;\n+\n+\t/* Arkville hardware block offsets */\n+\tdef_ptr(sys_ctrl, sysctrl);\n+\tdef_ptr(pkt_gen, pktgen);\n+\tdef_ptr(mpu_rx, mpurx);\n+\tdef_ptr(UDM, udm);\n+\tdef_ptr(mpu_tx, mputx);\n+\tdef_ptr(DDM, ddm);\n+\tdef_ptr(pkt_dir, pktdir);\n+\tdef_ptr(pkt_chkr, pktchkr);\n+\tstruct ark_rqpace_t *rqpacing;\n+\n+\t/* Pointers to packet generator and checker */\n+\tint start_pg;\n+\tark_pkt_gen_t pg;\n+\tark_pkt_chkr_t pc;\n+\tark_pkt_dir_t pd;\n+\n+\t/* Packet generator/checker args */\n+\tchar pkt_gen_args[ARK_MAX_ARG_LEN];\n+\tchar pkt_chkr_args[ARK_MAX_ARG_LEN];\n+\tuint32_t pkt_dir_v;\n+\n+\tint started;\n+\tunsigned int max_nb_queues;  /**< Max number of queues */\n+\n+\tvoid *d_handle;\n+\tstruct arkbb_user_ext user_ext;\n+\tvoid *user_data;\n+\n+};\n+\n+\n+/* Log message for baseband PMD */\n+extern int ark_bbdev_logtype;\n+\n+/* Helper macro for logging */\n+#define ARK_BBDEV_LOG(level, fmt, ...) \\\n+\trte_log(RTE_LOG_ ## level, ark_bbdev_logtype, \\\n+\t\t\"ARK_BBD: \" fmt \"\\n\", ##__VA_ARGS__)\n+\n+int parse_ark_bbdev_params(const char *argv, struct ark_bbdevice *dev);\n+\n+#endif\n",
    "prefixes": [
        "12/14"
    ]
}