X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Funit.h;h=e3c0c0f060d3960545c32e52fbb63baae45e6351;hb=2528a7a62c4ad9b2f4773b608d208239299da50c;hp=82ef95245185121404bd2d0b49157aeccb990441;hpb=cd6d0a456bc9c45fa79316fc5896e4a3ae75a30b;p=elogind.git diff --git a/src/unit.h b/src/unit.h index 82ef95245..e3c0c0f06 100644 --- a/src/unit.h +++ b/src/unit.h @@ -1,4 +1,4 @@ -/*-*- Mode: C; c-basic-offset: 8 -*-*/ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ #ifndef foounithfoo #define foounithfoo @@ -180,6 +180,13 @@ struct Meta { /* Used during GC sweeps */ unsigned gc_marker; + /* 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 */ + + /* Error code when we didn't manage to load the unit (negative) */ + int load_error; + /* If we go down, pull down everything that depends on us, too */ bool recursive_stop; @@ -198,9 +205,8 @@ struct Meta { /* Don't allow the user to stop this unit manually, allow stopping only indirectly via dependency. */ bool refuse_manual_stop; - /* 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 */ + /* Allow isolation requests */ + bool allow_isolate; bool in_load_queue:1; bool in_dbus_queue:1; @@ -331,6 +337,14 @@ struct UnitVTable { /* Type specific cleanups. */ void (*shutdown)(Manager *m); + /* When sending out PropertiesChanged signal, which properties + * shall be invalidated? This is a NUL seperated list of + * strings, to minimize relocations a little. */ + const char *bus_invalidating_properties; + + /* The interface name */ + const char *bus_interface; + /* Can units of this type have multiple names? */ bool no_alias:1; @@ -348,7 +362,7 @@ struct UnitVTable { /* Exclude from automatic gc */ bool no_gc:1; - /* Exclude from isolation requests */ + /* Exclude from stopping on isolation requests */ bool no_isolate:1; /* Show status updates on the console */ @@ -420,7 +434,6 @@ Unit *unit_follow_merge(Unit *u); int unit_load_fragment_and_dropin(Unit *u); int unit_load_fragment_and_dropin_optional(Unit *u); -int unit_load_nop(Unit *u); int unit_load(Unit *unit); const char *unit_description(Unit *u); @@ -435,6 +448,7 @@ void unit_dump(Unit *u, FILE *f, const char *prefix); bool unit_can_reload(Unit *u); bool unit_can_start(Unit *u); +bool unit_can_isolate(Unit *u); int unit_start(Unit *u); int unit_stop(Unit *u); @@ -485,9 +499,6 @@ void unit_reset_maintenance(Unit *u); Unit *unit_following(Unit *u); -const char *unit_type_to_string(UnitType i); -UnitType unit_type_from_string(const char *s); - const char *unit_load_state_to_string(UnitLoadState i); UnitLoadState unit_load_state_from_string(const char *s);