X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=lib%2Fprocess%2Fprocess.h;h=65fdba8d537beeb9e43efe9d3f3b08429d143530;hb=0ba871a497f156dd474a333889cd92eaab9b08dc;hp=9e2a2d1b013c31c6eeb8af153ddbb54071bbe04d;hpb=e52a8c61a640ab4fce0b4caaa796ae3e1c4ff8a3;p=petitboot diff --git a/lib/process/process.h b/lib/process/process.h index 9e2a2d1..65fdba8 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 *); @@ -31,8 +32,11 @@ struct process { const char *path; const char **argv; bool keep_stdout; + bool add_stderr; process_exit_cb exit_cb; void *data; + waiter_cb stdout_cb; + void *stdout_data; /* runtime data */ pid_t pid; @@ -47,7 +51,7 @@ struct process { * process_create. The pointer returned can be talloc_free()-ed, or can be * automatically freed through destruction of the ctx talloc tree. */ -struct procset *process_init(void *ctx, struct waitset *set); +struct procset *process_init(void *ctx, struct waitset *set, bool dry_run); struct process *process_create(void *ctx); @@ -73,4 +77,13 @@ int process_run_simple(void *ctx, const char *name, ...) int process_run_async(struct process *process); void process_stop_async(struct process *process); + +/* 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 */