[PATCH 02/25] perf tools: Introduce xyarray__zero function

Jiri Olsa
2015-06-10T18:12:10Z

To zero all the xyarray contents. It will be used
in following patches.

Link: http://lkml.kernel.org/n/tip-bp8bcl46cav05xn0uacg7ytn@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
tools/perf/util/xyarray.c | 8 ++++++++
tools/perf/util/xyarray.h | 2 ++
2 files changed, 10 insertions(+)

diff --git a/tools/perf/util/xyarray.c b/tools/perf/util/xyarray.c
index 22afbf6c536a..d0ca9ed5e7f2 100644
--- a/tools/perf/util/xyarray.c
+++ b/tools/perf/util/xyarray.c
@@ -9,11 +9,19 @@ struct xyarray *xyarray__new(int xlen, int ylen, size_t entry_size)
if (xy != NULL) {
xy->entry_size = entry_size;
xy->row_size = row_size;
+ xy->entries = xlen * ylen;
}

return xy;
}

+void xyarray__zero(struct xyarray *xy)
+{
+ size_t n = xy->entries * xy->entry_size;
+
+ memset(xy->contents, 0, n);
+}
+
void xyarray__delete(struct xyarray *xy)
{
free(xy);
diff --git a/tools/perf/util/xyarray.h b/tools/perf/util/xyarray.h
index c488a07275dd..60cd80acdaa9 100644
--- a/tools/perf/util/xyarray.h
+++ b/tools/perf/util/xyarray.h
@@ -6,11 +6,13 @@
struct xyarray {
size_t row_size;
size_t entry_size;
+ size_t entries;
char contents[];
};

struct xyarray *xyarray__new(int xlen, int ylen, size_t entry_size);
void xyarray__delete(struct xyarray *xy);
+void xyarray__zero(struct xyarray *xy);

static inline void *xyarray__entry(struct xyarray *xy, int x, int y)
{
--
1.9.3