summaryrefslogtreecommitdiff
path: root/tools/lib/subcmd/run-command.h
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2024-04-05 10:09:30 +0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2024-04-08 23:43:20 +0300
commit705c09bb3cdffb141986598ad4ff9c9b0a66c3bd (patch)
tree3ef837012f1f6f1cb2b4497b3e454a06a08a50b7 /tools/lib/subcmd/run-command.h
parent8c004c7a608a278548e4a7f25df6bae0b0a04370 (diff)
downloadlinux-705c09bb3cdffb141986598ad4ff9c9b0a66c3bd.tar.xz
tools subcmd: Add check_if_command_finished()
Add non-blocking function to check if a 'struct child_process' has completed. If the process has completed the exit code is stored in the 'struct child_process' so that finish_command() returns it. Signed-off-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20240405070931.1231245-1-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/lib/subcmd/run-command.h')
-rw-r--r--tools/lib/subcmd/run-command.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/lib/subcmd/run-command.h b/tools/lib/subcmd/run-command.h
index d794138a797f..b2d39de6e690 100644
--- a/tools/lib/subcmd/run-command.h
+++ b/tools/lib/subcmd/run-command.h
@@ -41,17 +41,20 @@ struct child_process {
int err;
const char *dir;
const char *const *env;
+ int finish_result;
unsigned no_stdin:1;
unsigned no_stdout:1;
unsigned no_stderr:1;
unsigned exec_cmd:1; /* if this is to be external sub-command */
unsigned stdout_to_stderr:1;
+ unsigned finished:1;
void (*preexec_cb)(void);
/* If set, call function in child rather than doing an exec. */
int (*no_exec_cmd)(struct child_process *process);
};
int start_command(struct child_process *);
+int check_if_command_finished(struct child_process *);
int finish_command(struct child_process *);
int run_command(struct child_process *);