Messages in this thread | | | Date | Mon, 16 Nov 2015 12:55:08 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 05/13] perf tools: Introduce strtobool() to string.c |
| |
Em Mon, Nov 16, 2015 at 11:49:36AM -0300, Arnaldo Carvalho de Melo escreveu: > Em Mon, Nov 16, 2015 at 11:17:18AM -0300, Arnaldo Carvalho de Melo escreveu: > > Em Mon, Nov 16, 2015 at 12:10:07PM +0000, Wang Nan escreveu: > > > This patch clones strtobool() from kernel's string.c to perf's string.c, > > > then add the function entry to tools/perf/util/include/linux/string.h. > > > > > > string.h in perf utils doesn't have #ifdef guard. This patch fixes it. > > > > > > This is preparation for enforcing BPF program configuration, which > > > would allow config string like 'inlines=yes'. > > > > This is not perf specific at all, we're trying to move stuff out of > > tools/perf/ so that it becomes generally usable by other tools/ living > > code, not just perf. > > > > I'll move it to where I think it should be and post as a reply to this > > message. > > Find it at the bottom, I had to do a prep patch to move memdup() first, > so that I could move tools/perf/util/include/linux/string.h to > tools/include/linux/string.h, there is still work to do to fully move > tools/perf/util/string.c to tools/lib/, will do eventually, for now what > you need is there.
Also, I'm pushing what I have to the perf/ebpf branch in my tree.
- Arnaldo
> - Arnaldo > > commit 939d89c6acc78ee48e8ad83e9565a372b9f3987a > Author: Wang Nan <wangnan0@huawei.com> > Date: Mon Nov 16 11:42:05 2015 -0300 > > tools: Clone the kernel's strtobool function > > Copying it to tools/lib/string.c, the counterpart to the kernel's > lib/string.c. > > This is preparation for enhancing BPF program configuration, which will > allow config string like 'inlines=yes'. > > Signed-off-by: Wang Nan <wangnan0@huawei.com> > Cc: Alexei Starovoitov <ast@kernel.org> > Cc: Jonathan Cameron <jic23@cam.ac.uk> > Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> > Cc: Zefan Li <lizefan@huawei.com> > Cc: pi3orama@163.com > Link: http://lkml.kernel.org/r/1447675815-166222-6-git-send-email-wangnan0@huawei.com > [ Copied it to tools/lib/string.c instead, to make it usable by other tools/ ] > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > > diff --git a/tools/include/linux/string.h b/tools/include/linux/string.h > index f3a6db6ad732..2e2f736c039c 100644 > --- a/tools/include/linux/string.h > +++ b/tools/include/linux/string.h > @@ -6,4 +6,6 @@ > > void *memdup(const void *src, size_t len); > > +int strtobool(const char *s, bool *res); > + > #endif /* _LINUX_STRING_H_ */ > diff --git a/tools/lib/string.c b/tools/lib/string.c > index ecfd43a9b24e..065e54f42d8f 100644 > --- a/tools/lib/string.c > +++ b/tools/lib/string.c > @@ -1,5 +1,20 @@ > +/* > + * linux/tools/lib/string.c > + * > + * Copied from linux/lib/string.c, where it is: > + * > + * Copyright (C) 1991, 1992 Linus Torvalds > + * > + * More specifically, the first copied function was strtobool, which > + * was introduced by: > + * > + * d0f1fed29e6e ("Add a strtobool function matching semantics of existing in kernel equivalents") > + * Author: Jonathan Cameron <jic23@cam.ac.uk> > + */ > + > #include <stdlib.h> > #include <string.h> > +#include <errno.h> > #include <linux/string.h> > > /** > @@ -17,3 +32,31 @@ void *memdup(const void *src, size_t len) > > return p; > } > + > +/** > + * strtobool - convert common user inputs into boolean values > + * @s: input string > + * @res: result > + * > + * This routine returns 0 iff the first character is one of 'Yy1Nn0'. > + * Otherwise it will return -EINVAL. Value pointed to by res is > + * updated upon finding a match. > + */ > +int strtobool(const char *s, bool *res) > +{ > + switch (s[0]) { > + case 'y': > + case 'Y': > + case '1': > + *res = true; > + break; > + case 'n': > + case 'N': > + case '0': > + *res = false; > + break; > + default: > + return -EINVAL; > + } > + return 0; > +}
| |