get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2766,
    "url": "https://patches.dpdk.org/api/patches/2766/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1422594454-11045-4-git-send-email-jing.d.chen@intel.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": "<1422594454-11045-4-git-send-email-jing.d.chen@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1422594454-11045-4-git-send-email-jing.d.chen@intel.com",
    "date": "2015-01-30T05:07:19",
    "name": "[dpdk-dev,03/18] fm10k: Add empty fm10k files",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "37a63a7ee1cd59a4369814c42825c3dc58cd62bb",
    "submitter": {
        "id": 40,
        "url": "https://patches.dpdk.org/api/people/40/?format=api",
        "name": "Chen, Jing D",
        "email": "jing.d.chen@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1422594454-11045-4-git-send-email-jing.d.chen@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/2766/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/2766/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 AFADD5AAA;\n\tFri, 30 Jan 2015 06:08:39 +0100 (CET)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n\tby dpdk.org (Postfix) with ESMTP id B9A5B255\n\tfor <dev@dpdk.org>; Fri, 30 Jan 2015 06:08:23 +0100 (CET)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby fmsmga102.fm.intel.com with ESMTP; 29 Jan 2015 21:08:22 -0800",
            "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby fmsmga001.fm.intel.com with ESMTP; 29 Jan 2015 21:08:21 -0800",
            "from shecgisg003.sh.intel.com (shecgisg003.sh.intel.com\n\t[10.239.29.90])\n\tby shvmail01.sh.intel.com with ESMTP id t0U58BSg013933;\n\tFri, 30 Jan 2015 13:08:11 +0800",
            "from shecgisg003.sh.intel.com (localhost [127.0.0.1])\n\tby shecgisg003.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP\n\tid t0U58ARP011100; Fri, 30 Jan 2015 13:08:12 +0800",
            "(from jingche2@localhost)\n\tby shecgisg003.sh.intel.com (8.13.6/8.13.6/Submit) id t0U58Aj0011096; \n\tFri, 30 Jan 2015 13:08:10 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.09,490,1418112000\"; d=\"scan'208\";a=\"659018889\"",
        "From": "\"Chen Jing D(Mark)\" <jing.d.chen@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Fri, 30 Jan 2015 13:07:19 +0800",
        "Message-Id": "<1422594454-11045-4-git-send-email-jing.d.chen@intel.com>",
        "X-Mailer": "git-send-email 1.7.12.2",
        "In-Reply-To": "<1422594454-11045-1-git-send-email-jing.d.chen@intel.com>",
        "References": "<1422594454-11045-1-git-send-email-jing.d.chen@intel.com>",
        "Subject": "[dpdk-dev] [PATCH 03/18] fm10k: Add empty fm10k files",
        "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": "From: Jeff Shaw <jeffrey.b.shaw@intel.com>\n\nDefine macros and basic data structure.\nDefine rte_log wrapper functions.\n\nSigned-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>\nSigned-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>\n---\n lib/librte_pmd_fm10k/Makefile     |   96 ++++++++++++++++\n lib/librte_pmd_fm10k/fm10k.h      |  224 +++++++++++++++++++++++++++++++++++++\n lib/librte_pmd_fm10k/fm10k_logs.h |   66 +++++++++++\n 3 files changed, 386 insertions(+), 0 deletions(-)\n create mode 100644 lib/librte_pmd_fm10k/Makefile\n create mode 100644 lib/librte_pmd_fm10k/fm10k.h\n create mode 100644 lib/librte_pmd_fm10k/fm10k_ethdev.c\n create mode 100644 lib/librte_pmd_fm10k/fm10k_logs.h\n create mode 100644 lib/librte_pmd_fm10k/fm10k_rxtx.c\n\ndiff --git a/lib/librte_pmd_fm10k/fm10k_rxtx.c b/lib/librte_pmd_fm10k/fm10k_rxtx.c\nnew file mode 100644\nindex 0000000..e69de29",
    "diff": "diff --git a/lib/librte_pmd_fm10k/Makefile b/lib/librte_pmd_fm10k/Makefile\nnew file mode 100644\nindex 0000000..3d76387\n--- /dev/null\n+++ b/lib/librte_pmd_fm10k/Makefile\n@@ -0,0 +1,96 @@\n+#   BSD LICENSE\n+#\n+#   Copyright(c) 2013-2014 Intel Corporation. All rights reserved.\n+#   All rights reserved.\n+#\n+#   Redistribution and use in source and binary forms, with or without\n+#   modification, are permitted provided that the following conditions\n+#   are met:\n+#\n+#     * Redistributions of source code must retain the above copyright\n+#       notice, this list of conditions and the following disclaimer.\n+#     * Redistributions in binary form must reproduce the above copyright\n+#       notice, this list of conditions and the following disclaimer in\n+#       the documentation and/or other materials provided with the\n+#       distribution.\n+#     * Neither the name of Intel Corporation nor the names of its\n+#       contributors may be used to endorse or promote products derived\n+#       from this software without specific prior written permission.\n+#\n+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+#   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+#\n+# library name\n+#\n+LIB = librte_pmd_fm10k.a\n+\n+CFLAGS += -O3\n+CFLAGS += $(WERROR_FLAGS)\n+\n+ifeq ($(CC), icc)\n+#\n+# CFLAGS for icc\n+#\n+CFLAGS_BASE_DRIVER = -wd174 -wd593 -wd869 -wd981 -wd2259\n+\n+else ifeq ($(CC), clang)\n+#\n+## CFLAGS for clang\n+#\n+CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value\n+CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args\n+CFLAGS_BASE_DRIVER += -Wno-unused-variable -Wno-unused-but-set-variable\n+CFLAGS_BASE_DRIVER += -Wno-missing-field-initializers\n+\n+else\n+#\n+# CFLAGS for gcc\n+#\n+ifneq ($(shell test $(GCC_MAJOR_VERSION) -le 4 -a $(GCC_MINOR_VERSION) -le 3 && echo 1), 1)\n+CFLAGS     += -Wno-deprecated\n+endif\n+CFLAGS_BASE_DRIVER = -Wno-unused-parameter -Wno-unused-value\n+CFLAGS_BASE_DRIVER += -Wno-strict-aliasing -Wno-format-extra-args\n+CFLAGS_BASE_DRIVER += -Wno-unused-variable -Wno-unused-but-set-variable\n+CFLAGS_BASE_DRIVER += -Wno-missing-field-initializers\n+endif\n+\n+#\n+# Add extra flags for base driver source files to disable warnings in them\n+#\n+BASE_DRIVER_OBJS=$(patsubst %.c,%.o,$(notdir $(wildcard $(RTE_SDK)/lib/librte_pmd_fm10k/SHARED/*.c)))\n+$(foreach obj, $(BASE_DRIVER_OBJS), $(eval CFLAGS_$(obj)+=$(CFLAGS_BASE_DRIVER)))\n+\n+VPATH += $(RTE_SDK)/lib/librte_pmd_fm10k/SHARED\n+\n+#\n+# all source are stored in SRCS-y\n+#\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_ethdev.c\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_rxtx.c\n+\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_pf.c\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_tlv.c\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_common.c\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_mbx.c\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_vf.c\n+SRCS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += fm10k_api.c\n+\n+# this lib depends upon:\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += lib/librte_eal lib/librte_ether\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += lib/librte_mempool lib/librte_mbuf\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += lib/librte_net lib/librte_malloc\n+\n+include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/lib/librte_pmd_fm10k/fm10k.h b/lib/librte_pmd_fm10k/fm10k.h\nnew file mode 100644\nindex 0000000..9b2d3da\n--- /dev/null\n+++ b/lib/librte_pmd_fm10k/fm10k.h\n@@ -0,0 +1,224 @@\n+/*-\n+ *   BSD LICENSE\n+ *\n+ *   Copyright(c) 2013-2014 Intel Corporation. All rights reserved.\n+ *   All rights reserved.\n+ *\n+ *   Redistribution and use in source and binary forms, with or without\n+ *   modification, are permitted provided that the following conditions\n+ *   are met:\n+ *\n+ *     * Redistributions of source code must retain the above copyright\n+ *       notice, this list of conditions and the following disclaimer.\n+ *     * Redistributions in binary form must reproduce the above copyright\n+ *       notice, this list of conditions and the following disclaimer in\n+ *       the documentation and/or other materials provided with the\n+ *       distribution.\n+ *     * Neither the name of Intel Corporation nor the names of its\n+ *       contributors may be used to endorse or promote products derived\n+ *       from this software without specific prior written permission.\n+ *\n+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ *   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+\n+#ifndef _FM10K_H_\n+#define _FM10K_H_\n+\n+#include <stdint.h>\n+#include <rte_mbuf.h>\n+#include <rte_mempool.h>\n+#include <rte_malloc.h>\n+#include <rte_spinlock.h>\n+#include \"fm10k_logs.h\"\n+#include \"SHARED/fm10k_type.h\"\n+\n+/* descriptor ring base addresses must be aligned to the following */\n+#define FM10K_ALIGN_RX_DESC  128\n+#define FM10K_ALIGN_TX_DESC  128\n+\n+/* The maximum packet size that FM10K supports */\n+#define FM10K_MAX_PKT_SIZE  (15 * 1024)\n+\n+/* Minimum size of RX buffer FM10K supported */\n+#define FM10K_MIN_RX_BUF_SIZE  256\n+\n+/* The maximum of SRIOV VFs per port supported */\n+#define FM10K_MAX_VF_NUM    64\n+\n+/* number of descriptors must be a multiple of the following */\n+#define FM10K_MULT_RX_DESC  FM10K_REQ_RX_DESCRIPTOR_MULTIPLE\n+#define FM10K_MULT_TX_DESC  FM10K_REQ_TX_DESCRIPTOR_MULTIPLE\n+\n+/* maximum size of descriptor rings */\n+#define FM10K_MAX_RX_RING_SZ  (512 * 1024)\n+#define FM10K_MAX_TX_RING_SZ  (512 * 1024)\n+\n+/* minimum and maximum number of descriptors in a ring */\n+#define FM10K_MIN_RX_DESC  32\n+#define FM10K_MIN_TX_DESC  32\n+#define FM10K_MAX_RX_DESC  (FM10K_MAX_RX_RING_SZ / sizeof(union fm10k_rx_desc))\n+#define FM10K_MAX_TX_DESC  (FM10K_MAX_TX_RING_SZ / sizeof(struct fm10k_tx_desc))\n+\n+/*\n+ * byte aligment for HW RX data buffer\n+ * Datasheet requires RX buffer addresses shall either be 512-byte aligned or\n+ * be 8-byte aligned but without crossing host memory pages (4KB alignment\n+ * boundaries). Satisfy first option.\n+ */\n+#define FM10K_RX_DATABUF_ALIGN 512\n+\n+/*\n+ * threshold default, min, max, and divisor constraints\n+ * the configured values must satisfy the following:\n+ *   MIN <= value <= MAX\n+ *   DIV % value == 0\n+ */\n+#define FM10K_RX_FREE_THRESH_DEFAULT(rxq)  32\n+#define FM10K_RX_FREE_THRESH_MIN(rxq)      1\n+#define FM10K_RX_FREE_THRESH_MAX(rxq)      ((rxq)->nb_desc - 1)\n+#define FM10K_RX_FREE_THRESH_DIV(rxq)      ((rxq)->nb_desc)\n+\n+#define FM10K_TX_FREE_THRESH_DEFAULT(txq)  32\n+#define FM10K_TX_FREE_THRESH_MIN(txq)      1\n+#define FM10K_TX_FREE_THRESH_MAX(txq)      ((txq)->nb_desc - 3)\n+#define FM10K_TX_FREE_THRESH_DIV(txq)      0\n+\n+#define FM10K_DEFAULT_RX_PTHRESH      8\n+#define FM10K_DEFAULT_RX_HTHRESH      8\n+#define FM10K_DEFAULT_RX_WTHRESH      0\n+\n+#define FM10K_DEFAULT_TX_PTHRESH      32\n+#define FM10K_DEFAULT_TX_HTHRESH      0\n+#define FM10K_DEFAULT_TX_WTHRESH      0\n+\n+#define FM10K_TX_RS_THRESH_DEFAULT(txq)    32\n+#define FM10K_TX_RS_THRESH_MIN(txq)        1\n+#define FM10K_TX_RS_THRESH_MAX(txq)        \\\n+\tRTE_MIN(((txq)->nb_desc - 2), (txq)->free_thresh)\n+#define FM10K_TX_RS_THRESH_DIV(txq)        ((txq)->nb_desc)\n+\n+#define FM10K_VLAN_TAG_SIZE 4\n+\n+struct fm10k_dev_info {\n+\tvolatile uint32_t enable;\n+\tvolatile uint32_t glort;\n+\t/* Protect the mailbox to avoid race condition */\n+\trte_spinlock_t    mbx_lock;\n+};\n+\n+/*\n+ * Structure to store private data for each driver instance.\n+ */\n+struct fm10k_adapter {\n+\tstruct fm10k_hw             hw;\n+\tstruct fm10k_hw_stats       stats;\n+\tstruct fm10k_dev_info       info;\n+};\n+\n+#define FM10K_DEV_PRIVATE_TO_HW(adapter) \\\n+\t(&((struct fm10k_adapter *)adapter)->hw)\n+\n+#define FM10K_DEV_PRIVATE_TO_STATS(adapter) \\\n+\t(&((struct fm10k_adapter *)adapter)->stats)\n+\n+#define FM10K_DEV_PRIVATE_TO_INFO(adapter) \\\n+\t(&((struct fm10k_adapter *)adapter)->info)\n+\n+#define FM10K_DEV_PRIVATE_TO_MBXLOCK(adapter) \\\n+\t(&(((struct fm10k_adapter *)adapter)->info.mbx_lock))\n+\n+struct fm10k_rx_queue {\n+\tstruct rte_mempool *mp;\n+\tstruct rte_mbuf **sw_ring;\n+\tvolatile union fm10k_rx_desc *hw_ring;\n+\tstruct rte_mbuf *pkt_first_seg; /**< First segment of current packet. */\n+\tstruct rte_mbuf *pkt_last_seg;  /**< Last segment of current packet. */\n+\tuint64_t hw_ring_phys_addr;\n+\tuint16_t next_dd;\n+\tuint16_t next_alloc;\n+\tuint16_t next_trigger;\n+\tuint16_t alloc_thresh;\n+\tvolatile uint32_t *tail_ptr;\n+\tuint16_t nb_desc;\n+\tuint16_t queue_id;\n+\tuint8_t port_id;\n+\tuint8_t drop_en;\n+\tuint8_t rx_deferred_start; /** < don't start this queue in dev start. */\n+};\n+\n+/*\n+ * a FIFO is used to track which descriptors have their RS bit set for Tx\n+ * queues which are configured to allow multiple descriptors per packet\n+ */\n+struct fifo {\n+\tuint16_t *list;\n+\tuint16_t *head;\n+\tuint16_t *tail;\n+\tuint16_t *endp;\n+};\n+\n+struct fm10k_tx_queue {\n+\tstruct rte_mbuf **sw_ring;\n+\tstruct fm10k_tx_desc *hw_ring;\n+\tuint64_t hw_ring_phys_addr;\n+\tstruct fifo rs_tracker;\n+\tuint16_t last_free;\n+\tuint16_t next_free;\n+\tuint16_t nb_free;\n+\tuint16_t nb_used;\n+\tuint16_t free_trigger;\n+\tuint16_t free_thresh;\n+\tuint16_t rs_thresh;\n+\tvolatile uint32_t *tail_ptr;\n+\tuint16_t nb_desc;\n+\tuint8_t port_id;\n+\tuint8_t tx_deferred_start; /** < don't start this queue in dev start. */\n+\tuint16_t queue_id;\n+};\n+\n+#define MBUF_DMA_ADDR(mb) \\\n+\t((uint64_t) ((mb)->buf_physaddr + (mb)->data_off))\n+\n+/* enforce 512B alignment on default Rx DMA addresses */\n+#define MBUF_DMA_ADDR_DEFAULT(mb) \\\n+\t((uint64_t) RTE_ALIGN(((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM), 512))\n+\n+static inline void fifo_reset(struct fifo *fifo, uint32_t len)\n+{\n+\tfifo->head = fifo->tail = fifo->list;\n+\tfifo->endp = fifo->list + len;\n+}\n+\n+static inline void fifo_insert(struct fifo *fifo, uint16_t val)\n+{\n+\t*fifo->head = val;\n+\tif (++fifo->head == fifo->endp)\n+\t\tfifo->head = fifo->list;\n+}\n+\n+/* do not worry about list being empty since we only check it once we know\n+ * we have used enough descriptors to set the RS bit at least once */\n+static inline uint16_t fifo_peek(struct fifo *fifo)\n+{\n+\treturn *fifo->tail;\n+}\n+\n+static inline uint16_t fifo_remove(struct fifo *fifo)\n+{\n+\tuint16_t val;\n+\tval = *fifo->tail;\n+\tif (++fifo->tail == fifo->endp)\n+\t\tfifo->tail = fifo->list;\n+\treturn val;\n+}\n+#endif\ndiff --git a/lib/librte_pmd_fm10k/fm10k_ethdev.c b/lib/librte_pmd_fm10k/fm10k_ethdev.c\nnew file mode 100644\nindex 0000000..e69de29\ndiff --git a/lib/librte_pmd_fm10k/fm10k_logs.h b/lib/librte_pmd_fm10k/fm10k_logs.h\nnew file mode 100644\nindex 0000000..0b4cd24\n--- /dev/null\n+++ b/lib/librte_pmd_fm10k/fm10k_logs.h\n@@ -0,0 +1,66 @@\n+/*-\n+ *   BSD LICENSE\n+ *\n+ *   Copyright(c) 2013-2014 Intel Corporation. All rights reserved.\n+ *   All rights reserved.\n+ *\n+ *   Redistribution and use in source and binary forms, with or without\n+ *   modification, are permitted provided that the following conditions\n+ *   are met:\n+ *\n+ *     * Redistributions of source code must retain the above copyright\n+ *       notice, this list of conditions and the following disclaimer.\n+ *     * Redistributions in binary form must reproduce the above copyright\n+ *       notice, this list of conditions and the following disclaimer in\n+ *       the documentation and/or other materials provided with the\n+ *       distribution.\n+ *     * Neither the name of Intel Corporation nor the names of its\n+ *       contributors may be used to endorse or promote products derived\n+ *       from this software without specific prior written permission.\n+ *\n+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ *   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+\n+#ifndef _FM10K_LOGS_H_\n+#define _FM10K_LOGS_H_\n+\n+#include <rte_log.h>\n+\n+#ifdef RTE_LIBRTE_FM10K_DEBUG\n+#define PMD_LOG(level, fmt, args...) \\\n+\tRTE_LOG(level, PMD, \"%s(): \" fmt \"\\n\", __func__, ## args)\n+#define PMD_FUNC_TRACE() PMD_LOG(DEBUG, \" >>\")\n+#else\n+#define PMD_LOG(level, fmt, args...) do { } while (0)\n+#define PMD_FUNC_TRACE() do { } while (0)\n+#endif\n+\n+#ifdef RTE_LIBRTE_FM10K_DEBUG_RX\n+#define PMD_LOG_RX(level, fmt, args...) \\\n+\tRTE_LOG(level, PMD, \"%s(): \" fmt \"\\n\", __func__, ## args)\n+#define PMD_FUNC_TRACE_RX() PMD_LOG_RX(DEBUG, \" >>\")\n+#else\n+#define PMD_LOG_RX(level, fmt, args...) do { } while (0)\n+#define PMD_FUNC_TRACE_RX() do { } while (0)\n+#endif\n+\n+#ifdef RTE_LIBRTE_FM10K_DEBUG_TX\n+#define PMD_LOG_TX(level, fmt, args...) \\\n+\tRTE_LOG(level, PMD, \"%s(): \" fmt \"\\n\", __func__, ## args)\n+#define PMD_FUNC_TRACE_TX() PMD_LOG_TX(DEBUG, \" >>\")\n+#else\n+#define PMD_LOG_TX(level, fmt, args...) do { } while (0)\n+#define PMD_FUNC_TRACE_TX() do { } while (0)\n+#endif\n+\n+#endif /* _FM10K_LOGS_H_ */\n",
    "prefixes": [
        "dpdk-dev",
        "03/18"
    ]
}