chiark / gitweb /
journal: introduce log target 'journal' for executed processes
[elogind.git] / src / path.h
index 5c06de4dfe667195fefbad3c7345b983077158d0..1d78fe424ab7c944c7b0594415c55750310bb587 100644 (file)
@@ -1,4 +1,4 @@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 #ifndef foopathhfoo
 #define foopathhfoo
@@ -31,15 +31,17 @@ typedef enum PathState {
         PATH_DEAD,
         PATH_WAITING,
         PATH_RUNNING,
-        PATH_MAINTENANCE,
+        PATH_FAILED,
         _PATH_STATE_MAX,
         _PATH_STATE_INVALID = -1
 } PathState;
 
 typedef enum PathType {
         PATH_EXISTS,
+        PATH_EXISTS_GLOB,
         PATH_DIRECTORY_NOT_EMPTY,
         PATH_CHANGED,
+        PATH_MODIFIED,
         _PATH_TYPE_MAX,
         _PATH_TYPE_INVALID = -1
 } PathType;
@@ -59,6 +61,14 @@ typedef struct PathSpec {
 
 } 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) {
+        return s->inotify_fd == fd;
+}
+
 struct Path {
         Meta meta;
 
@@ -69,6 +79,10 @@ struct Path {
         PathState state, deserialized_state;
 
         bool failure;
+        bool inotify_triggered;
+
+        bool make_directory;
+        mode_t directory_mode;
 };
 
 void path_unit_notify(Unit *u, UnitActiveState new_state);