+ /* Can units of this type have multiple names? */
+ bool no_alias:1;
+
+ /* If true units of this types can never have "Requires"
+ * dependencies, because state changes can only be observed,
+ * not triggered */
+ bool no_requires:1;
+
+ /* Instances make no sense for this type */
+ bool no_instances:1;
+
+ /* Execlude this type from snapshots */
+ bool no_snapshots:1;
+
+ /* This should reset all type-specific variables. This should
+ * not allocate memory, and is either called with 0
+ * initialized data, or with data left from done() */
+ void (*init)(Unit *u);
+
+ /* Actually load data from disk. This may fail, and should set
+ * load_state to UNIT_LOADED, UNIT_MERGED or leave it at
+ * UNIT_STUB if no configuration could be found. */
+ int (*load)(Unit *u);
+
+ /* This should free all type-specific variables. It should be
+ * idempotent. There's no need to reset variables that deal
+ * with dynamic memory/resources. */