From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
Jiri Olsa <jolsa@kernel.org>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
David Ahern <dsahern@gmail.com>,
Namhyung Kim <namhyung@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 03/41] tools lib api fs: Add filename__read_xll function
Date: Fri, 16 Feb 2018 16:17:08 -0300 [thread overview]
Message-ID: <20180216191746.11095-4-acme@kernel.org> (raw)
In-Reply-To: <20180216191746.11095-1-acme@kernel.org>
From: Jiri Olsa <jolsa@kernel.org>
Adding filename__read_xll function to be able to read files with hex
numbers in, which do not have 0x prefix.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/20180206181813.10943-5-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/api/fs/fs.c | 29 ++++++++++++++++++++++-------
tools/lib/api/fs/fs.h | 1 +
2 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index b24afc0e6e81..8b0e4a4315bd 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -315,12 +315,8 @@ 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)
+static int filename__read_ull_base(const char *filename,
+ unsigned long long *value, int base)
{
char line[64];
int fd = open(filename, O_RDONLY), err = -1;
@@ -329,7 +325,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, 0);
+ *value = strtoull(line, NULL, base);
if (*value != ULLONG_MAX)
err = 0;
}
@@ -338,6 +334,25 @@ int filename__read_ull(const char *filename, unsigned long long *value)
return err;
}
+/*
+ * Parses @value out of @filename with strtoull.
+ * By using 16 for base to treat the number as hex.
+ */
+int filename__read_xll(const char *filename, unsigned long long *value)
+{
+ return filename__read_ull_base(filename, value, 16);
+}
+
+/*
+ * 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)
+{
+ return filename__read_ull_base(filename, value, 0);
+}
+
#define STRERR_BUFSIZE 128 /* For the buffer size of strerror_r */
int filename__read_str(const char *filename, char **buf, size_t *sizep)
diff --git a/tools/lib/api/fs/fs.h b/tools/lib/api/fs/fs.h
index dda49deefb52..8ebee35a6395 100644
--- a/tools/lib/api/fs/fs.h
+++ b/tools/lib/api/fs/fs.h
@@ -30,6 +30,7 @@ FS(bpf_fs)
int filename__read_int(const char *filename, int *value);
int filename__read_ull(const char *filename, unsigned long long *value);
+int filename__read_xll(const char *filename, unsigned long long *value);
int filename__read_str(const char *filename, char **buf, size_t *sizep);
int filename__write_int(const char *filename, int value);
--
2.14.3
next prev parent reply other threads:[~2018-02-16 19:40 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-16 19:17 [GIT PULL 00/41] perf/core improvements and fixes Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 01/41] perf record: Put new line after target override warning Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 02/41] perf script: Add --show-round-event to display PERF_RECORD_FINISHED_ROUND Arnaldo Carvalho de Melo
2018-02-16 19:17 ` Arnaldo Carvalho de Melo [this message]
2018-02-16 19:17 ` [PATCH 04/41] tools lib api fs: Add sysfs__read_xll function Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 05/41] perf tests: Fix dwarf unwind for stripped binaries Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 06/41] perf tools: Fix comment for sort__* compare functions Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 07/41] perf report: Ask for ordered events for --tasks option Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 08/41] perf report: Add support to display group output for non group events Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 09/41] perf stat: Add support to print counts for fixed times Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 10/41] perf stat: Add support to print counts after a period of time Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 11/41] tools lib symbol: Skip non-address kallsyms line Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 12/41] perf symbols: Check if we read regular file in dso__load() Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 13/41] perf machine: Free root_dir in machine__init() error path Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 14/41] perf machine: Move kernel mmap name into struct machine Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 15/41] perf machine: Generalize machine__set_kernel_mmap() Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 16/41] perf machine: Don't search for active kernel start in __machine__create_kernel_maps Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 17/41] perf machine: Remove machine__load_kallsyms() Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 18/41] perf tools: Do not create kernel maps in sample__resolve() Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 19/41] perf tests: Use arch__compare_symbol_names to compare symbols Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 20/41] perf cs-etm: Freeing allocated memory Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 21/41] perf tools: Use target->per_thread and target->system_wide flags Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 22/41] perf auxtrace arm: Fixing uninitialised variable Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 23/41] perf cs-etm: Properly deal with cpu maps Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 24/41] perf annotate: Add missing arguments in Man page Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 25/41] perf kmem: Document a missing option & an argument Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 26/41] perf mem: Document a missing option Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 27/41] perf cs-etm: Inject capabilitity for CoreSight traces Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 28/41] perf inject: Emit instruction records on ETM trace discontinuity Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 29/41] coresight: Update documentation for perf usage Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 30/41] perf report: Fix description for --mem-mode Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 31/41] perf report: Fix wrong jump arrow Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 32/41] perf report: Fix memory corruption in --branch-history mode --branch-history Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 33/41] tools include powerpc: Grab a copy of arch/powerpc/include/uapi/asm/unistd.h Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 34/41] perf powerpc: Generate system call table from asm/unistd.h Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 35/41] perf trace powerpc: Use generated syscall table Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 36/41] perf record: Provide detailed information on s390 CPU Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 37/41] perf annotate: Scan cpuid for s390 and save machine type Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 38/41] perf cpuid: Introduce a platform specific cpuid compare function Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 39/41] perf test: Fix test case 23 for s390 z/VM or KVM guests Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 40/41] perf test: Fix test case inet_pton to accept inlines Arnaldo Carvalho de Melo
2018-02-16 19:17 ` [PATCH 41/41] perf tests shell lib: Use a wildcard to remove the vfs_getname probe Arnaldo Carvalho de Melo
2018-02-17 10:49 ` [GIT PULL 00/41] perf/core improvements and fixes Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180216191746.11095-4-acme@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=dsahern@gmail.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox