MANAGER_POWEROFF,
MANAGER_HALT,
MANAGER_KEXEC,
+ MANAGER_SWITCH_ROOT,
_MANAGER_EXIT_CODE_MAX,
_MANAGER_EXIT_CODE_INVALID = -1
} ManagerExitCode;
* type we maintain a per type linked list */
LIST_HEAD(Unit, units_by_type[_UNIT_TYPE_MAX]);
+ /* To optimize iteration of units that have requires_mounts_for set */
+ LIST_HEAD(Unit, has_requires_mounts_for);
+
/* Units that need to be loaded */
LIST_HEAD(Unit, load_queue); /* this is actually more a stack than a queue, but uh. */
/* Units to check when doing GC */
LIST_HEAD(Unit, gc_queue);
- /* Jobs to be added */
- Hashmap *transaction_jobs; /* Unit object => Job object list 1:1 */
- JobDependency *transaction_anchor;
-
Hashmap *watch_pids; /* pid => Unit object n:1 */
char *notify_socket;
#ifdef HAVE_SYSV_COMPAT
bool sysv_console;
#endif
- bool mount_auto;
- bool swap_auto;
ExecOutput default_std_output, default_std_error;
unsigned n_installed_jobs;
unsigned n_failed_jobs;
+
+ /* Type=idle pipes */
+ int idle_pipe[2];
+
+ char *switch_root;
+ char *switch_root_init;
};
int manager_new(ManagerRunningAs running_as, Manager **m);