chiark / gitweb /
git: ignore libtool m4 files
[elogind.git] / src / unit.h
index fd0defe2d1666f49165a3c65d6569ed42764cb11..1f8874f4cc41058bdce74c62a22b0b78020b830d 100644 (file)
@@ -40,7 +40,7 @@ typedef enum UnitDependency UnitDependency;
 #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 {
@@ -62,6 +62,7 @@ enum UnitType {
         UNIT_SNAPSHOT,
         UNIT_TIMER,
         UNIT_SWAP,
+        UNIT_PATH,
         _UNIT_TYPE_MAX,
         _UNIT_TYPE_INVALID = -1
 };
@@ -184,6 +185,10 @@ struct Meta {
         /* 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;
@@ -201,6 +206,7 @@ struct Meta {
 #include "automount.h"
 #include "snapshot.h"
 #include "swap.h"
+#include "path.h"
 
 union Unit {
         Meta meta;
@@ -213,6 +219,7 @@ union Unit {
         Automount automount;
         Snapshot snapshot;
         Swap swap;
+        Path path;
 };
 
 struct UnitVTable {
@@ -278,6 +285,9 @@ 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);
@@ -344,6 +354,7 @@ DEFINE_CAST(MOUNT, Mount);
 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);
@@ -427,12 +438,14 @@ char **unit_full_printf_strv(Unit *u, char **l);
 
 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);