diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2015-02-06 09:15:52 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-02-12 09:33:43 +0100 |
commit | c1156d841fbc0c9d769f4f5b0cdca8fd4dd15cec (patch) | |
tree | cbca3002d552b9e52c567432f4bfaef1ecd3ce16 /lib | |
parent | 10a0aaabfeca64519430fb3ee5a91260a7305cf5 (diff) | |
download | barebox-c1156d841fbc0c9d769f4f5b0cdca8fd4dd15cec.tar.gz barebox-c1156d841fbc0c9d769f4f5b0cdca8fd4dd15cec.tar.xz |
cmdlinepart: add function to parse a cmdline partition string
This adds a function to parse a full cmdline partition string. The
addpart command is switched to use this function.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
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; +} |