chiark / gitweb /
config_parse_set_status: put signals in the correct set
[elogind.git] / src / core / unit.h
index 1b13ca826651fcc24c696c57af74a880d48fa125..53b8a7f66b57cfbd97175cab64a672148e2ab5f7 100644 (file)
@@ -179,8 +179,9 @@ struct Unit {
         /* Error code when we didn't manage to load the unit (negative) */
         int load_error;
 
-        /* Cached unit file state */
+        /* Cached unit file state and preset */
         UnitFileState unit_file_state;
+        int unit_file_preset;
 
         /* Counterparts in the cgroup filesystem */
         char *cgroup_path;
@@ -283,7 +284,7 @@ struct UnitVTable {
          * that */
         size_t exec_runtime_offset;
 
-        /* The name of the configuration file section with the private settings of this unit*/
+        /* The name of the configuration file section with the private settings of this unit */
         const char *private_section;
 
         /* Config file sections this unit type understands, separated
@@ -344,6 +345,10 @@ struct UnitVTable {
          * way */
         bool (*check_gc)(Unit *u);
 
+        /* When the unit is not running and no job for it queued we
+         * shall release its runtime resources */
+        void (*release_resources)(Unit *u);
+
         /* Return true when this unit is suitable for snapshotting */
         bool (*check_snapshot)(Unit *u);
 
@@ -358,7 +363,7 @@ struct UnitVTable {
         void (*notify_cgroup_empty)(Unit *u);
 
         /* Called whenever a process of this unit sends us a message */
-        void (*notify_message)(Unit *u, pid_t pid, char **tags);
+        void (*notify_message)(Unit *u, pid_t pid, char **tags, FDSet *fds);
 
         /* Called whenever a name this Unit registered for comes or
          * goes away. */
@@ -395,6 +400,10 @@ struct UnitVTable {
         /* Type specific cleanups. */
         void (*shutdown)(Manager *m);
 
+        /* If this function is set and return false all jobs for units
+         * of this type will immediately fail. */
+        bool (*supported)(Manager *m);
+
         /* The interface name */
         const char *bus_interface;
 
@@ -560,6 +569,7 @@ void unit_start_on_failure(Unit *u);
 void unit_trigger_notify(Unit *u);
 
 UnitFileState unit_get_unit_file_state(Unit *u);
+int unit_get_unit_file_preset(Unit *u);
 
 Unit* unit_ref_set(UnitRef *ref, Unit *u);
 void unit_ref_unset(UnitRef *ref);