Adding perf_mmap__new function to create and initialize new 'struct perf_mmap' object to internal header internal/mmap.h
Link: http://lkml.kernel.org/n/tip-e0zucg7w3h6j1hrq0cq2v...@git.kernel.org Signed-off-by: Jiri Olsa <jo...@kernel.org> --- tools/perf/lib/include/internal/mmap.h | 2 ++ tools/perf/lib/mmap.c | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/tools/perf/lib/include/internal/mmap.h b/tools/perf/lib/include/internal/mmap.h index cc0a5995cd3c..31946e26368a 100644 --- a/tools/perf/lib/include/internal/mmap.h +++ b/tools/perf/lib/include/internal/mmap.h @@ -41,6 +41,8 @@ struct perf_mmap_param { size_t perf_mmap__mmap_len(struct perf_mmap *map); +struct perf_mmap *perf_mmap__new(bool overwrite, + libperf_unmap_cb_t unmap_cb); void perf_mmap__init(struct perf_mmap *map, bool overwrite, libperf_unmap_cb_t unmap_cb); int perf_mmap__mmap(struct perf_mmap *map, struct perf_mmap_param *mp, diff --git a/tools/perf/lib/mmap.c b/tools/perf/lib/mmap.c index ea46f325fa98..720dda578ed9 100644 --- a/tools/perf/lib/mmap.c +++ b/tools/perf/lib/mmap.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 #include <sys/mman.h> +#include <linux/zalloc.h> #include <internal/mmap.h> #include <internal/lib.h> @@ -12,6 +13,16 @@ void perf_mmap__init(struct perf_mmap *map, bool overwrite, refcount_set(&map->refcnt, 0); } +struct perf_mmap *perf_mmap__new(bool overwrite, libperf_unmap_cb_t unmap_cb) +{ + struct perf_mmap *map = zalloc(sizeof(*map)); + + if (map) + perf_mmap__init(map, overwrite, unmap_cb); + + return map; +} + size_t perf_mmap__mmap_len(struct perf_mmap *map) { return map->mask + 1 + page_size; -- 2.21.0