]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - tools/perf/util/machine.h
perf machine: Add machine__is() to identify machine arch
[linux.git] / tools / perf / util / machine.h
index 66cc200ef86f20282cba3732cd0635cd13f05931..b31d33b5aa2aa4e2cdddfd053c455b969fe36b23 100644 (file)
@@ -49,7 +49,7 @@ struct machine {
        struct perf_env   *env;
        struct dsos       dsos;
        struct map_groups kmaps;
-       struct map        *vmlinux_maps[MAP__NR_TYPES];
+       struct map        *vmlinux_map;
        u64               kernel_start;
        pid_t             *current_tid;
        union { /* Tool specific area */
@@ -64,16 +64,22 @@ static inline struct threads *machine__threads(struct machine *machine, pid_t ti
        return &machine->threads[(unsigned int)tid % THREADS__TABLE_SIZE];
 }
 
+/*
+ * The main kernel (vmlinux) map
+ */
 static inline
-struct map *__machine__kernel_map(struct machine *machine, enum map_type type)
+struct map *machine__kernel_map(struct machine *machine)
 {
-       return machine->vmlinux_maps[type];
+       return machine->vmlinux_map;
 }
 
+/*
+ * kernel (the one returned by machine__kernel_map()) plus kernel modules maps
+ */
 static inline
-struct map *machine__kernel_map(struct machine *machine)
+struct maps *machine__kernel_maps(struct machine *machine)
 {
-       return __machine__kernel_map(machine, MAP__FUNCTION);
+       return &machine->kmaps.maps;
 }
 
 int machine__get_kernel_start(struct machine *machine);
@@ -182,6 +188,8 @@ static inline bool machine__is_host(struct machine *machine)
        return machine ? machine->pid == HOST_KERNEL_ID : false;
 }
 
+bool machine__is(struct machine *machine, const char *arch);
+
 struct thread *__machine__findnew_thread(struct machine *machine, pid_t pid, pid_t tid);
 struct thread *machine__findnew_thread(struct machine *machine, pid_t pid, pid_t tid);
 
@@ -190,44 +198,27 @@ struct dso *machine__findnew_dso(struct machine *machine, const char *filename);
 size_t machine__fprintf(struct machine *machine, FILE *fp);
 
 static inline
-struct symbol *machine__find_kernel_symbol(struct machine *machine,
-                                          enum map_type type, u64 addr,
+struct symbol *machine__find_kernel_symbol(struct machine *machine, u64 addr,
                                           struct map **mapp)
 {
-       return map_groups__find_symbol(&machine->kmaps, type, addr, mapp);
+       return map_groups__find_symbol(&machine->kmaps, addr, mapp);
 }
 
 static inline
 struct symbol *machine__find_kernel_symbol_by_name(struct machine *machine,
-                                                  enum map_type type, const char *name,
+                                                  const char *name,
                                                   struct map **mapp)
 {
-       return map_groups__find_symbol_by_name(&machine->kmaps, type, name, mapp);
-}
-
-static inline
-struct symbol *machine__find_kernel_function(struct machine *machine, u64 addr,
-                                            struct map **mapp)
-{
-       return machine__find_kernel_symbol(machine, MAP__FUNCTION, addr,
-                                          mapp);
-}
-
-static inline
-struct symbol *machine__find_kernel_function_by_name(struct machine *machine,
-                                                    const char *name,
-                                                    struct map **mapp)
-{
-       return map_groups__find_function_by_name(&machine->kmaps, name, mapp);
+       return map_groups__find_symbol_by_name(&machine->kmaps, name, mapp);
 }
 
 struct map *machine__findnew_module_map(struct machine *machine, u64 start,
                                        const char *filename);
 int arch__fix_module_text_start(u64 *start, const char *name);
 
-int machine__load_kallsyms(struct machine *machine, const char *filename,
-                          enum map_type type);
-int machine__load_vmlinux_path(struct machine *machine, enum map_type type);
+int machine__load_kallsyms(struct machine *machine, const char *filename);
+
+int machine__load_vmlinux_path(struct machine *machine);
 
 size_t machine__fprintf_dsos_buildid(struct machine *machine, FILE *fp,
                                     bool (skip)(struct dso *dso, int parm), int parm);