X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fbasic%2Fparse-util.c;h=01135596244836f690e31945e1a6e77761cc7734;hb=9800a6ceb4801bb1f3e851b2244c84a8d8f116b1;hp=cfdb29aba0a4f538a6d63358e7014fdab3793c3c;hpb=a97a730270418e53e9400de5dce7b07c7dacd19a;p=elogind.git diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c index cfdb29aba..011355962 100644 --- a/src/basic/parse-util.c +++ b/src/basic/parse-util.c @@ -23,9 +23,6 @@ #include #include #include -#if defined(__GLIBC__) -# include -#endif // defined(__GLIBC__) #include "alloc-util.h" //#include "extract-word.h" @@ -598,3 +595,18 @@ int parse_ip_port(const char *s, uint16_t *ret) { return 0; } #endif // 0 + +int parse_dev(const char *s, dev_t *ret) { + unsigned x, y; + dev_t d; + + if (sscanf(s, "%u:%u", &x, &y) != 2) + return -EINVAL; + + d = makedev(x, y); + if ((unsigned) major(d) != x || (unsigned) minor(d) != y) + return -EINVAL; + + *ret = d; + return 0; +}