diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cmdlinepart.c | 28 |
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; +} |