From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 689B7425D1; Mon, 18 Sep 2023 15:04:21 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A8DEC40A7A; Mon, 18 Sep 2023 15:04:07 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id D6B4E402E9 for ; Mon, 18 Sep 2023 15:04:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695042245; x=1726578245; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=dY2Y/5GGi/o0inJq+GzWxXcjoCKkpNfa/aSNHlTetdU=; b=QuCIhb36+DAfHG3QLwOcD1xSV1wnO3lrM3AtmE+WMuysginHWJztuI7B TI6mr+uymh4o5tT3a5mSJPG7K++5AHDACZ7Fr/wrBX9Q5sb/Xn8awERfk pukwa7mLIRxZi1F256CuRyTEIJh8Flx+Ieq2Eu0aDWjmEVjKyPZh4Ijp2 /stZtE8Z3lkAipmWzjYWf2Y82aJcqK2riY4ZOc86ahIWofUZfVZMFvyqc 3TxPo8q08kg22n7k6hvFoHIL5GOLhAOXkPV+udzANxf27hncrgUQsCHpp qy3x1aYWl74w2CO1SauiZ0MXzBlhuOkcfXuKQfumLV2fi4zI5j44PXx0B Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="369969382" X-IronPort-AV: E=Sophos;i="6.02,156,1688454000"; d="scan'208";a="369969382" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Sep 2023 06:04:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="739130635" X-IronPort-AV: E=Sophos;i="6.02,156,1688454000"; d="scan'208";a="739130635" Received: from silpixa00401385.ir.intel.com ([10.237.214.14]) by orsmga007.jf.intel.com with ESMTP; 18 Sep 2023 06:04:03 -0700 From: Bruce Richardson To: dev@dpdk.org Cc: Olivier Matz , Bruce Richardson Subject: [RFC PATCH v2 2/5] examples/simple_mp: auto-generate cmdline boilerplate Date: Mon, 18 Sep 2023 14:03:49 +0100 Message-Id: <20230918130352.379478-3-bruce.richardson@intel.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230918130352.379478-1-bruce.richardson@intel.com> References: <20230802170052.955323-1-bruce.richardson@intel.com> <20230918130352.379478-1-bruce.richardson@intel.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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Use the dpdk-cmdline-gen script to autogenerate all the boilerplate structs and defines for the commandline part of the app. Signed-off-by: Bruce Richardson --- examples/multi_process/simple_mp/Makefile | 10 +- examples/multi_process/simple_mp/meson.build | 9 ++ .../multi_process/simple_mp/mp_commands.c | 106 ++---------------- .../multi_process/simple_mp/mp_commands.h | 14 --- .../multi_process/simple_mp/mp_commands.list | 3 + 5 files changed, 29 insertions(+), 113 deletions(-) delete mode 100644 examples/multi_process/simple_mp/mp_commands.h create mode 100644 examples/multi_process/simple_mp/mp_commands.list diff --git a/examples/multi_process/simple_mp/Makefile b/examples/multi_process/simple_mp/Makefile index 1d0a260e64..b460f53ece 100644 --- a/examples/multi_process/simple_mp/Makefile +++ b/examples/multi_process/simple_mp/Makefile @@ -6,6 +6,7 @@ APP = simple_mp # all source are stored in SRCS-y SRCS-y := main.c mp_commands.c +SRC-DEPS := build/mp_commands.h PKGCONF ?= pkg-config @@ -22,10 +23,13 @@ static: build/$(APP)-static ln -sf $(APP)-static build/$(APP) PC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) -CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) +CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) -I build/ LDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) LDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) +build/mp_commands.h: mp_commands.list Makefile + dpdk-cmdline-gen.py -o $@ --context-name=simple_mp_ctx $< + ifeq ($(MAKECMDGOALS),static) # check for broken pkg-config ifeq ($(shell echo $(LDFLAGS_STATIC) | grep 'whole-archive.*l:lib.*no-whole-archive'),) @@ -36,10 +40,10 @@ endif CFLAGS += -DALLOW_EXPERIMENTAL_API -build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build +build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build $(SRC-DEPS) $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) -build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build +build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build $(SRC-DEPS) $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC) build: diff --git a/examples/multi_process/simple_mp/meson.build b/examples/multi_process/simple_mp/meson.build index 359af4384d..e99b7a3f6f 100644 --- a/examples/multi_process/simple_mp/meson.build +++ b/examples/multi_process/simple_mp/meson.build @@ -7,7 +7,16 @@ # DPDK instance, use 'make' allow_experimental_apis = true + +cmd_h = custom_target('commands_hdr', + output: 'mp_commands.h', + input: files('mp_commands.list'), + capture: true, + command: [cmdline_gen_cmd, '--context-name=simple_mp_ctx', '@INPUT@'] +) + sources = files( 'mp_commands.c', 'main.c', ) +sources += cmd_h diff --git a/examples/multi_process/simple_mp/mp_commands.c b/examples/multi_process/simple_mp/mp_commands.c index a5f91b00be..df9fa94208 100644 --- a/examples/multi_process/simple_mp/mp_commands.c +++ b/examples/multi_process/simple_mp/mp_commands.c @@ -1,44 +1,18 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2010-2014 Intel Corporation + * Copyright(c) 2010-2023 Intel Corporation */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include #include -#include #include #include -#include -#include -#include -#include -#include #include "mp_commands.h" -/**********************************************************/ - -struct cmd_send_result { - cmdline_fixed_string_t action; - cmdline_fixed_string_t message; -}; +extern struct rte_ring *send_ring, *recv_ring; +extern struct rte_mempool *message_pool; +extern volatile int quit; -static void cmd_send_parsed(void *parsed_result, +void +cmd_send_parsed(void *parsed_result, __rte_unused struct cmdline *cl, __rte_unused void *data) { @@ -54,29 +28,8 @@ static void cmd_send_parsed(void *parsed_result, } } -cmdline_parse_token_string_t cmd_send_action = - TOKEN_STRING_INITIALIZER(struct cmd_send_result, action, "send"); -cmdline_parse_token_string_t cmd_send_message = - TOKEN_STRING_INITIALIZER(struct cmd_send_result, message, NULL); - -cmdline_parse_inst_t cmd_send = { - .f = cmd_send_parsed, /* function to call */ - .data = NULL, /* 2nd arg of func */ - .help_str = "send a string to another process", - .tokens = { /* token list, NULL terminated */ - (void *)&cmd_send_action, - (void *)&cmd_send_message, - NULL, - }, -}; - -/**********************************************************/ - -struct cmd_quit_result { - cmdline_fixed_string_t quit; -}; - -static void cmd_quit_parsed(__rte_unused void *parsed_result, +void +cmd_quit_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unused void *data) { @@ -84,26 +37,8 @@ static void cmd_quit_parsed(__rte_unused void *parsed_result, cmdline_quit(cl); } -cmdline_parse_token_string_t cmd_quit_quit = - TOKEN_STRING_INITIALIZER(struct cmd_quit_result, quit, "quit"); - -cmdline_parse_inst_t cmd_quit = { - .f = cmd_quit_parsed, /* function to call */ - .data = NULL, /* 2nd arg of func */ - .help_str = "close the application", - .tokens = { /* token list, NULL terminated */ - (void *)&cmd_quit_quit, - NULL, - }, -}; - -/**********************************************************/ - -struct cmd_help_result { - cmdline_fixed_string_t help; -}; - -static void cmd_help_parsed(__rte_unused void *parsed_result, +void +cmd_help_parsed(__rte_unused void *parsed_result, struct cmdline *cl, __rte_unused void *data) { @@ -112,24 +47,3 @@ static void cmd_help_parsed(__rte_unused void *parsed_result, "send commands to the simple app. Commands supported are:\n\n" "- send [string]\n" "- help\n" "- quit\n\n"); } - -cmdline_parse_token_string_t cmd_help_help = - TOKEN_STRING_INITIALIZER(struct cmd_help_result, help, "help"); - -cmdline_parse_inst_t cmd_help = { - .f = cmd_help_parsed, /* function to call */ - .data = NULL, /* 2nd arg of func */ - .help_str = "show help", - .tokens = { /* token list, NULL terminated */ - (void *)&cmd_help_help, - NULL, - }, -}; - -/****** CONTEXT (list of instruction) */ -cmdline_parse_ctx_t simple_mp_ctx[] = { - (cmdline_parse_inst_t *)&cmd_send, - (cmdline_parse_inst_t *)&cmd_quit, - (cmdline_parse_inst_t *)&cmd_help, - NULL, -}; diff --git a/examples/multi_process/simple_mp/mp_commands.h b/examples/multi_process/simple_mp/mp_commands.h deleted file mode 100644 index 5d67413e7c..0000000000 --- a/examples/multi_process/simple_mp/mp_commands.h +++ /dev/null @@ -1,14 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2010-2014 Intel Corporation - */ - -#ifndef _SIMPLE_MP_COMMANDS_H_ -#define _SIMPLE_MP_COMMANDS_H_ - -extern struct rte_ring *send_ring; -extern struct rte_mempool *message_pool; -extern volatile int quit; - -extern cmdline_parse_ctx_t simple_mp_ctx[]; - -#endif /* _SIMPLE_MP_COMMANDS_H_ */ diff --git a/examples/multi_process/simple_mp/mp_commands.list b/examples/multi_process/simple_mp/mp_commands.list new file mode 100644 index 0000000000..da452249a6 --- /dev/null +++ b/examples/multi_process/simple_mp/mp_commands.list @@ -0,0 +1,3 @@ +send message +help +quit \ No newline at end of file -- 2.39.2