chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
main: added support for loading IMA custom policies
[elogind.git]
/
src
/
path.h
diff --git
a/src/path.h
b/src/path.h
index 21a7dc49348025211f5e7a44a1143df0e317b298..efb6b5eb44fe418c5f26d522f47e914cb36ee4bd 100644
(file)
--- a/
src/path.h
+++ b/
src/path.h
@@
-1,4
+1,4
@@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8
; indent-tabs-mode: nil
-*-*/
#ifndef foopathhfoo
#define foopathhfoo
#ifndef foopathhfoo
#define foopathhfoo
@@
-31,41
+31,66
@@
typedef enum PathState {
PATH_DEAD,
PATH_WAITING,
PATH_RUNNING,
PATH_DEAD,
PATH_WAITING,
PATH_RUNNING,
- PATH_
MAINTAINANCE
,
+ PATH_
FAILED
,
_PATH_STATE_MAX,
_PATH_STATE_INVALID = -1
} PathState;
typedef enum PathType {
PATH_EXISTS,
_PATH_STATE_MAX,
_PATH_STATE_INVALID = -1
} PathState;
typedef enum PathType {
PATH_EXISTS,
+ PATH_EXISTS_GLOB,
PATH_DIRECTORY_NOT_EMPTY,
PATH_CHANGED,
PATH_DIRECTORY_NOT_EMPTY,
PATH_CHANGED,
+ PATH_MODIFIED,
_PATH_TYPE_MAX,
_PATH_TYPE_INVALID = -1
} PathType;
typedef struct PathSpec {
_PATH_TYPE_MAX,
_PATH_TYPE_INVALID = -1
} PathType;
typedef struct PathSpec {
- PathType type;
char *path;
char *path;
+ Watch watch;
+
+ LIST_FIELDS(struct PathSpec, spec);
+
+ PathType type;
int inotify_fd;
int primary_wd;
int inotify_fd;
int primary_wd;
+
bool previous_exists;
bool previous_exists;
+} PathSpec;
- Watch watch;
+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);
- LIST_FIELDS(struct PathSpec, spec);
-} PathSpec;
+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 {
struct Path {
-
Meta
meta;
+
Unit
meta;
LIST_HEAD(PathSpec, specs);
LIST_HEAD(PathSpec, specs);
+ UnitRef unit;
+
PathState state, deserialized_state;
PathState state, deserialized_state;
- Unit *unit;
- bool failure;
+ bool inotify_triggered;
+
+ bool make_directory;
+ mode_t directory_mode;
+
+ PathResult result;
};
void path_unit_notify(Unit *u, UnitActiveState new_state);
};
void path_unit_notify(Unit *u, UnitActiveState new_state);
@@
-82,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_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
#endif