diff options
Diffstat (limited to 'src/shared/dropin.h')
-rw-r--r-- | src/shared/dropin.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/shared/dropin.h b/src/shared/dropin.h index 9c9742d0e4..d4531fca2d 100644 --- a/src/shared/dropin.h +++ b/src/shared/dropin.h @@ -22,6 +22,8 @@ ***/ #include "macro.h" +#include "set.h" +#include "unit-name.h" int drop_in_file(const char *dir, const char *unit, unsigned level, const char *name, char **_p, char **_q); @@ -31,3 +33,30 @@ int write_drop_in(const char *dir, const char *unit, unsigned level, int write_drop_in_format(const char *dir, const char *unit, unsigned level, const char *name, const char *format, ...) _printf_(5, 6); + +/** + * This callback will be called for each directory entry @entry, + * with @filepath being the full path to the entry. + * + * If return value is negative, loop will be aborted. + */ +typedef int (*dependency_consumer_t)(UnitDependency dependency, + const char *entry, + const char* filepath, + void *arg); + +int unit_file_process_dir( + Set * unit_path_cache, + const char *unit_path, + const char *name, + const char *suffix, + UnitDependency dependency, + dependency_consumer_t consumer, + void *arg, + char ***strv); + +int unit_file_find_dropin_paths( + char **lookup_path, + Set *unit_path_cache, + Set *names, + char ***paths); |