Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/3235/?format=api
http://patches.dpdk.org/api/patches/3235/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/1423759677-32152-2-git-send-email-thomas.monjalon@6wind.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": "<1423759677-32152-2-git-send-email-thomas.monjalon@6wind.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1423759677-32152-2-git-send-email-thomas.monjalon@6wind.com", "date": "2015-02-12T16:47:56", "name": "[dpdk-dev,v3,1/2] eal: sort and align options lists", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "1e95f483e34086d2ff28791c0e1bf5cc364297a1", "submitter": { "id": 1, "url": "http://patches.dpdk.org/api/people/1/?format=api", "name": "Thomas Monjalon", "email": "thomas.monjalon@6wind.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dpdk/patch/1423759677-32152-2-git-send-email-thomas.monjalon@6wind.com/mbox/", "series": [], "comments": "http://patches.dpdk.org/api/patches/3235/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/3235/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 5BE5FADF9;\n\tThu, 12 Feb 2015 17:48:39 +0100 (CET)", "from mail-we0-f180.google.com (mail-we0-f180.google.com\n\t[74.125.82.180]) by dpdk.org (Postfix) with ESMTP id 0AE52ADF3\n\tfor <dev@dpdk.org>; Thu, 12 Feb 2015 17:48:36 +0100 (CET)", "by mail-we0-f180.google.com with SMTP id k11so11312606wes.11\n\tfor <dev@dpdk.org>; Thu, 12 Feb 2015 08:48:35 -0800 (PST)", "from localhost.localdomain (136-92-190-109.dsl.ovh.fr.\n\t[109.190.92.136]) by mx.google.com with ESMTPSA id\n\thn2sm6417959wjc.5.2015.02.12.08.48.34\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tThu, 12 Feb 2015 08:48:35 -0800 (PST)" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=WLKdPxo0eXSEGh0RJ+U5NC+KkJU+ZjtXX7Kcb8T416s=;\n\tb=EUv/dejyOjKEjwDc/g4hob1PVmyvc88TVQzk7H0/yhSDN2vl2oNHe0lpmD7hdTOIwO\n\tmJal/jSmYMVKgOeF1hKegL/+/4XR+J+sxqu7roT7jT94C4ZodfcpFW8gHk6FIqCHQ5SS\n\tpse2/DTNMGO222cYaAOlRiZHh/gXModRBwfKciEA8efNLCdQFi/T07Mhm3WYyY3GAms+\n\tImLaklbM9LLJKYUmUlvl7zNFd9RW5lQDujcP6BK/x8HugYFOVKwCJTqpo+QG99EBnoWr\n\taF2Wrv0Fe8DkXhySKQokwCNO9bl2Z2xg/WCha7FAk1C6D9k6BJymiYBsQj0zafsDZC3u\n\tDZeQ==", "X-Gm-Message-State": "ALoCoQlIPAtzvDTxb1OVj/hhjx5706a264BL1Rijxh0vUdVk0+q8RDjty1Tebt0xw1P7UtTiFcE9", "X-Received": "by 10.180.87.33 with SMTP id u1mr7908465wiz.20.1423759715909;\n\tThu, 12 Feb 2015 08:48:35 -0800 (PST)", "From": "Thomas Monjalon <thomas.monjalon@6wind.com>", "To": "dev@dpdk.org", "Date": "Thu, 12 Feb 2015 17:47:56 +0100", "Message-Id": "<1423759677-32152-2-git-send-email-thomas.monjalon@6wind.com>", "X-Mailer": "git-send-email 2.2.2", "In-Reply-To": "<1423759677-32152-1-git-send-email-thomas.monjalon@6wind.com>", "References": "<1422899093-20207-1-git-send-email-thomas.monjalon@6wind.com>\n\t<1423759677-32152-1-git-send-email-thomas.monjalon@6wind.com>", "Subject": "[dpdk-dev] [PATCH v3 1/2] eal: sort and align options lists", "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": "Options listing in usage help was a mess.\nThe main usage line is fixed and shorter.\nThe options in usage output are logically sorted (cpu/mem/dev/proc),\naligned and lightly reworded.\nThe options in declarations are alphabetically sorted.\nCode in swith statement is not moved.\n\nSigned-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>\n---\nchanges in v3:\n- reword arguments in usage \nchanges in v2:\n- sort and align options enum in .h\n---\n lib/librte_eal/common/eal_common_options.c | 112 ++++++++++++++---------------\n lib/librte_eal/common/eal_options.h | 62 ++++++++--------\n lib/librte_eal/linuxapp/eal/eal.c | 19 +++--\n 3 files changed, 95 insertions(+), 98 deletions(-)", "diff": "diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c\nindex 67e02dc..3dda237 100644\n--- a/lib/librte_eal/common/eal_common_options.c\n+++ b/lib/librte_eal/common/eal_common_options.c\n@@ -55,37 +55,38 @@\n const char\n eal_short_options[] =\n \t\"b:\" /* pci-blacklist */\n-\t\"w:\" /* pci-whitelist */\n \t\"c:\" /* coremask */\n-\t\"d:\"\n+\t\"d:\" /* driver */\n \t\"l:\" /* corelist */\n-\t\"m:\"\n-\t\"n:\"\n-\t\"r:\"\n-\t\"v\";\n+\t\"m:\" /* memory size */\n+\t\"n:\" /* memory channels */\n+\t\"r:\" /* memory ranks */\n+\t\"v\" /* version */\n+\t\"w:\" /* pci-whitelist */\n+\t;\n \n const struct option\n eal_long_options[] = {\n-\t{OPT_HUGE_DIR, 1, 0, OPT_HUGE_DIR_NUM},\n-\t{OPT_MASTER_LCORE, 1, 0, OPT_MASTER_LCORE_NUM},\n-\t{OPT_PROC_TYPE, 1, 0, OPT_PROC_TYPE_NUM},\n-\t{OPT_NO_SHCONF, 0, 0, OPT_NO_SHCONF_NUM},\n-\t{OPT_NO_HPET, 0, 0, OPT_NO_HPET_NUM},\n-\t{OPT_VMWARE_TSC_MAP, 0, 0, OPT_VMWARE_TSC_MAP_NUM},\n-\t{OPT_NO_PCI, 0, 0, OPT_NO_PCI_NUM},\n-\t{OPT_NO_HUGE, 0, 0, OPT_NO_HUGE_NUM},\n-\t{OPT_FILE_PREFIX, 1, 0, OPT_FILE_PREFIX_NUM},\n-\t{OPT_SOCKET_MEM, 1, 0, OPT_SOCKET_MEM_NUM},\n-\t{OPT_PCI_WHITELIST, 1, 0, OPT_PCI_WHITELIST_NUM},\n-\t{OPT_PCI_BLACKLIST, 1, 0, OPT_PCI_BLACKLIST_NUM},\n-\t{OPT_VDEV, 1, 0, OPT_VDEV_NUM},\n-\t{OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM},\n-\t{OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM},\n-\t{OPT_BASE_VIRTADDR, 1, 0, OPT_BASE_VIRTADDR_NUM},\n-\t{OPT_XEN_DOM0, 0, 0, OPT_XEN_DOM0_NUM},\n-\t{OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM},\n-\t{OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM},\n-\t{0, 0, 0, 0}\n+\t{OPT_BASE_VIRTADDR, 1, NULL, OPT_BASE_VIRTADDR_NUM },\n+\t{OPT_CREATE_UIO_DEV, 1, NULL, OPT_CREATE_UIO_DEV_NUM },\n+\t{OPT_FILE_PREFIX, 1, NULL, OPT_FILE_PREFIX_NUM },\n+\t{OPT_HUGE_DIR, 1, NULL, OPT_HUGE_DIR_NUM },\n+\t{OPT_LOG_LEVEL, 1, NULL, OPT_LOG_LEVEL_NUM },\n+\t{OPT_MASTER_LCORE, 1, NULL, OPT_MASTER_LCORE_NUM },\n+\t{OPT_NO_HPET, 0, NULL, OPT_NO_HPET_NUM },\n+\t{OPT_NO_HUGE, 0, NULL, OPT_NO_HUGE_NUM },\n+\t{OPT_NO_PCI, 0, NULL, OPT_NO_PCI_NUM },\n+\t{OPT_NO_SHCONF, 0, NULL, OPT_NO_SHCONF_NUM },\n+\t{OPT_PCI_BLACKLIST, 1, NULL, OPT_PCI_BLACKLIST_NUM },\n+\t{OPT_PCI_WHITELIST, 1, NULL, OPT_PCI_WHITELIST_NUM },\n+\t{OPT_PROC_TYPE, 1, NULL, OPT_PROC_TYPE_NUM },\n+\t{OPT_SOCKET_MEM, 1, NULL, OPT_SOCKET_MEM_NUM },\n+\t{OPT_SYSLOG, 1, NULL, OPT_SYSLOG_NUM },\n+\t{OPT_VDEV, 1, NULL, OPT_VDEV_NUM },\n+\t{OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM },\n+\t{OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM },\n+\t{OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM },\n+\t{0, 0, NULL, 0 }\n };\n \n static int lcores_parsed;\n@@ -578,37 +579,36 @@ eal_check_common_options(struct internal_config *internal_cfg)\n void\n eal_common_usage(void)\n {\n-\tprintf(\"-c COREMASK -n NUM [-m NB] [-r NUM] [-b <domain:bus:devid.func>]\"\n-\t \"[--proc-type primary|secondary|auto]\\n\\n\"\n+\tprintf(\"-c COREMASK|-l CORELIST -n CHANNELS [options]\\n\\n\"\n \t \"EAL common options:\\n\"\n-\t \" -c COREMASK : A hexadecimal bitmask of cores to run on\\n\"\n-\t \" -l CORELIST : List of cores to run on\\n\"\n-\t \" The argument format is <c1>[-c2][,c3[-c4],...]\\n\"\n-\t \" where c1, c2, etc are core indexes between 0 and %d\\n\"\n-\t \" --\"OPT_MASTER_LCORE\" ID: Core ID that is used as master\\n\"\n-\t \" -n NUM : Number of memory channels\\n\"\n-\t \" -v : Display version information on startup\\n\"\n-\t \" -m MB : memory to allocate (see also --\"OPT_SOCKET_MEM\")\\n\"\n-\t \" -r NUM : force number of memory ranks (don't detect)\\n\"\n-\t \" --\"OPT_SYSLOG\" : set syslog facility\\n\"\n-\t \" --\"OPT_LOG_LEVEL\" : set default log level\\n\"\n-\t \" --\"OPT_PROC_TYPE\" : type of this process\\n\"\n-\t \" --\"OPT_PCI_BLACKLIST\", -b: add a PCI device in black list.\\n\"\n-\t \" Prevent EAL from using this PCI device. The argument\\n\"\n-\t \" format is <domain:bus:devid.func>.\\n\"\n-\t \" --\"OPT_PCI_WHITELIST\", -w: add a PCI device in white list.\\n\"\n-\t \" Only use the specified PCI devices. The argument format\\n\"\n-\t \" is <[domain:]bus:devid.func>. This option can be present\\n\"\n-\t \" several times (once per device).\\n\"\n-\t \" [NOTE: PCI whitelist cannot be used with -b option]\\n\"\n-\t \" --\"OPT_VDEV\": add a virtual device.\\n\"\n-\t \" The argument format is <driver><id>[,key=val,...]\\n\"\n-\t \" (ex: --vdev=eth_pcap0,iface=eth2).\\n\"\n-\t \" --\"OPT_VMWARE_TSC_MAP\": use VMware TSC map instead of native RDTSC\\n\"\n+\t \" -c COREMASK Hexadecimal bitmask of cores to run on\\n\"\n+\t \" -l CORELIST List of cores to run on\\n\"\n+\t \" The argument format is <c1>[-c2][,c3[-c4],...]\\n\"\n+\t \" where c1, c2, etc are core indexes between 0 and %d\\n\"\n+\t \" --\"OPT_MASTER_LCORE\" ID Core ID that is used as master\\n\"\n+\t \" -n CHANNELS Number of memory channels\\n\"\n+\t \" -m MB Memory to allocate (see also --\"OPT_SOCKET_MEM\")\\n\"\n+\t \" -r RANKS Force number of memory ranks (don't detect)\\n\"\n+\t \" -b, --\"OPT_PCI_BLACKLIST\" Add a PCI device in black list.\\n\"\n+\t \" Prevent EAL from using this PCI device. The argument\\n\"\n+\t \" format is <domain:bus:devid.func>.\\n\"\n+\t \" -w, --\"OPT_PCI_WHITELIST\" Add a PCI device in white list.\\n\"\n+\t \" Only use the specified PCI devices. The argument format\\n\"\n+\t \" is <[domain:]bus:devid.func>. This option can be present\\n\"\n+\t \" several times (once per device).\\n\"\n+\t \" [NOTE: PCI whitelist cannot be used with -b option]\\n\"\n+\t \" --\"OPT_VDEV\" Add a virtual device.\\n\"\n+\t \" The argument format is <driver><id>[,key=val,...]\\n\"\n+\t \" (ex: --vdev=eth_pcap0,iface=eth2).\\n\"\n+\t \" --\"OPT_VMWARE_TSC_MAP\" Use VMware TSC map instead of native RDTSC\\n\"\n+\t \" --\"OPT_PROC_TYPE\" Type of this process (primary|secondary|auto)\\n\"\n+\t \" --\"OPT_SYSLOG\" Set syslog facility\\n\"\n+\t \" --\"OPT_LOG_LEVEL\" Set default log level\\n\"\n+\t \" -v Display version information on startup\\n\"\n \t \"\\nEAL options for DEBUG use only:\\n\"\n-\t \" --\"OPT_NO_HUGE\" : use malloc instead of hugetlbfs\\n\"\n-\t \" --\"OPT_NO_PCI\" : disable pci\\n\"\n-\t \" --\"OPT_NO_HPET\" : disable hpet\\n\"\n-\t \" --\"OPT_NO_SHCONF\": no shared config (mmap'd files)\\n\"\n+\t \" --\"OPT_NO_HUGE\" Use malloc instead of hugetlbfs\\n\"\n+\t \" --\"OPT_NO_PCI\" Disable PCI\\n\"\n+\t \" --\"OPT_NO_HPET\" Disable HPET\\n\"\n+\t \" --\"OPT_NO_SHCONF\" No shared config (mmap'd files)\\n\"\n \t \"\\n\", RTE_MAX_LCORE);\n }\ndiff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h\nindex e476f8d..fe1c85d 100644\n--- a/lib/librte_eal/common/eal_options.h\n+++ b/lib/librte_eal/common/eal_options.h\n@@ -35,48 +35,48 @@\n \n enum {\n \t/* long options mapped to a short option */\n-#define OPT_PCI_WHITELIST \"pci-whitelist\"\n-\tOPT_PCI_WHITELIST_NUM = 'w',\n-#define OPT_PCI_BLACKLIST \"pci-blacklist\"\n-\tOPT_PCI_BLACKLIST_NUM = 'b',\n+#define OPT_PCI_BLACKLIST \"pci-blacklist\"\n+\tOPT_PCI_BLACKLIST_NUM = 'b',\n+#define OPT_PCI_WHITELIST \"pci-whitelist\"\n+\tOPT_PCI_WHITELIST_NUM = 'w',\n \n \t/* first long only option value must be >= 256, so that we won't\n \t * conflict with short options */\n \tOPT_LONG_MIN_NUM = 256,\n-#define OPT_HUGE_DIR \"huge-dir\"\n-\tOPT_HUGE_DIR_NUM = OPT_LONG_MIN_NUM,\n-#define OPT_MASTER_LCORE \"master-lcore\"\n+#define OPT_BASE_VIRTADDR \"base-virtaddr\"\n+\tOPT_BASE_VIRTADDR_NUM,\n+#define OPT_CREATE_UIO_DEV \"create-uio-dev\"\n+\tOPT_CREATE_UIO_DEV_NUM,\n+#define OPT_FILE_PREFIX \"file-prefix\"\n+\tOPT_FILE_PREFIX_NUM,\n+#define OPT_HUGE_DIR \"huge-dir\"\n+\tOPT_HUGE_DIR_NUM,\n+#define OPT_LOG_LEVEL \"log-level\"\n+\tOPT_LOG_LEVEL_NUM,\n+#define OPT_MASTER_LCORE \"master-lcore\"\n \tOPT_MASTER_LCORE_NUM,\n-#define OPT_PROC_TYPE \"proc-type\"\n+#define OPT_PROC_TYPE \"proc-type\"\n \tOPT_PROC_TYPE_NUM,\n-#define OPT_NO_SHCONF \"no-shconf\"\n-\tOPT_NO_SHCONF_NUM,\n-#define OPT_NO_HPET \"no-hpet\"\n+#define OPT_NO_HPET \"no-hpet\"\n \tOPT_NO_HPET_NUM,\n-#define OPT_VMWARE_TSC_MAP \"vmware-tsc-map\"\n-\tOPT_VMWARE_TSC_MAP_NUM,\n-#define OPT_NO_PCI \"no-pci\"\n-\tOPT_NO_PCI_NUM,\n-#define OPT_NO_HUGE \"no-huge\"\n+#define OPT_NO_HUGE \"no-huge\"\n \tOPT_NO_HUGE_NUM,\n-#define OPT_FILE_PREFIX \"file-prefix\"\n-\tOPT_FILE_PREFIX_NUM,\n-#define OPT_SOCKET_MEM \"socket-mem\"\n+#define OPT_NO_PCI \"no-pci\"\n+\tOPT_NO_PCI_NUM,\n+#define OPT_NO_SHCONF \"no-shconf\"\n+\tOPT_NO_SHCONF_NUM,\n+#define OPT_SOCKET_MEM \"socket-mem\"\n \tOPT_SOCKET_MEM_NUM,\n-#define OPT_VDEV \"vdev\"\n-\tOPT_VDEV_NUM,\n-#define OPT_SYSLOG \"syslog\"\n+#define OPT_SYSLOG \"syslog\"\n \tOPT_SYSLOG_NUM,\n-#define OPT_LOG_LEVEL \"log-level\"\n-\tOPT_LOG_LEVEL_NUM,\n-#define OPT_BASE_VIRTADDR \"base-virtaddr\"\n-\tOPT_BASE_VIRTADDR_NUM,\n-#define OPT_XEN_DOM0 \"xen-dom0\"\n-\tOPT_XEN_DOM0_NUM,\n-#define OPT_CREATE_UIO_DEV \"create-uio-dev\"\n-\tOPT_CREATE_UIO_DEV_NUM,\n-#define OPT_VFIO_INTR \"vfio-intr\"\n+#define OPT_VDEV \"vdev\"\n+\tOPT_VDEV_NUM,\n+#define OPT_VFIO_INTR \"vfio-intr\"\n \tOPT_VFIO_INTR_NUM,\n+#define OPT_VMWARE_TSC_MAP \"vmware-tsc-map\"\n+\tOPT_VMWARE_TSC_MAP_NUM,\n+#define OPT_XEN_DOM0 \"xen-dom0\"\n+\tOPT_XEN_DOM0_NUM,\n \tOPT_LONG_MAX_NUM\n };\n \ndiff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c\nindex f99e158..e3955e7 100644\n--- a/lib/librte_eal/linuxapp/eal/eal.c\n+++ b/lib/librte_eal/linuxapp/eal/eal.c\n@@ -352,17 +352,14 @@ eal_usage(const char *prgname)\n \tprintf(\"\\nUsage: %s \", prgname);\n \teal_common_usage();\n \tprintf(\"EAL Linux options:\\n\"\n-\t \" -d LIB.so : add driver (can be used multiple times)\\n\"\n-\t \" --\"OPT_XEN_DOM0\" : support application running on Xen Domain0 \"\n-\t\t\t \"without hugetlbfs\\n\"\n-\t \" --\"OPT_SOCKET_MEM\" : memory to allocate on specific\\n\"\n-\t\t \" sockets (use comma separated values)\\n\"\n-\t \" --\"OPT_HUGE_DIR\" : directory where hugetlbfs is mounted\\n\"\n-\t \" --\"OPT_FILE_PREFIX\": prefix for hugepage filenames\\n\"\n-\t \" --\"OPT_BASE_VIRTADDR\": specify base virtual address\\n\"\n-\t \" --\"OPT_VFIO_INTR\": specify desired interrupt mode for VFIO \"\n-\t\t\t \"(legacy|msi|msix)\\n\"\n-\t \" --\"OPT_CREATE_UIO_DEV\": create /dev/uioX (usually done by hotplug)\\n\"\n+\t \" -d LIB.so Add driver (can be used multiple times)\\n\"\n+\t \" --\"OPT_SOCKET_MEM\" Memory to allocate on sockets (comma separated values)\\n\"\n+\t \" --\"OPT_HUGE_DIR\" Directory where hugetlbfs is mounted\\n\"\n+\t \" --\"OPT_FILE_PREFIX\" Prefix for hugepage filenames\\n\"\n+\t \" --\"OPT_BASE_VIRTADDR\" Base virtual address\\n\"\n+\t \" --\"OPT_CREATE_UIO_DEV\" Create /dev/uioX (usually done by hotplug)\\n\"\n+\t \" --\"OPT_VFIO_INTR\" Interrupt mode for VFIO (legacy|msi|msix)\\n\"\n+\t \" --\"OPT_XEN_DOM0\" Support running on Xen dom0 without hugetlbfs\\n\"\n \t \"\\n\");\n \t/* Allow the application to print its usage message too if hook is set */\n \tif ( rte_application_usage_hook ) {\n", "prefixes": [ "dpdk-dev", "v3", "1/2" ] }{ "id": 3235, "url": "