Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752817AbbKPPzb (ORCPT ); Mon, 16 Nov 2015 10:55:31 -0500 Received: from mail.kernel.org ([198.145.29.136]:49884 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752484AbbKPPzN (ORCPT ); Mon, 16 Nov 2015 10:55:13 -0500 Date: Mon, 16 Nov 2015 12:55:08 -0300 From: Arnaldo Carvalho de Melo To: Wang Nan Cc: masami.hiramatsu.pt@hitachi.com, ast@kernel.org, lizefan@huawei.com, Ingo Molnar , Jiri Olsa , pi3orama@163.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH 05/13] perf tools: Introduce strtobool() to string.c Message-ID: <20151116155508.GD15169@kernel.org> References: <1447675815-166222-1-git-send-email-wangnan0@huawei.com> <1447675815-166222-6-git-send-email-wangnan0@huawei.com> <20151116141718.GA15169@kernel.org> <20151116144936.GB15169@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151116144936.GB15169@kernel.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4163 Lines: 125 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 > 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 > Cc: Alexei Starovoitov > Cc: Jonathan Cameron > Cc: Masami Hiramatsu > Cc: Zefan Li > 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 > > 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 > + */ > + > #include > #include > +#include > #include > > /** > @@ -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; > +} -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/