summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cmdlinepart.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/cmdlinepart.c b/lib/cmdlinepart.c
index 935158755c..df6f17af39 100644
--- a/lib/cmdlinepart.c
+++ b/lib/cmdlinepart.c
@@ -93,3 +93,31 @@ int cmdlinepart_do_parse_one(const char *devname, const char *partstr,
return ret;
}
+
+int cmdlinepart_do_parse(const char *devname, const char *parts, loff_t devsize,
+ unsigned partition_flags)
+{
+ loff_t offset = 0;
+ int ret;
+
+ while (1) {
+ loff_t size = 0;
+
+ ret = cmdlinepart_do_parse_one(devname, parts, &parts, &offset,
+ devsize, &size, partition_flags);
+ if (ret)
+ return ret;
+
+ offset += size;
+ if (!*parts)
+ break;
+
+ if (*parts != ',') {
+ printf("parse error\n");
+ return -EINVAL;
+ }
+ parts++;
+ }
+
+ return 0;
+}