chiark / gitweb /
Make tables for DEFINE_STRING_TABLE_LOOKUP consistent
[elogind.git] / src / core / execute.h
index efda23f9d8a7f7d61c01252350363e53e31c8f32..9fcea121fa8211a036ff07d1cb7ee852ab776999 100644 (file)
@@ -38,6 +38,7 @@ typedef struct ExecRuntime ExecRuntime;
 #include "util.h"
 #include "set.h"
 #include "fdset.h"
+#include "missing.h"
 
 typedef enum ExecInput {
         EXEC_INPUT_NULL,
@@ -93,7 +94,7 @@ struct ExecContext {
         char **environment;
         char **environment_files;
 
-        struct rlimit *rlimit[RLIMIT_NLIMITS];
+        struct rlimit *rlimit[_RLIMIT_MAX];
         char *working_directory, *root_directory;
 
         mode_t umask;
@@ -177,10 +178,14 @@ struct ExecContext {
         Set *address_families;
         bool address_families_whitelist:1;
 
+        char **runtime_directory;
+        mode_t runtime_directory_mode;
+
         bool oom_score_adjust_set:1;
         bool nice_set:1;
         bool ioprio_set:1;
         bool cpu_sched_set:1;
+        bool no_new_privileges_set:1;
 };
 
 #include "cgroup.h"
@@ -196,6 +201,7 @@ int exec_spawn(ExecCommand *command,
                bool confirm_spawn,
                CGroupControllerMask cgroup_mask,
                const char *cgroup_path,
+               const char *runtime_prefix,
                const char *unit_id,
                usec_t watchdog_usec,
                int pipe_fd[2],
@@ -219,6 +225,8 @@ void exec_context_init(ExecContext *c);
 void exec_context_done(ExecContext *c);
 void exec_context_dump(ExecContext *c, FILE* f, const char *prefix);
 
+int exec_context_destroy_runtime_directory(ExecContext *c, const char *runtime_root);
+
 int exec_context_load_environment(const ExecContext *c, char ***l);
 
 bool exec_context_may_touch_console(ExecContext *c);