#include "execute.h"
#define UNIT_NAME_MAX 128
-#define DEFAULT_TIMEOUT_USEC (20*USEC_PER_SEC)
+#define DEFAULT_TIMEOUT_USEC (60*USEC_PER_SEC)
#define DEFAULT_RESTART_USEC (100*USEC_PER_MSEC)
typedef enum KillMode {
UNIT_SNAPSHOT,
UNIT_TIMER,
UNIT_SWAP,
+ UNIT_PATH,
_UNIT_TYPE_MAX,
_UNIT_TYPE_INVALID = -1
};
/* Garbage collect us we nobody wants or requires us anymore */
bool stop_when_unneeded;
+ /* When deserializing, temporarily store the job type for this
+ * unit here, if there was a job scheduled */
+ int deserialized_job; /* This is actually of type JobType */
+
bool in_load_queue:1;
bool in_dbus_queue:1;
bool in_cleanup_queue:1;
#include "automount.h"
#include "snapshot.h"
#include "swap.h"
+#include "path.h"
union Unit {
Meta meta;
Automount automount;
Snapshot snapshot;
Swap swap;
+ Path path;
};
struct UnitVTable {
* ran empty */
void (*cgroup_notify_empty)(Unit *u);
+ /* Called whenever a process of this unit sends us a message */
+ void (*notify_message)(Unit *u, char **tags);
+
/* Called whenever a name thus Unit registered for comes or
* goes away. */
void (*bus_name_owner_change)(Unit *u, const char *name, const char *old_owner, const char *new_owner);
DEFINE_CAST(AUTOMOUNT, Automount);
DEFINE_CAST(SNAPSHOT, Snapshot);
DEFINE_CAST(SWAP, Swap);
+DEFINE_CAST(PATH, Path);
Unit *unit_new(Manager *m);
void unit_free(Unit *u);
bool unit_can_serialize(Unit *u);
int unit_serialize(Unit *u, FILE *f, FDSet *fds);
-void unit_serialize_item_format(Unit *u, FILE *f, const char *key, const char *value, ...) _printf_attr(4,5);
+void unit_serialize_item_format(Unit *u, FILE *f, const char *key, const char *value, ...) _printf_attr_(4,5);
void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *value);
int unit_deserialize(Unit *u, FILE *f, FDSet *fds);
int unit_add_node_link(Unit *u, const char *what, bool wants);
+int unit_coldplug(Unit *u);
+
const char *unit_type_to_string(UnitType i);
UnitType unit_type_from_string(const char *s);