All of lore.kernel.org
 help / color / mirror / Atom feed
* [Accel-config] [PATCH v1 2/5] accel-config: Make command handler return status instead of exiting out
@ 2021-02-22 20:27 ramesh.thomas
  0 siblings, 0 replies; only message in thread
From: ramesh.thomas @ 2021-02-22 20:27 UTC (permalink / raw)
  To: accel-config

[-- Attachment #1: Type: text/plain, Size: 2375 bytes --]

From: Ramesh Thomas <ramesh.thomas(a)intel.com>

Make main_handle_internal_command() return a value indicating status
instead of exiting out directly. This will allow post processing after
handling commands.

Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
---
 accfg/accel-config.c | 9 ++++++---
 util/main.c          | 8 ++++++--
 util/main.h          | 2 +-
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/accfg/accel-config.c b/accfg/accel-config.c
index f963fc7..b096a5c 100644
--- a/accfg/accel-config.c
+++ b/accfg/accel-config.c
@@ -98,9 +98,12 @@ int main(int argc, const char **argv)
 	rc = accfg_new(&ctx);
 	if (rc)
 		return 0;
-	main_handle_internal_command(argc, argv, ctx, commands,
+	rc = main_handle_internal_command(argc, argv, ctx, commands,
 				     ARRAY_SIZE(commands));
 	accfg_unref(ctx);
-	fprintf(stderr, "Unknown command: '%s'\n", argv[0]);
-	return -EINVAL;
+
+	if (!rc)
+		return EXIT_SUCCESS;
+
+	return EXIT_FAILURE;
 }
diff --git a/util/main.c b/util/main.c
index b95d468..2bf7796 100644
--- a/util/main.c
+++ b/util/main.c
@@ -81,7 +81,7 @@ int main_handle_options(const char ***argv, int *argc, const char *usage_msg,
 	return handled;
 }
 
-void main_handle_internal_command(int argc, const char **argv, void *ctx,
+int main_handle_internal_command(int argc, const char **argv, void *ctx,
 		struct cmd_struct *cmds, int num_cmds)
 {
 	const char *cmd = argv[0];
@@ -97,6 +97,10 @@ void main_handle_internal_command(int argc, const char **argv, void *ctx,
 		struct cmd_struct *p = cmds+i;
 		if (strcmp(p->cmd, cmd))
 			continue;
-		exit(p->fn(argc, argv, ctx));
+		return p->fn(argc, argv, ctx);
 	}
+
+	fprintf(stderr, "Unknown command: '%s'\n", argv[0]);
+
+	return -EINVAL;
 }
diff --git a/util/main.h b/util/main.h
index bcfe9f3..cccba7a 100644
--- a/util/main.h
+++ b/util/main.h
@@ -19,7 +19,7 @@
 struct cmd_struct;
 int main_handle_options(const char ***argv, int *argc, const char *usage_msg,
 		struct cmd_struct *cmds, int num_cmds);
-void main_handle_internal_command(int argc, const char **argv, void *ctx,
+int main_handle_internal_command(int argc, const char **argv, void *ctx,
 		struct cmd_struct *cmds, int num_cmds);
 int help_show_man_page(const char *cmd, const char *util_name,
 		const char *viewer);
-- 
2.26.2

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-02-22 20:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-22 20:27 [Accel-config] [PATCH v1 2/5] accel-config: Make command handler return status instead of exiting out ramesh.thomas

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.