X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fpath.h;h=efb6b5eb44fe418c5f26d522f47e914cb36ee4bd;hp=1d78fe424ab7c944c7b0594415c55750310bb587;hb=5e62067d08d989ab98b12497a9b27a877de8515b;hpb=dc1ecd78e9f046880d10ddb45cf9b06df1084b10 diff --git a/src/path.h b/src/path.h index 1d78fe424..efb6b5eb4 100644 --- a/src/path.h +++ b/src/path.h @@ -58,31 +58,39 @@ typedef struct PathSpec { int primary_wd; bool previous_exists; - } PathSpec; -int pathspec_watch(PathSpec *s, Unit *u); -void pathspec_unwatch(PathSpec *s, Unit *u); -int pathspec_fd_event(PathSpec *s, uint32_t events); -void pathspec_done(PathSpec *s); -static inline bool pathspec_owns_inotify_fd(PathSpec *s, int fd) { +int path_spec_watch(PathSpec *s, Unit *u); +void path_spec_unwatch(PathSpec *s, Unit *u); +int path_spec_fd_event(PathSpec *s, uint32_t events); +void path_spec_done(PathSpec *s); + +static inline bool path_spec_owns_inotify_fd(PathSpec *s, int fd) { return s->inotify_fd == fd; } +typedef enum PathResult { + PATH_SUCCESS, + PATH_FAILURE_RESOURCES, + _PATH_RESULT_MAX, + _PATH_RESULT_INVALID = -1 +} PathResult; + struct Path { - Meta meta; + Unit meta; LIST_HEAD(PathSpec, specs); - Unit *unit; + UnitRef unit; PathState state, deserialized_state; - bool failure; bool inotify_triggered; bool make_directory; mode_t directory_mode; + + PathResult result; }; void path_unit_notify(Unit *u, UnitActiveState new_state); @@ -99,4 +107,7 @@ PathState path_state_from_string(const char *s); const char* path_type_to_string(PathType i); PathType path_type_from_string(const char *s); +const char* path_result_to_string(PathResult i); +PathResult path_result_from_string(const char *s); + #endif