X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Funit.h;h=19fa2f058580d082693dd75f738bd32104be8a17;hb=821d4b6e068b2afaad94d43db22171c34a30400e;hp=1b13ca826651fcc24c696c57af74a880d48fa125;hpb=b2dc4e44c540a30c5ea12a9a570425ceb310c320;p=elogind.git diff --git a/src/core/unit.h b/src/core/unit.h index 1b13ca826..19fa2f058 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -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 @@ -395,6 +396,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 +565,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);