X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fpath.h;h=8b3c0bc11957248cecb1a02791c22bc82990fe0a;hb=4ff77f66af8bd3e7e403c81febb7a2471457c5da;hp=116fc63ff726daa6ac53f3fb581f9c3e79f7eab1;hpb=7e2bb92dcae6ee785ff7462aadc8c369fd93715b;p=elogind.git diff --git a/src/path.h b/src/path.h index 116fc63ff..8b3c0bc11 100644 --- a/src/path.h +++ b/src/path.h @@ -41,6 +41,7 @@ typedef enum PathType { PATH_EXISTS_GLOB, PATH_DIRECTORY_NOT_EMPTY, PATH_CHANGED, + PATH_MODIFIED, _PATH_TYPE_MAX, _PATH_TYPE_INVALID = -1 } PathType; @@ -57,15 +58,23 @@ typedef struct PathSpec { int primary_wd; bool previous_exists; - } PathSpec; +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; +} + struct Path { Meta meta; LIST_HEAD(PathSpec, specs); - Unit *unit; + UnitRef unit; PathState state, deserialized_state;