discover/pb-discover: #include <locale.h> for musl libc
[petitboot] / discover / resource.h
index b7e1a4649dfc7d699faa0aa816f3e3c8e4e9004c..ae993e83a8c6c1be57e4bd54b42dd97aef3417f1 100644 (file)
@@ -3,6 +3,9 @@
 
 #include <stdbool.h>
 
+struct discover_boot_option;
+struct discover_device;
+struct device_handler;
 struct pb_url;
 
 /**
@@ -19,5 +22,33 @@ struct resource {
        };
 };
 
+void resolve_resource_against_device(struct resource *res,
+       struct discover_device *dev, const char *path);
+
+/**
+ * devpath resources.
+ *
+ * Most resources in config files will be in one of the following formats:
+ *  - URLs
+ *  - device-local filenames (ie, filenames on the currently-discovered dev)
+ *  - other-device filenames (which speficy the device by a string format,
+ *     using a dev:path format).
+ *
+ * The following definitions are a generic resource handler for these types
+ * of resources. By creating resources with create_devpath_resource,
+ * parsers can use resolve_devpath_resource as their resolve_resouce
+ * callback.
+ */
+
+struct resource *create_devpath_resource(struct discover_boot_option *opt,
+               struct discover_device *orig_device,
+               const char *devpath);
+
+struct resource *create_url_resource(struct discover_boot_option *opt,
+               struct pb_url *url);
+
+bool resolve_devpath_resource(struct device_handler *dev,
+               struct resource *res);
+
 #endif /* RESOURCE_H */