aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/map.h
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2010-04-27 20:17:50 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-04-27 20:17:50 -0400
commit23346f21b277e3aae5e9989e711a11cbe8133a45 (patch)
tree21f11a72cf21d4eb3d824f46e274dc8f9815d749 /tools/perf/util/map.h
parent462b04e28a7ec1339c892117c3f20a40e55d0e83 (diff)
perf tools: Rename "kernel_info" to "machine"
struct kernel_info and kerninfo__ are too vague, what they really describe are machines, virtual ones or hosts. There are more changes to introduce helpers to shorten function calls and to make more clear what is really being done, but I left that for subsequent patches. Cc: Avi Kivity <avi@redhat.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Zhang, Yanmin <yanmin_zhang@linux.intel.com> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/map.h')
-rw-r--r--tools/perf/util/map.h63
1 files changed, 28 insertions, 35 deletions
diff --git a/tools/perf/util/map.h b/tools/perf/util/map.h
index 30d38d634e09..4c1c2da704b2 100644
--- a/tools/perf/util/map.h
+++ b/tools/perf/util/map.h
@@ -5,6 +5,7 @@
5#include <linux/list.h> 5#include <linux/list.h>
6#include <linux/rbtree.h> 6#include <linux/rbtree.h>
7#include <stdio.h> 7#include <stdio.h>
8#include <stdbool.h>
8#include "types.h" 9#include "types.h"
9 10
10enum map_type { 11enum map_type {
@@ -19,7 +20,7 @@ extern const char *map_type__name[MAP__NR_TYPES];
19struct dso; 20struct dso;
20struct ref_reloc_sym; 21struct ref_reloc_sym;
21struct map_groups; 22struct map_groups;
22struct kernel_info; 23struct machine;
23 24
24struct map { 25struct map {
25 union { 26 union {
@@ -46,23 +47,23 @@ struct kmap {
46}; 47};
47 48
48struct map_groups { 49struct map_groups {
49 struct rb_root maps[MAP__NR_TYPES]; 50 struct rb_root maps[MAP__NR_TYPES];
50 struct list_head removed_maps[MAP__NR_TYPES]; 51 struct list_head removed_maps[MAP__NR_TYPES];
51 struct kernel_info *this_kerninfo; 52 struct machine *machine;
52}; 53};
53 54
54/* Native host kernel uses -1 as pid index in kernel_info */ 55/* Native host kernel uses -1 as pid index in machine */
55#define HOST_KERNEL_ID (-1) 56#define HOST_KERNEL_ID (-1)
56#define DEFAULT_GUEST_KERNEL_ID (0) 57#define DEFAULT_GUEST_KERNEL_ID (0)
57 58
58struct kernel_info { 59struct machine {
59 struct rb_node rb_node; 60 struct rb_node rb_node;
60 pid_t pid; 61 pid_t pid;
61 char *root_dir; 62 char *root_dir;
62 struct list_head dsos__user; 63 struct list_head user_dsos;
63 struct list_head dsos__kernel; 64 struct list_head kernel_dsos;
64 struct map_groups kmaps; 65 struct map_groups kmaps;
65 struct map *vmlinux_maps[MAP__NR_TYPES]; 66 struct map *vmlinux_maps[MAP__NR_TYPES];
66}; 67};
67 68
68static inline struct kmap *map__kmap(struct map *self) 69static inline struct kmap *map__kmap(struct map *self)
@@ -124,36 +125,30 @@ int map_groups__clone(struct map_groups *self,
124size_t map_groups__fprintf(struct map_groups *self, int verbose, FILE *fp); 125size_t map_groups__fprintf(struct map_groups *self, int verbose, FILE *fp);
125size_t map_groups__fprintf_maps(struct map_groups *self, int verbose, FILE *fp); 126size_t map_groups__fprintf_maps(struct map_groups *self, int verbose, FILE *fp);
126 127
127struct kernel_info *add_new_kernel_info(struct rb_root *kerninfo_root, 128typedef void (*machine__process_t)(struct machine *self, void *data);
128 pid_t pid, const char *root_dir); 129
129struct kernel_info *kerninfo__find(struct rb_root *kerninfo_root, pid_t pid); 130void machines__process(struct rb_root *self, machine__process_t process, void *data);
130struct kernel_info *kerninfo__findnew(struct rb_root *kerninfo_root, pid_t pid); 131struct machine *machines__add(struct rb_root *self, pid_t pid,
131struct kernel_info *kerninfo__findhost(struct rb_root *kerninfo_root); 132 const char *root_dir);
132char *kern_mmap_name(struct kernel_info *kerninfo, char *buff); 133struct machine *machines__find_host(struct rb_root *self);
134struct machine *machines__find(struct rb_root *self, pid_t pid);
135struct machine *machines__findnew(struct rb_root *self, pid_t pid);
136char *machine__mmap_name(struct machine *self, char *buff);
133 137
134/* 138/*
135 * Default guest kernel is defined by parameter --guestkallsyms 139 * Default guest kernel is defined by parameter --guestkallsyms
136 * and --guestmodules 140 * and --guestmodules
137 */ 141 */
138static inline int is_default_guest(struct kernel_info *kerninfo) 142static inline bool machine__is_default_guest(struct machine *self)
139{ 143{
140 if (!kerninfo) 144 return self ? self->pid == DEFAULT_GUEST_KERNEL_ID : false;
141 return 0;
142 return kerninfo->pid == DEFAULT_GUEST_KERNEL_ID;
143} 145}
144 146
145static inline int is_host_kernel(struct kernel_info *kerninfo) 147static inline bool machine__is_host(struct machine *self)
146{ 148{
147 if (!kerninfo) 149 return self ? self->pid == HOST_KERNEL_ID : false;
148 return 0;
149 return kerninfo->pid == HOST_KERNEL_ID;
150} 150}
151 151
152typedef void (*process_kernel_info)(struct kernel_info *kerninfo, void *data);
153void kerninfo__process_allkernels(struct rb_root *kerninfo_root,
154 process_kernel_info process,
155 void *data);
156
157static inline void map_groups__insert(struct map_groups *self, struct map *map) 152static inline void map_groups__insert(struct map_groups *self, struct map *map)
158{ 153{
159 maps__insert(&self->maps[map->type], map); 154 maps__insert(&self->maps[map->type], map);
@@ -197,10 +192,8 @@ int map_groups__fixup_overlappings(struct map_groups *self, struct map *map,
197 192
198struct map *map_groups__find_by_name(struct map_groups *self, 193struct map *map_groups__find_by_name(struct map_groups *self,
199 enum map_type type, const char *name); 194 enum map_type type, const char *name);
200struct map *map_groups__new_module(struct map_groups *self, 195struct map *map_groups__new_module(struct map_groups *self, u64 start,
201 u64 start, 196 const char *filename, struct machine *machine);
202 const char *filename,
203 struct kernel_info *kerninfo);
204 197
205void map_groups__flush(struct map_groups *self); 198void map_groups__flush(struct map_groups *self);
206 199