chiark / gitweb /
Get rid of some more unused defines and dirs
[elogind.git] / src / shared / dropin.h
index 27a2b2953fb450d8261724ae3e478f628fbed936..d4531fca2da9c1feec0f4cbbdc0660aedf6ca2b3 100644 (file)
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#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);
 
 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 *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);