Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752245AbbKPOtp (ORCPT ); Mon, 16 Nov 2015 09:49:45 -0500 Received: from mail.kernel.org ([198.145.29.136]:45811 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751139AbbKPOtm (ORCPT ); Mon, 16 Nov 2015 09:49:42 -0500 Date: Mon, 16 Nov 2015 11:49:36 -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: <20151116144936.GB15169@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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151116141718.GA15169@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: 3779 Lines: 120 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. - 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/