Contributors: 11
Author |
Tokens |
Token Proportion |
Commits |
Commit Proportion |
Arnaldo Carvalho de Melo |
106 |
49.30% |
20 |
58.82% |
Jiri Olsa |
59 |
27.44% |
3 |
8.82% |
Waiman Long |
26 |
12.09% |
3 |
8.82% |
Namhyung Kim |
6 |
2.79% |
1 |
2.94% |
Li Zefan |
6 |
2.79% |
1 |
2.94% |
Yanmin Zhang |
4 |
1.86% |
1 |
2.94% |
Ingo Molnar |
2 |
0.93% |
1 |
2.94% |
Steven Rostedt |
2 |
0.93% |
1 |
2.94% |
Frédéric Weisbecker |
2 |
0.93% |
1 |
2.94% |
Greg Kroah-Hartman |
1 |
0.47% |
1 |
2.94% |
Greg Price |
1 |
0.47% |
1 |
2.94% |
Total |
215 |
|
34 |
|
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __PERF_DSOS
#define __PERF_DSOS
#include <stdbool.h>
#include <stdio.h>
#include <linux/list.h>
#include <linux/rbtree.h>
#include "rwsem.h"
struct dso;
struct dso_id;
/*
* DSOs are put into both a list for fast iteration and rbtree for fast
* long name lookup.
*/
struct dsos {
struct list_head head;
struct rb_root root; /* rbtree root sorted by long name */
struct rw_semaphore lock;
};
void __dsos__add(struct dsos *dsos, struct dso *dso);
void dsos__add(struct dsos *dsos, struct dso *dso);
struct dso *__dsos__addnew(struct dsos *dsos, const char *name);
struct dso *__dsos__find(struct dsos *dsos, const char *name, bool cmp_short);
struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, struct dso_id *id);
struct dso *__dsos__findnew_link_by_longname_id(struct rb_root *root, struct dso *dso,
const char *name, struct dso_id *id);
bool __dsos__read_build_ids(struct list_head *head, bool with_hits);
size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp,
bool (skip)(struct dso *dso, int parm), int parm);
size_t __dsos__fprintf(struct list_head *head, FILE *fp);
#endif /* __PERF_DSOS */