• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /* SPDX-License-Identifier: GPL-2.0 */
2  #ifndef __LIBPERF_INTERNAL_XYARRAY_H
3  #define __LIBPERF_INTERNAL_XYARRAY_H
4  
5  #include <linux/compiler.h>
6  #include <sys/types.h>
7  
8  struct xyarray {
9  	size_t row_size;
10  	size_t entry_size;
11  	size_t entries;
12  	size_t max_x;
13  	size_t max_y;
14  	char contents[] __aligned(8);
15  };
16  
17  struct xyarray *xyarray__new(int xlen, int ylen, size_t entry_size);
18  void xyarray__delete(struct xyarray *xy);
19  void xyarray__reset(struct xyarray *xy);
20  
xyarray__entry(struct xyarray * xy,int x,int y)21  static inline void *xyarray__entry(struct xyarray *xy, int x, int y)
22  {
23  	return &xy->contents[x * xy->row_size + y * xy->entry_size];
24  }
25  
xyarray__max_y(struct xyarray * xy)26  static inline int xyarray__max_y(struct xyarray *xy)
27  {
28  	return xy->max_y;
29  }
30  
xyarray__max_x(struct xyarray * xy)31  static inline int xyarray__max_x(struct xyarray *xy)
32  {
33  	return xy->max_x;
34  }
35  
36  #endif /* __LIBPERF_INTERNAL_XYARRAY_H */
37