X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Funit.h;h=5b4dda4cb0fcf19eee449abe4c624ae6a881f9a6;hb=bfba3256a02a0871579c4ee48d787dfe4585fd8d;hp=e8e6b09866b64396c4665025689a51ed1ebc0d05;hpb=c69182961b00707d977957cf81d5c41cfbeab429;p=elogind.git diff --git a/src/core/unit.h b/src/core/unit.h index e8e6b0986..5b4dda4cb 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -1,7 +1,6 @@ /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ -#ifndef foounithfoo -#define foounithfoo +#pragma once /*** This file is part of systemd. @@ -27,8 +26,6 @@ typedef struct Unit Unit; typedef struct UnitVTable UnitVTable; -typedef enum UnitType UnitType; -typedef enum UnitLoadState UnitLoadState; typedef enum UnitActiveState UnitActiveState; typedef enum UnitDependency UnitDependency; typedef struct UnitRef UnitRef; @@ -41,31 +38,7 @@ typedef struct UnitStatusMessageFormats UnitStatusMessageFormats; #include "execute.h" #include "condition.h" #include "install.h" - -enum UnitType { - UNIT_SERVICE = 0, - UNIT_SOCKET, - UNIT_TARGET, - UNIT_DEVICE, - UNIT_MOUNT, - UNIT_AUTOMOUNT, - UNIT_SNAPSHOT, - UNIT_TIMER, - UNIT_SWAP, - UNIT_PATH, - _UNIT_TYPE_MAX, - _UNIT_TYPE_INVALID = -1 -}; - -enum UnitLoadState { - UNIT_STUB, - UNIT_LOADED, - UNIT_ERROR, - UNIT_MERGED, - UNIT_MASKED, - _UNIT_LOAD_STATE_MAX, - _UNIT_LOAD_STATE_INVALID = -1 -}; +#include "unit-name.h" enum UnitActiveState { UNIT_ACTIVE, @@ -101,13 +74,15 @@ enum UnitDependency { UNIT_REQUISITE, UNIT_REQUISITE_OVERRIDABLE, UNIT_WANTS, - UNIT_BIND_TO, + UNIT_BINDS_TO, + UNIT_PART_OF, /* Inverse of the above */ UNIT_REQUIRED_BY, /* inverse of 'requires' and 'requisite' is 'required_by' */ UNIT_REQUIRED_BY_OVERRIDABLE, /* inverse of 'requires_overridable' and 'requisite_overridable' is 'soft_required_by' */ UNIT_WANTED_BY, /* inverse of 'wants' */ - UNIT_BOUND_BY, /* inverse of 'bind_to' */ + UNIT_BOUND_BY, /* inverse of 'binds_to' */ + UNIT_CONSISTS_OF, /* inverse of 'part_of' */ /* Negative dependencies */ UNIT_CONFLICTS, /* inverse of 'conflicts' is 'conflicted_by' */ @@ -125,8 +100,8 @@ enum UnitDependency { UNIT_TRIGGERED_BY, /* Propagate reloads */ - UNIT_PROPAGATE_RELOAD_TO, - UNIT_PROPAGATE_RELOAD_FROM, + UNIT_PROPAGATES_RELOAD_TO, + UNIT_RELOAD_PROPAGATED_FROM, /* Reference information for GC logic */ UNIT_REFERENCES, /* Inverse of 'references' is 'referenced_by' */ @@ -157,9 +132,12 @@ struct Unit { char **requires_mounts_for; char *description; + char **documentation; char *fragment_path; /* if loaded from a config file this is the primary path to it */ + char *source_path; /* if converted, the source file */ usec_t fragment_mtime; + usec_t source_mtime; /* If there is something to do with this unit, then this is the installed job for it */ Job *job; @@ -243,7 +221,7 @@ struct Unit { /* Ignore this unit when snapshotting */ bool ignore_on_snapshot; - /* Did the last condition check suceed? */ + /* Did the last condition check succeed? */ bool condition_result; bool in_load_queue:1; @@ -285,8 +263,6 @@ struct UnitStatusMessageFormats { #include "path.h" struct UnitVTable { - const char *suffix; - /* How much memory does an object of this unit type need */ size_t object_size; @@ -309,7 +285,7 @@ struct UnitVTable { * UNIT_STUB if no configuration could be found. */ int (*load)(Unit *u); - /* If a a lot of units got created via enumerate(), this is + /* If a lot of units got created via enumerate(), this is * where to actually set the state and call unit_notify(). */ int (*coldplug)(Unit *u); @@ -319,7 +295,7 @@ struct UnitVTable { int (*stop)(Unit *u); int (*reload)(Unit *u); - int (*kill)(Unit *u, KillWho w, KillMode m, int signo, DBusError *error); + int (*kill)(Unit *u, KillWho w, int signo, DBusError *error); bool (*can_reload)(Unit *u); @@ -352,9 +328,6 @@ struct UnitVTable { void (*sigchld_event)(Unit *u, pid_t pid, int code, int status); void (*timer_event)(Unit *u, uint64_t n_elapsed, Watch *w); - /* Check whether unit needs a daemon reload */ - bool (*need_daemon_reload)(Unit *u); - /* Reset failed state if we are in failed state */ void (*reset_failed)(Unit *u); @@ -497,7 +470,7 @@ int unit_start(Unit *u); int unit_stop(Unit *u); int unit_reload(Unit *u); -int unit_kill(Unit *u, KillWho w, KillMode m, int signo, DBusError *error); +int unit_kill(Unit *u, KillWho w, int signo, DBusError *error); void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_success); @@ -527,7 +500,7 @@ char *unit_full_printf(Unit *u, const char *text); char **unit_full_printf_strv(Unit *u, char **l); bool unit_can_serialize(Unit *u); -int unit_serialize(Unit *u, FILE *f, FDSet *fds); +int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs); 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); @@ -551,9 +524,6 @@ int unit_add_default_target_dependency(Unit *u, Unit *target); int unit_following_set(Unit *u, Set **s); -UnitType unit_name_to_type(const char *n); -bool unit_name_is_valid(const char *n, bool template_ok); - void unit_trigger_on_failure(Unit *u); bool unit_condition_test(Unit *u); @@ -568,13 +538,10 @@ void unit_ref_unset(UnitRef *ref); int unit_add_one_mount_link(Unit *u, Mount *m); int unit_add_mount_links(Unit *u); -const char *unit_load_state_to_string(UnitLoadState i); -UnitLoadState unit_load_state_from_string(const char *s); +int unit_exec_context_defaults(Unit *u, ExecContext *c); const char *unit_active_state_to_string(UnitActiveState i); UnitActiveState unit_active_state_from_string(const char *s); const char *unit_dependency_to_string(UnitDependency i); UnitDependency unit_dependency_from_string(const char *s); - -#endif