diff options
Diffstat (limited to 'tools/perf/util/mem-info.h')
-rw-r--r-- | tools/perf/util/mem-info.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/tools/perf/util/mem-info.h b/tools/perf/util/mem-info.h index bb7d8375d73c..0f68e29f311b 100644 --- a/tools/perf/util/mem-info.h +++ b/tools/perf/util/mem-info.h @@ -4,9 +4,10 @@ #include <linux/refcount.h> #include <linux/perf_event.h> +#include <internal/rc_check.h> #include "map_symbol.h" -struct mem_info { +DECLARE_RC_STRUCT(mem_info) { struct addr_map_symbol iaddr; struct addr_map_symbol daddr; union perf_mem_data_src data_src; @@ -25,4 +26,29 @@ static inline void __mem_info__zput(struct mem_info **mi) #define mem_info__zput(mi) __mem_info__zput(&mi) +static inline struct addr_map_symbol *mem_info__iaddr(struct mem_info *mi) +{ + return &RC_CHK_ACCESS(mi)->iaddr; +} + +static inline struct addr_map_symbol *mem_info__daddr(struct mem_info *mi) +{ + return &RC_CHK_ACCESS(mi)->daddr; +} + +static inline union perf_mem_data_src *mem_info__data_src(struct mem_info *mi) +{ + return &RC_CHK_ACCESS(mi)->data_src; +} + +static inline const union perf_mem_data_src *mem_info__const_data_src(const struct mem_info *mi) +{ + return &RC_CHK_ACCESS(mi)->data_src; +} + +static inline refcount_t *mem_info__refcnt(struct mem_info *mi) +{ + return &RC_CHK_ACCESS(mi)->refcnt; +} + #endif /* __PERF_MEM_INFO_H */ |