diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-04-16 16:58:18 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-04-29 14:41:04 +1000 |
commit | 5be946cda7b8e2271ade6188ca3f5dc068826619 (patch) | |
tree | a62a64792bb61aa57c5d8dac36c7df9756d01ef8 /discover/paths.h | |
parent | 4e8b779626da98e2896efbb2df99b64f76e878f6 (diff) | |
download | talos-petitboot-5be946cda7b8e2271ade6188ca3f5dc068826619.tar.gz talos-petitboot-5be946cda7b8e2271ade6188ca3f5dc068826619.zip |
discover: Change parsers to emit resources rather than filenames
This change switches the parsers over to populate the resources in
discover_boot_option, rather than the string parameters in boot_option.
To do this, we need a few things:
* Add struct resources to discover_boot_option for the boot_image,
initrd and icon data.
* Have the parsers populate the resources, rather than the strings.
Currently, parsers can all use the devpath resource type.
* Add a resolve_resource callback to parsers; this is how the device
handler will attempt to resolve resources.
* Change load_file to load_url, as we should be only accessing
(resolved) resources by URLs.
This then allows us to remove the mount map, and associated lookup code,
as well as the UUID and label links to devices.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/paths.h')
-rw-r--r-- | discover/paths.h | 39 |
1 files changed, 2 insertions, 37 deletions
diff --git a/discover/paths.h b/discover/paths.h index 34de79a..20a2249 100644 --- a/discover/paths.h +++ b/discover/paths.h @@ -1,37 +1,7 @@ #ifndef PATHS_H #define PATHS_H -/** - * Given a string (eg /dev/sda1, sda1 or UUID=B8E53381CA9EA0E3), parse the - * device path (eg /dev/sda1). Any device descriptions read from config files - * should be parsed into the path first. - * - * The cur_dev is provided for some remapping situations. If NULL is provided, - * no remapping will be done. - * - * Returns a newly-allocated string. - */ -char *parse_device_path(void *alloc_ctx, - const char *dev_str, const char *current_device); - -/** - * Get the mountpoint for a device. - */ -const char *mountpoint_for_device(const char *dev); - -/** - * Resolve a path given in a config file, to a path in the local filesystem. - * Paths may be of the form: - * device:path (eg /dev/sda:/boot/vmlinux) - * - * or just a path: - * /boot/vmlinux - * - in this case, the current mountpoint is used. - * - * Returns a newly-allocated string containing a full path to the file in path - */ -char *resolve_path(void *alloc_ctx, - const char *path, const char *current_device); +#include <url/url.h> /** * Utility function for joining two paths. Adds a / between a and b if @@ -42,16 +12,11 @@ char *resolve_path(void *alloc_ctx, char *join_paths(void *alloc_ctx, const char *a, const char *b); /** - * encode a disk label (or uuid) for use in a symlink. - */ -char *encode_label(void *alloc_ctx, const char *label); - -/** * Returns the base path for mount points */ const char *mount_base(void); /* Load a (potentially remote) file, and return a guaranteed-local name */ -char *load_file(void *ctx, const char *remote, unsigned int *tempfile); +char *load_url(void *ctx, struct pb_url *url, unsigned int *tempfile); #endif /* PATHS_H */ |