FILE
mem-info.h
File preview with syntax highlighting.
linux-6.19.14/tools/perf/util/mem-info.h
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef __PERF_MEM_INFO_H 3#define __PERF_MEM_INFO_H 4 5#include <linux/refcount.h> 6#include <linux/perf_event.h> 7#include <internal/rc_check.h> 8#include "map_symbol.h" 9 10DECLARE_RC_STRUCT(mem_info) { 11 struct addr_map_symbol iaddr; 12 struct addr_map_symbol daddr; 13 union perf_mem_data_src data_src; 14 refcount_t refcnt; 15}; 16 17struct mem_info *mem_info__new(void); 18struct mem_info *mem_info__clone(struct mem_info *mi); 19struct mem_info *mem_info__get(struct mem_info *mi); 20void mem_info__put(struct mem_info *mi); 21 22static inline void __mem_info__zput(struct mem_info **mi) 23{ 24 mem_info__put(*mi); 25 *mi = NULL; 26} 27 28#define mem_info__zput(mi) __mem_info__zput(&mi) 29 30static inline struct addr_map_symbol *mem_info__iaddr(struct mem_info *mi) 31{ 32 return &RC_CHK_ACCESS(mi)->iaddr; 33} 34 35static inline struct addr_map_symbol *mem_info__daddr(struct mem_info *mi) 36{ 37 return &RC_CHK_ACCESS(mi)->daddr; 38} 39 40static inline union perf_mem_data_src *mem_info__data_src(struct mem_info *mi) 41{ 42 return &RC_CHK_ACCESS(mi)->data_src; 43} 44 45static inline const union perf_mem_data_src *mem_info__const_data_src(const struct mem_info *mi) 46{ 47 return &RC_CHK_ACCESS(mi)->data_src; 48} 49 50static inline refcount_t *mem_info__refcnt(struct mem_info *mi) 51{ 52 return &RC_CHK_ACCESS(mi)->refcnt; 53} 54 55#endif /* __PERF_MEM_INFO_H */
~/
Read-only file preview.