X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore%2Fpath.h;h=0d36aab960f694bc2717a9ae0aac791f3c52bd48;hb=c1ff5570f4a04bb9aedea444c12dce81679224ec;hp=77926888ae5795ddd10bbc83532b8abcb05460cc;hpb=c2f1db8f83618e60dcded8303d14656d7d26b436;p=elogind.git diff --git a/src/core/path.h b/src/core/path.h index 77926888a..0d36aab96 100644 --- a/src/core/path.h +++ b/src/core/path.h @@ -22,6 +22,7 @@ ***/ typedef struct Path Path; +typedef struct PathSpec PathSpec; #include "unit.h" #include "mount.h" @@ -46,9 +47,11 @@ typedef enum PathType { } PathType; typedef struct PathSpec { + Unit *unit; + char *path; - Watch watch; + sd_event_source *event_source; LIST_FIELDS(struct PathSpec, spec); @@ -59,8 +62,8 @@ typedef struct PathSpec { bool previous_exists; } PathSpec; -int path_spec_watch(PathSpec *s, Unit *u); -void path_spec_unwatch(PathSpec *s, Unit *u); +int path_spec_watch(PathSpec *s, sd_event_io_handler_t handler); +void path_spec_unwatch(PathSpec *s); int path_spec_fd_event(PathSpec *s, uint32_t events); void path_spec_done(PathSpec *s); @@ -80,8 +83,6 @@ struct Path { LIST_HEAD(PathSpec, specs); - UnitRef unit; - PathState state, deserialized_state; bool inotify_triggered; @@ -92,19 +93,15 @@ struct Path { PathResult result; }; -void path_unit_notify(Unit *u, UnitActiveState new_state); - -/* Called from the mount code figure out if a mount is a dependency of - * any of the paths of this path object */ -int path_add_one_mount_link(Path *p, Mount *m); +void path_free_specs(Path *p); extern const UnitVTable path_vtable; -const char* path_state_to_string(PathState i); -PathState path_state_from_string(const char *s); +const char* path_state_to_string(PathState i) _const_; +PathState path_state_from_string(const char *s) _pure_; -const char* path_type_to_string(PathType i); -PathType path_type_from_string(const char *s); +const char* path_type_to_string(PathType i) _const_; +PathType path_type_from_string(const char *s) _pure_; -const char* path_result_to_string(PathResult i); -PathResult path_result_from_string(const char *s); +const char* path_result_to_string(PathResult i) _const_; +PathResult path_result_from_string(const char *s) _pure_;