Commit-ID:  db49120a32b347fb93aea3319305932657dd118c
Gitweb:     http://git.kernel.org/tip/db49120a32b347fb93aea3319305932657dd118c
Author:     Jiri Olsa <jo...@kernel.org>
AuthorDate: Fri, 15 Jul 2016 09:29:57 +0200
Committer:  Arnaldo Carvalho de Melo <a...@redhat.com>
CommitDate: Fri, 15 Jul 2016 13:38:05 -0300

tools lib api fs: Use base 0 in filename__read_ull

By using 0 for base, the strtoull() detects the base automatically (see
'man strtoull').

ATM we have just one user of this function, the cpu__get_max_freq
function reading the "cpuinfo_max_freq" sysfs file. It should not get
affected by this change.

Committer note:

This change seems motivated by this discussion:

"[PATCH] [RFC V1]s390/perf: fix 'start' address of module's map"
http://lkml.kernel.org/r/20160711120155.GA29929@krava

I.e. this patches paves the way for filename__read_ull() to be used in a
S/390 related fix.

Signed-off-by: Jiri Olsa <jo...@kernel.org>
Cc: David Ahern <dsah...@gmail.com>
Cc: Namhyung Kim <namhy...@kernel.org>
Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
Cc: Songshan Gong <gon...@linux.vnet.ibm.com>
Link: 
http://lkml.kernel.org/r/1468567797-27564-4-git-send-email-jo...@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com>
---
 tools/lib/api/fs/fs.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index 08556cf..ba7094b 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -283,6 +283,11 @@ int filename__read_int(const char *filename, int *value)
        return err;
 }
 
+/*
+ * Parses @value out of @filename with strtoull.
+ * By using 0 for base, the strtoull detects the
+ * base automatically (see man strtoull).
+ */
 int filename__read_ull(const char *filename, unsigned long long *value)
 {
        char line[64];
@@ -292,7 +297,7 @@ int filename__read_ull(const char *filename, unsigned long 
long *value)
                return -1;
 
        if (read(fd, line, sizeof(line)) > 0) {
-               *value = strtoull(line, NULL, 10);
+               *value = strtoull(line, NULL, 0);
                if (*value != ULLONG_MAX)
                        err = 0;
        }

Reply via email to