X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fexecute.h;h=a2d9072357702e2eb25872e6e185947d9aef442f;hp=e77cdcf0bb290a42445614f9e85d9776dbb7093a;hb=114a50f898a89bd7784c215ac5df95ec8c45a905;hpb=91b22f21f3824c1766d34f622c5bbb70cbe881a8 diff --git a/src/execute.h b/src/execute.h index e77cdcf0b..a2d907235 100644 --- a/src/execute.h +++ b/src/execute.h @@ -39,16 +39,10 @@ struct CGroupBonding; #include "list.h" #include "util.h" -/* Abstract namespace! */ -#define LOGGER_SOCKET "/dev/.run/systemd/logger" - -/* This doesn't really belong here, but I couldn't find a better place to put this. */ -#define SIGNALS_CRASH_HANDLER SIGSEGV,SIGILL,SIGFPE,SIGBUS,SIGQUIT,SIGABRT -#define SIGNALS_IGNORE SIGKILL,SIGPIPE +#define LOGGER_SOCKET "/run/systemd/logger" typedef enum KillMode { KILL_CONTROL_GROUP = 0, - KILL_PROCESS_GROUP, KILL_PROCESS, KILL_NONE, _KILL_MODE_MAX, @@ -129,6 +123,10 @@ struct ExecContext { char *tty_path; + bool tty_reset; + bool tty_vhangup; + bool tty_vt_disallocate; + /* Since resolving these names might might involve socket * connections and we don't want to deadlock ourselves these * names are resolved on execution only and in the child @@ -162,6 +160,8 @@ struct ExecContext { bool non_blocking; bool private_tmp; + bool control_group_modify; + /* This is not exposed to the user but available * internally. We need it to make sure that whenever we spawn * /bin/mount it is run in the same process group as us so @@ -204,18 +204,19 @@ int exec_command_set(ExecCommand *c, const char *path, ...); void exec_context_init(ExecContext *c); void exec_context_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); void exec_status_start(ExecStatus *s, pid_t pid); -void exec_status_exit(ExecStatus *s, pid_t pid, int code, int status, const char *utmp_id); +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); -int exec_output_from_string(const char *s); +ExecOutput exec_output_from_string(const char *s); const char* exec_input_to_string(ExecInput i); -int exec_input_from_string(const char *s); +ExecInput exec_input_from_string(const char *s); const char *kill_mode_to_string(KillMode k); KillMode kill_mode_from_string(const char *s);