X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fexecute.h;h=15574dc97e1766ac6c270c87f4fd51978c60ba95;hb=44a6b1b68029833893f6e9cee35aa27a974038f6;hp=2bcd2e1e6cf7e584111d73f22826743dc719904e;hpb=f274ece0f76b5709408821e317e87aef76123db6;p=elogind.git diff --git a/src/core/execute.h b/src/core/execute.h index 2bcd2e1e6..15574dc97 100644 --- a/src/core/execute.h +++ b/src/core/execute.h @@ -36,6 +36,8 @@ typedef struct ExecContext ExecContext; struct CGroupBonding; struct CGroupAttribute; +typedef struct Unit Unit; + #include "list.h" #include "util.h" @@ -141,6 +143,8 @@ struct ExecContext { bool non_blocking; bool private_tmp; bool private_network; + char *tmp_dir; + char *var_tmp_dir; bool no_new_privileges; @@ -164,7 +168,7 @@ struct ExecContext { int exec_spawn(ExecCommand *command, char **argv, - const ExecContext *context, + ExecContext *context, int fds[], unsigned n_fds, char **environment, bool apply_permissions, @@ -192,18 +196,22 @@ void exec_command_append_list(ExecCommand **l, ExecCommand *e); int exec_command_set(ExecCommand *c, const char *path, ...); void exec_context_init(ExecContext *c); -void exec_context_done(ExecContext *c); +void exec_context_done(ExecContext *c, bool reloading_or_reexecuting); +void exec_context_tmp_dirs_done(ExecContext *c); void exec_context_dump(ExecContext *c, FILE* f, const char *prefix); void exec_context_tty_reset(const ExecContext *context); int exec_context_load_environment(const ExecContext *c, char ***l); +bool exec_context_may_touch_console(ExecContext *c); +void exec_context_serialize(const ExecContext *c, Unit *u, FILE *f); + void exec_status_start(ExecStatus *s, pid_t pid); void exec_status_exit(ExecStatus *s, ExecContext *context, pid_t pid, int code, int status); void exec_status_dump(ExecStatus *s, FILE *f, const char *prefix); -const char* exec_output_to_string(ExecOutput i); -ExecOutput exec_output_from_string(const char *s); +const char* exec_output_to_string(ExecOutput i) _const_; +ExecOutput exec_output_from_string(const char *s) _pure_; -const char* exec_input_to_string(ExecInput i); -ExecInput exec_input_from_string(const char *s); +const char* exec_input_to_string(ExecInput i) _const_; +ExecInput exec_input_from_string(const char *s) _pure_;