X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=execute.h;fp=execute.h;h=cafaf6b631c213226a76b99d2632c084424ebce3;hp=655f1e4f7b4aec9a66446a5e90c089d863ac7e25;hb=9d58f1dbdb77be332731fb490d0d7f91a5718da8;hpb=51f7e59683d103590e70d17a177f1710b0b0326c diff --git a/execute.h b/execute.h index 655f1e4f7..cafaf6b63 100644 --- a/execute.h +++ b/execute.h @@ -63,9 +63,9 @@ typedef enum ExecOutput { } ExecOutput; struct ExecStatus { - pid_t pid; usec_t start_timestamp; usec_t exit_timestamp; + pid_t pid; int code; /* as in siginfo_t::si_code */ int status; /* as in sigingo_t::si_status */ }; @@ -79,46 +79,27 @@ struct ExecCommand { struct ExecContext { char **environment; - mode_t umask; struct rlimit *rlimit[RLIMIT_NLIMITS]; char *working_directory, *root_directory; + + mode_t umask; int oom_adjust; int nice; int ioprio; int cpu_sched_policy; int cpu_sched_priority; + cpu_set_t cpu_affinity; unsigned long timer_slack_ns; - bool oom_adjust_set:1; - bool nice_set:1; - bool ioprio_set:1; - bool cpu_sched_set:1; - bool cpu_affinity_set:1; - bool timer_slack_ns_set:1; - - /* 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 - * that the autofs logic detects that it belongs to us and we - * don't enter a trigger loop. */ - bool no_setsid:1; - - bool cpu_sched_reset_on_fork; - bool non_blocking; - ExecInput std_input; ExecOutput std_output; ExecOutput std_error; - char *tty_path; - int syslog_priority; char *syslog_identifier; - cap_t capabilities; - int secure_bits; - uint64_t capability_bounding_set_drop; + char *tty_path; /* Since resolving these names might might involve socket * connections and we don't want to deadlock ourselves these @@ -127,6 +108,28 @@ struct ExecContext { char *user; char *group; char **supplementary_groups; + + uint64_t capability_bounding_set_drop; + + cap_t capabilities; + int secure_bits; + + bool cpu_sched_reset_on_fork; + bool non_blocking; + + bool oom_adjust_set:1; + bool nice_set:1; + bool ioprio_set:1; + bool cpu_sched_set:1; + bool cpu_affinity_set:1; + bool timer_slack_ns_set:1; + + /* 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 + * that the autofs logic detects that it belongs to us and we + * don't enter a trigger loop. */ + bool no_setsid:1; }; typedef enum ExitStatus {