int fd;
WatchType type;
union {
- union Unit *unit;
+ struct Unit *unit;
struct Job *job;
DBusWatch *bus_watch;
DBusTimeout *bus_timeout;
struct Manager {
/* Note that the set of units we know of is allowed to be
- * incosistent. However the subset of it that is loaded may
+ * inconsistent. However the subset of it that is loaded may
* not, and the list of jobs may neither. */
/* Active jobs and units */
/* To make it easy to iterate through the units of a specific
* type we maintain a per type linked list */
- LIST_HEAD(Meta, units_per_type[_UNIT_TYPE_MAX]);
+ LIST_HEAD(Unit, units_by_type[_UNIT_TYPE_MAX]);
/* Units that need to be loaded */
- LIST_HEAD(Meta, load_queue); /* this is actually more a stack than a queue, but uh. */
+ LIST_HEAD(Unit, load_queue); /* this is actually more a stack than a queue, but uh. */
/* Jobs that need to be run */
LIST_HEAD(Job, run_queue); /* more a stack than a queue, too */
* D-Bus. When something about a job changes it is added here
* if it is not in there yet. This allows easy coalescing of
* D-Bus change signals. */
- LIST_HEAD(Meta, dbus_unit_queue);
+ LIST_HEAD(Unit, dbus_unit_queue);
LIST_HEAD(Job, dbus_job_queue);
/* Units to remove */
- LIST_HEAD(Meta, cleanup_queue);
+ LIST_HEAD(Unit, cleanup_queue);
/* Units to check when doing GC */
- LIST_HEAD(Meta, gc_queue);
+ LIST_HEAD(Unit, gc_queue);
/* Jobs to be added */
Hashmap *transaction_jobs; /* Unit object => Job object list 1:1 */
Hashmap *watch_bus; /* D-Bus names => Unit object n:1 */
int32_t name_data_slot;
+ int32_t conn_data_slot;
int32_t subscribed_data_slot;
uint32_t current_job_id;
+ uint32_t default_unit_job_id;
/* Data specific to the Automount subsystem */
int dev_autofs_fd;
int gc_marker;
unsigned n_in_gc_queue;
- /* Make sure the user cannot accidentaly unmount our cgroup
+ /* Make sure the user cannot accidentally unmount our cgroup
* file system */
int pin_cgroupfs_fd;
bool dispatching_run_queue:1;
bool dispatching_dbus_queue:1;
+ bool taint_usr:1;
+
bool show_status;
bool confirm_spawn;
#ifdef HAVE_SYSV_COMPAT
ExecOutput default_std_output, default_std_error;
- int n_deserializing;
+ /* non-zero if we are reloading or reexecuting, */
+ int n_reloading;
unsigned n_installed_jobs;
unsigned n_failed_jobs;
void manager_run_generators(Manager *m);
void manager_undo_generators(Manager *m);
+void manager_recheck_journal(Manager *m);
+
+void manager_set_show_status(Manager *m, bool b);
+bool manager_get_show_status(Manager *m);
+
const char *manager_running_as_to_string(ManagerRunningAs i);
ManagerRunningAs manager_running_as_from_string(const char *s);