Messages in this thread Patch in this message | | | Date | Mon, 16 Nov 2015 11:17:18 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH 05/13] perf tools: Introduce strtobool() to string.c |
| |
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.
- Arnaldo > Signed-off-by: Wang Nan <wangnan0@huawei.com> > Cc: Alexei Starovoitov <ast@kernel.org> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> > Cc: Zefan Li <lizefan@huawei.com> > Cc: pi3orama@163.com > --- > tools/perf/util/include/linux/string.h | 5 +++++ > tools/perf/util/string.c | 28 ++++++++++++++++++++++++++++ > 2 files changed, 33 insertions(+) > > diff --git a/tools/perf/util/include/linux/string.h b/tools/perf/util/include/linux/string.h > index 6f19c54..2bb0057 100644 > --- a/tools/perf/util/include/linux/string.h > +++ b/tools/perf/util/include/linux/string.h > @@ -1,3 +1,8 @@ > +#ifndef PERF_LINUX_STRING_H_ > +#define PERF_LINUX_STRING_H_ > #include <string.h> > > void *memdup(const void *src, size_t len); > + > +int strtobool(const char *s, bool *res); > +#endif > diff --git a/tools/perf/util/string.c b/tools/perf/util/string.c > index fc8781d..c7fd44d 100644 > --- a/tools/perf/util/string.c > +++ b/tools/perf/util/string.c > @@ -396,3 +396,31 @@ out_err_overflow: > free(expr); > return NULL; > } > + > +/** > + * 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; > +} > -- > 1.8.3.4
| |