]> git.ozlabs.org Git - petitboot/blobdiff - devices/parser.h
Separate parsing infrastructure and add test wrapper
[petitboot] / devices / parser.h
diff --git a/devices/parser.h b/devices/parser.h
new file mode 100644 (file)
index 0000000..2034cf1
--- /dev/null
@@ -0,0 +1,45 @@
+
+#ifndef _PARSERS_H
+#define _PARSERS_H
+
+#include <stdarg.h>
+#include "message.h"
+
+struct parser {
+       char *name;
+       int priority;
+       int (*parse)(const char *devicepath, const char *mountpoint);
+       struct parser *next;
+};
+
+enum generic_icon_type {
+       ICON_TYPE_DISK,
+       ICON_TYPE_USB,
+       ICON_TYPE_OPTICAL,
+       ICON_TYPE_NETWORK,
+       ICON_TYPE_UNKNOWN
+};
+
+#define streq(a,b) (!strcasecmp((a),(b)))
+
+/* general functions provided by parsers.c */
+void iterate_parsers(const char *devpath, const char *mountpoint);
+
+void free_device(struct device *dev);
+void free_boot_option(struct boot_option *opt);
+
+char *join_paths(const char *a, const char *b);
+
+const char *generic_icon_file(enum generic_icon_type type);
+
+/* functions provided by udev-helper or the test wrapper */
+void pb_log(const char *fmt, ...);
+
+int mount_device(const char *dev_path, char *mount_path);
+
+enum generic_icon_type guess_device_type(void);
+
+int add_device(const struct device *dev);
+int add_boot_option(const struct boot_option *opt);
+
+#endif /* _PARSERS_H */