X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fdropin.h;h=d4531fca2da9c1feec0f4cbbdc0660aedf6ca2b3;hp=27a2b2953fb450d8261724ae3e478f628fbed936;hb=2f07de3b6cacf44462635ab0fff56391b491e454;hpb=8eea868708923a092ee85d6146ba4c04b7baea06;ds=sidebyside diff --git a/src/shared/dropin.h b/src/shared/dropin.h index 27a2b2953..d4531fca2 100644 --- a/src/shared/dropin.h +++ b/src/shared/dropin.h @@ -21,6 +21,10 @@ along with systemd; If not, see . ***/ +#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); @@ -28,4 +32,31 @@ int write_drop_in(const char *dir, const char *unit, unsigned level, const char *name, const char *data); int write_drop_in_format(const char *dir, const char *unit, unsigned level, - const char *name, const char *format, ...); + 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);