summaryrefslogtreecommitdiffstats
path: root/devices/paths.h
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2008-01-07 19:15:03 +1100
committerJeremy Kerr <jk@ozlabs.org>2008-01-07 19:15:03 +1100
commitaab818c10b1fa68b968cabc852680f8ec0fe1360 (patch)
treedd3b7a90d58c2bd167899782a477359317c1fa34 /devices/paths.h
parent84a9a8660a90551f2f934ac77ac0c9b2c2e8c079 (diff)
downloadtalos-petitboot-aab818c10b1fa68b968cabc852680f8ec0fe1360.tar.gz
talos-petitboot-aab818c10b1fa68b968cabc852680f8ec0fe1360.zip
Rework device-path handling
Pass full device paths around, rather than shortened device names and mountpoints. The parse() function has been updated to only take a device path; the mountpoint can be derived with mountpoint_for_device. Also, add initial handling for uuid= and label= syntaxes. This allows us to remap ps3 devices where necessary. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'devices/paths.h')
-rw-r--r--devices/paths.h28
1 files changed, 25 insertions, 3 deletions
diff --git a/devices/paths.h b/devices/paths.h
index eca6689..a6f01c4 100644
--- a/devices/paths.h
+++ b/devices/paths.h
@@ -2,9 +2,21 @@
#define PATHS_H
/**
- * Get the mountpoint for a device
+ * 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(const char *dev_str, const char *current_device);
+
+/**
+ * Get the mountpoint for a device.
*/
-const char *mountpoint_for_device(const char *dev_path);
+const char *mountpoint_for_device(const char *dev);
/**
* Resolve a path given in a config file, to a path in the local filesystem.
@@ -17,11 +29,21 @@ const char *mountpoint_for_device(const char *dev_path);
*
* Returns a newly-allocated string containing a full path to the file in path
*/
-char *resolve_path(const char *path, const char *current_mountpoint);
+char *resolve_path(const char *path, const char *current_device);
+
/**
* Set the base directory for newly-created mountpoints
*/
void set_mount_base(const char *path);
+/**
+ * Utility function for joining two paths. Adds a / between a and b if
+ * required.
+ *
+ * Returns a newly-allocated string.
+ */
+char *join_paths(const char *a, const char *b);
+
+
#endif /* PATHS_H */
OpenPOWER on IntegriCloud