X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=lib%2Fprocess%2Fprocess.h;h=f858b0edc11ce344f36e6644dfba157dd634237f;hp=f75f1976c718df3970930c88be9bf1de2bde299f;hb=d94bb8c48f42678a5f1cf0041429b82aa1938540;hpb=2ad0e66f61e8f8488cff208f8bb7f5127ec9f813 diff --git a/lib/process/process.h b/lib/process/process.h index f75f197..f858b0e 100644 --- a/lib/process/process.h +++ b/lib/process/process.h @@ -23,6 +23,7 @@ struct process; struct procset; +struct process_info; typedef void (*process_exit_cb)(struct process *); @@ -34,6 +35,8 @@ struct process { bool add_stderr; process_exit_cb exit_cb; void *data; + waiter_cb stdout_cb; + void *stdout_data; /* runtime data */ pid_t pid; @@ -42,6 +45,7 @@ struct process { /* post-execution information */ int exit_status; + bool cancelled; }; /* Process management system init. process_init must be called before @@ -74,9 +78,14 @@ int process_run_simple(void *ctx, const char *name, ...) int process_run_async(struct process *process); void process_stop_async(struct process *process); +void process_stop_async_all(void); /* helper function to determine if a process exited cleanly, with a non-zero * exit status */ bool process_exit_ok(struct process *process); +/* Functions to assist callers using a custom stdout callback */ +struct process *procinfo_get_process(struct process_info *procinfo); +int process_stdout_custom(struct process_info *procinfo, char **line); + #endif /* PROCESS_H */