get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 88769,
    "url": "http://patches.dpdk.org/api/patches/88769/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210309233116.1934666-10-thomas@monjalon.net/",
    "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": "<20210309233116.1934666-10-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210309233116.1934666-10-thomas@monjalon.net",
    "date": "2021-03-09T23:31:13",
    "name": "[09/11] app: hook in EAL usage help",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "62bcf03e1b6fabfcdfbc27a687de890b4884b34f",
    "submitter": {
        "id": 685,
        "url": "http://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210309233116.1934666-10-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 15554,
            "url": "http://patches.dpdk.org/api/series/15554/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=15554",
            "date": "2021-03-09T23:31:04",
            "name": "improve options help",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/15554/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/88769/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/88769/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 B9AB3A0567;\n\tWed, 10 Mar 2021 00:32:42 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id C8A7F22A586;\n\tWed, 10 Mar 2021 00:31:56 +0100 (CET)",
            "from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com\n [66.111.4.221]) by mails.dpdk.org (Postfix) with ESMTP id 5B8D522A57F\n for <dev@dpdk.org>; Wed, 10 Mar 2021 00:31:54 +0100 (CET)",
            "from compute3.internal (compute3.nyi.internal [10.202.2.43])\n by mailnew.nyi.internal (Postfix) with ESMTP id A15185803CD;\n Tue,  9 Mar 2021 18:31:53 -0500 (EST)",
            "from mailfrontend1 ([10.202.2.162])\n by compute3.internal (MEProxy); Tue, 09 Mar 2021 18:31:53 -0500",
            "from xps.monjalon.net (184.203.134.77.rev.sfr.net [77.134.203.184])\n by mail.messagingengine.com (Postfix) with ESMTPA id 0A19124005D;\n Tue,  9 Mar 2021 18:31:51 -0500 (EST)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding; s=fm3; bh=z9q138BdglJgI\n nndfinARmV9LeG3Ecxpo8qz50GAHC0=; b=lE3T8EsxZzJIkhP4k2bGK9TvNeqvl\n j19Ef+c8qtEIrDYsN1gbf+UpF8jvtwkc6EAN+OBS6fF7vYSeBZRU4/eaRPLjOYN1\n ufLuUgVkqlFdhWQGXUs7vkXtMb2y9Z72ob1/7IiBpkuxpQApf8Am9mqlcezQGq9x\n pvPXGKXexKvC6AvMtXS10y/X+WHt8jCPwp8MoSy5GLnonYz4YS8HaBCOsvA8xNka\n TdSJ8DnU/hvSo6ftgZvdgsSG6PlM6Px/UCXTEVbrbHDyoUJWUNGUrC7vFCtaTdhC\n Tgc2sOgYykSWoJKyBWEkzbN0m4+S8NBN71kOmT9Uz0rnIybY4VMPmxanA==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:content-transfer-encoding:date:from\n :in-reply-to:message-id:mime-version:references:subject:to\n :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=\n fm2; bh=z9q138BdglJgInndfinARmV9LeG3Ecxpo8qz50GAHC0=; b=mShZB5c8\n qHl6CUJuSYWgMzeBv793DrYWwFQGomSfAdmjH5lE6Vy9bSPZUgANezsa6OsEeoOe\n l4iO0Y0VYzNKWdz5B79LOiOg304HEx3Y6al6mVYI+YFxDMP25EZ3wBqgJtpcnXvS\n WVEtJ3XlTWc1xDdIacoE8Vg4ttgWHfSJtgsFwMNS/gz4W1nJKdkWQ9haPNpH+7Tq\n 11yObe3HtaUCA0/lGGoliZDuIJt7mPGc1911dgIAd+Mee52HKdCf4mvewZty/M+A\n mdX3JBwo0NcIVkUM547wVa1nvtlSkB58GUc12zoDUw4qMx08w8Zy/BAFUaF4ST9L\n VTpxxAZ6dLQcrg=="
        ],
        "X-ME-Sender": "<xms:aQVIYBIezycD7t3gnffjLa7azlDrogdvcrTrTyhqpGiO-MyBMsn4bA>\n <xme:aQVIYPJk7thTV8XFEvMqNWeSYN7w0uP2ymyeDyqOA-LNUtadkcC3UboPTjE_q8r5a\n k7LPW-yqDS79bh_2g>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgeduledrudduiedgudejgecutefuodetggdotefrod\n ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh\n necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd\n enucfjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepvfhhohhm\n rghsucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenuc\n ggtffrrghtthgvrhhnpedvhefgiedvjeegtdevheefhfetleefgfeivefgffevfeejgedt\n gfeutdehtdegveenucfkphepjeejrddufeegrddvtdefrddukeegnecuvehluhhsthgvrh\n fuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepthhhohhmrghssehmohhnjhgr\n lhhonhdrnhgvth",
        "X-ME-Proxy": "<xmx:aQVIYDHov9_p3ncbAI6050h8HqCoFNMilmRPCkB3SXXe4UfK0wr2BA>\n <xmx:aQVIYEnYottaRNPWxQWcdzrXZyG714gszkzrQBnzjwHbdp4GWoHapg>\n <xmx:aQVIYAKankVi4Cf6GL3gVc96YUlD7jT2qZrAZblyjmN0qsvl9xe_Wg>\n <xmx:aQVIYB2evhxgA9gdLdDa0ewFBcIwEkAXPhI5OIwk8OsdljIctvI0bQ>",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "david.marchand@redhat.com, Reshma Pattan <reshma.pattan@intel.com>,\n Maryam Tahhan <maryam.tahhan@intel.com>,\n Konstantin Ananyev <konstantin.ananyev@intel.com>,\n Nicolas Chautru <nicolas.chautru@intel.com>,\n Declan Doherty <declan.doherty@intel.com>,\n Ciara Power <ciara.power@intel.com>,\n Vladimir Medvedkin <vladimir.medvedkin@intel.com>,\n Wisam Jaddo <wisamm@nvidia.com>, Xiaoyun Li <xiaoyun.li@intel.com>,\n Ori Kam <orika@nvidia.com>, Bernard Iremonger <bernard.iremonger@intel.com>",
        "Date": "Wed, 10 Mar 2021 00:31:13 +0100",
        "Message-Id": "<20210309233116.1934666-10-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.30.1",
        "In-Reply-To": "<20210309233116.1934666-1-thomas@monjalon.net>",
        "References": "<20210309233116.1934666-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 09/11] app: hook in EAL usage help",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Use rte_set_application_usage_hook() in the test applications,\nso the full help including EAL options can be printed in one go\nwith the EAL option -h or --help.\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\n---\n app/pdump/main.c                                 | 2 ++\n app/proc-info/main.c                             | 2 ++\n app/test-acl/main.c                              | 2 ++\n app/test-bbdev/main.c                            | 3 ++-\n app/test-compress-perf/comp_perf_options.h       | 2 ++\n app/test-compress-perf/comp_perf_options_parse.c | 8 ++++----\n app/test-compress-perf/main.c                    | 3 ++-\n app/test-crypto-perf/cperf_options.h             | 2 ++\n app/test-crypto-perf/cperf_options_parsing.c     | 8 ++++----\n app/test-crypto-perf/main.c                      | 3 ++-\n app/test-fib/main.c                              | 8 ++++++++\n app/test-flow-perf/main.c                        | 4 +++-\n app/test-pmd/parameters.c                        | 4 ++--\n app/test-pmd/testpmd.c                           | 2 ++\n app/test-pmd/testpmd.h                           | 1 +\n app/test-regex/main.c                            | 3 ++-\n app/test-sad/main.c                              | 7 +++++++\n 17 files changed, 49 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/app/pdump/main.c b/app/pdump/main.c\nindex 63bbe65cd8..8641017f48 100644\n--- a/app/pdump/main.c\n+++ b/app/pdump/main.c\n@@ -974,6 +974,8 @@ main(int argc, char **argv)\n \tchar mp_flag[] = \"--proc-type=secondary\";\n \tchar *argp[argc + 2];\n \n+\trte_set_application_usage_hook(pdump_usage);\n+\n \t/* catch ctrl-c so we can print on exit */\n \tsignal(SIGINT, signal_handler);\n \ndiff --git a/app/proc-info/main.c b/app/proc-info/main.c\nindex b9587f7ded..e7d86bfa9d 100644\n--- a/app/proc-info/main.c\n+++ b/app/proc-info/main.c\n@@ -1361,6 +1361,8 @@ main(int argc, char **argv)\n \tchar *argp[argc + 4];\n \tuint16_t nb_ports;\n \n+\trte_set_application_usage_hook(proc_info_usage);\n+\n \t/* preparse app arguments */\n \tret = proc_info_preparse_args(argc, argv);\n \tif (ret < 0) {\ndiff --git a/app/test-acl/main.c b/app/test-acl/main.c\nindex 2cb2fe2579..9f95cb0fbf 100644\n--- a/app/test-acl/main.c\n+++ b/app/test-acl/main.c\n@@ -1080,6 +1080,8 @@ main(int argc, char **argv)\n \tint ret;\n \tuint32_t lcore;\n \n+\trte_set_application_usage_hook(print_usage);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\trte_panic(\"Cannot init EAL\\n\");\ndiff --git a/app/test-bbdev/main.c b/app/test-bbdev/main.c\nindex ff65173fdb..5960ec18b2 100644\n--- a/app/test-bbdev/main.c\n+++ b/app/test-bbdev/main.c\n@@ -340,7 +340,8 @@ main(int argc, char **argv)\n {\n \tint ret;\n \n-\t/* Init EAL */\n+\trte_set_application_usage_hook(print_usage);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\treturn 1;\ndiff --git a/app/test-compress-perf/comp_perf_options.h b/app/test-compress-perf/comp_perf_options.h\nindex 0b777521c5..7dd785fba1 100644\n--- a/app/test-compress-perf/comp_perf_options.h\n+++ b/app/test-compress-perf/comp_perf_options.h\n@@ -73,6 +73,8 @@ struct comp_test_data {\n \tuint32_t cyclecount_delay;\n };\n \n+void comp_perf_usage(const char *progname);\n+\n int\n comp_perf_options_parse(struct comp_test_data *test_data, int argc,\n \t\t\tchar **argv);\ndiff --git a/app/test-compress-perf/comp_perf_options_parse.c b/app/test-compress-perf/comp_perf_options_parse.c\nindex 019eddb7bd..39d7fd8c69 100644\n--- a/app/test-compress-perf/comp_perf_options_parse.c\n+++ b/app/test-compress-perf/comp_perf_options_parse.c\n@@ -38,8 +38,8 @@ struct name_id_map {\n \tuint32_t id;\n };\n \n-static void\n-usage(char *progname)\n+void\n+comp_perf_usage(const char *progname)\n {\n \tprintf(\"%s [EAL options] --\\n\"\n \t\t\" --ptest throughput / verify / pmd-cyclecount\\n\"\n@@ -619,7 +619,7 @@ comp_perf_options_parse(struct comp_test_data *test_data, int argc, char **argv)\n \twhile ((opt = getopt_long(argc, argv, \"h\", lgopts, &opt_idx)) != EOF) {\n \t\tswitch (opt) {\n \t\tcase 'h':\n-\t\t\tusage(argv[0]);\n+\t\t\tcomp_perf_usage(argv[0]);\n \t\t\texit(EXIT_SUCCESS);\n \t\t\tbreak;\n \t\t/* long options */\n@@ -631,7 +631,7 @@ comp_perf_options_parse(struct comp_test_data *test_data, int argc, char **argv)\n \t\t\tbreak;\n \n \t\tdefault:\n-\t\t\tusage(argv[0]);\n+\t\t\tcomp_perf_usage(argv[0]);\n \t\t\treturn -EINVAL;\n \t\t}\n \t}\ndiff --git a/app/test-compress-perf/main.c b/app/test-compress-perf/main.c\nindex cc9951a9b1..dcd347528e 100644\n--- a/app/test-compress-perf/main.c\n+++ b/app/test-compress-perf/main.c\n@@ -323,7 +323,8 @@ main(int argc, char **argv)\n \tuint8_t cdev_id;\n \tuint32_t lcore_id;\n \n-\t/* Initialise DPDK EAL */\n+\trte_set_application_usage_hook(comp_perf_usage);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\trte_exit(EXIT_FAILURE, \"Invalid EAL arguments!\\n\");\ndiff --git a/app/test-crypto-perf/cperf_options.h b/app/test-crypto-perf/cperf_options.h\nindex 9664a4b343..5f4a780614 100644\n--- a/app/test-crypto-perf/cperf_options.h\n+++ b/app/test-crypto-perf/cperf_options.h\n@@ -153,6 +153,8 @@ struct cperf_options {\n \tuint8_t imix_distribution_count;\n };\n \n+void cperf_usage(const char *progname);\n+\n void\n cperf_options_default(struct cperf_options *options);\n \ndiff --git a/app/test-crypto-perf/cperf_options_parsing.c b/app/test-crypto-perf/cperf_options_parsing.c\nindex 40b6dfb648..3777bc7509 100644\n--- a/app/test-crypto-perf/cperf_options_parsing.c\n+++ b/app/test-crypto-perf/cperf_options_parsing.c\n@@ -19,8 +19,8 @@ struct name_id_map {\n \tuint32_t id;\n };\n \n-static void\n-usage(char *progname)\n+void\n+cperf_usage(const char *progname)\n {\n \tprintf(\"%s [EAL options] --\\n\"\n \t\t\" --silent: disable options dump\\n\"\n@@ -982,7 +982,7 @@ cperf_options_parse(struct cperf_options *options, int argc, char **argv)\n \twhile ((opt = getopt_long(argc, argv, \"h\", lgopts, &opt_idx)) != EOF) {\n \t\tswitch (opt) {\n \t\tcase 'h':\n-\t\t\tusage(argv[0]);\n+\t\t\tcperf_usage(argv[0]);\n \t\t\texit(EXIT_SUCCESS);\n \t\t\tbreak;\n \t\t/* long options */\n@@ -994,7 +994,7 @@ cperf_options_parse(struct cperf_options *options, int argc, char **argv)\n \t\t\tbreak;\n \n \t\tdefault:\n-\t\t\tusage(argv[0]);\n+\t\t\tcperf_usage(argv[0]);\n \t\t\treturn -EINVAL;\n \t\t}\n \t}\ndiff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c\nindex 49af812d8b..497c4c5226 100644\n--- a/app/test-crypto-perf/main.c\n+++ b/app/test-crypto-perf/main.c\n@@ -519,7 +519,8 @@ main(int argc, char **argv)\n \tint ret;\n \tuint32_t lcore_id;\n \n-\t/* Initialise DPDK EAL */\n+\trte_set_application_usage_hook(cperf_usage);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\trte_exit(EXIT_FAILURE, \"Invalid EAL arguments!\\n\");\ndiff --git a/app/test-fib/main.c b/app/test-fib/main.c\nindex b0a97b0d7e..420fe17c39 100644\n--- a/app/test-fib/main.c\n+++ b/app/test-fib/main.c\n@@ -648,6 +648,12 @@ print_usage(void)\n \t\tconfig.prgname);\n }\n \n+static void\n+usage_hook(const char *prgname __rte_unused)\n+{\n+\tprint_usage();\n+}\n+\n static int\n check_config(void)\n {\n@@ -1209,6 +1215,8 @@ main(int argc, char **argv)\n \tFILE *fl = NULL;\n \tuint8_t depth_lim;\n \n+\trte_set_application_usage_hook(usage_hook);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\trte_panic(\"Cannot init EAL\\n\");\ndiff --git a/app/test-flow-perf/main.c b/app/test-flow-perf/main.c\nindex 0aef767350..949a5e3e11 100644\n--- a/app/test-flow-perf/main.c\n+++ b/app/test-flow-perf/main.c\n@@ -115,7 +115,7 @@ static struct multi_cores_pool mc_pool = {\n };\n \n static void\n-usage(char *progname)\n+usage(const char *progname)\n {\n \tprintf(\"\\nusage: %s\\n\", progname);\n \tprintf(\"\\nControl configurations:\\n\");\n@@ -1849,6 +1849,8 @@ main(int argc, char **argv)\n \tuint16_t port;\n \tstruct rte_flow_error error;\n \n+\trte_set_application_usage_hook(usage);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\trte_exit(EXIT_FAILURE, \"EAL init failed\\n\");\ndiff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c\nindex 55ecea6338..7f41021d4d 100644\n--- a/app/test-pmd/parameters.c\n+++ b/app/test-pmd/parameters.c\n@@ -46,8 +46,8 @@\n \n #include \"testpmd.h\"\n \n-static void\n-usage(char* progname)\n+void\n+usage(const char *progname)\n {\n \tprintf(\"usage: %s [EAL options] -- \"\n #ifdef RTE_LIB_CMDLINE\ndiff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\nindex 1a57324b1b..1a60830037 100644\n--- a/app/test-pmd/testpmd.c\n+++ b/app/test-pmd/testpmd.c\n@@ -3771,6 +3771,8 @@ main(int argc, char** argv)\n \t\trte_exit(EXIT_FAILURE, \"Cannot register log type\");\n \trte_log_set_level(testpmd_logtype, RTE_LOG_DEBUG);\n \n+\trte_set_application_usage_hook(usage);\n+\n \tdiag = rte_eal_init(argc, argv);\n \tif (diag < 0)\n \t\trte_exit(EXIT_FAILURE, \"Cannot init EAL: %s\\n\",\ndiff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h\nindex ce83f31f0d..37348246f8 100644\n--- a/app/test-pmd/testpmd.h\n+++ b/app/test-pmd/testpmd.h\n@@ -763,6 +763,7 @@ inc_tx_burst_stats(struct fwd_stream *fs, uint16_t nb_tx)\n unsigned int parse_item_list(char* str, const char* item_name,\n \t\t\tunsigned int max_items,\n \t\t\tunsigned int *parsed_items, int check_unique_values);\n+void usage(const char *progname);\n void launch_args_parse(int argc, char** argv);\n void cmdline_read_from_file(const char *filename);\n void prompt(void);\ndiff --git a/app/test-regex/main.c b/app/test-regex/main.c\nindex 7bb87bb1b8..ba09b20126 100644\n--- a/app/test-regex/main.c\n+++ b/app/test-regex/main.c\n@@ -616,7 +616,8 @@ main(int argc, char **argv)\n \tuint32_t i;\n \tstruct qps_per_lcore *qps_per_lcore;\n \n-\t/* Init EAL. */\n+\trte_set_application_usage_hook(usage);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\trte_exit(EXIT_FAILURE, \"EAL init failed\\n\");\ndiff --git a/app/test-sad/main.c b/app/test-sad/main.c\nindex 1024757add..14a8263f8c 100644\n--- a/app/test-sad/main.c\n+++ b/app/test-sad/main.c\n@@ -149,7 +149,12 @@ print_usage(void)\n \t\t\"[-p <parallel lookup on all available cores>]\\n\"\n \t\t\"[-c <init sad supporting read/write concurrency>]\\n\",\n \t\tconfig.prgname);\n+}\n \n+static void\n+usage_hook(const char *prgname __rte_unused)\n+{\n+\tprint_usage();\n }\n \n static int\n@@ -620,6 +625,8 @@ main(int argc, char **argv)\n \tstruct rte_ipsec_sad_conf conf = {0};\n \tunsigned int lcore_id;\n \n+\trte_set_application_usage_hook(usage_hook);\n+\n \tret = rte_eal_init(argc, argv);\n \tif (ret < 0)\n \t\trte_panic(\"Cannot init EAL\\n\");\n",
    "prefixes": [
        "09/11"
    ]
}