0001
0002 #ifndef __PERF_DSOS
0003 #define __PERF_DSOS
0004
0005 #include <stdbool.h>
0006 #include <stdio.h>
0007 #include <linux/list.h>
0008 #include <linux/rbtree.h>
0009 #include "rwsem.h"
0010
0011 struct dso;
0012 struct dso_id;
0013
0014
0015
0016
0017
0018 struct dsos {
0019 struct list_head head;
0020 struct rb_root root;
0021 struct rw_semaphore lock;
0022 };
0023
0024 void __dsos__add(struct dsos *dsos, struct dso *dso);
0025 void dsos__add(struct dsos *dsos, struct dso *dso);
0026 struct dso *__dsos__addnew(struct dsos *dsos, const char *name);
0027 struct dso *__dsos__find(struct dsos *dsos, const char *name, bool cmp_short);
0028
0029 struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, struct dso_id *id);
0030
0031 struct dso *__dsos__findnew_link_by_longname_id(struct rb_root *root, struct dso *dso,
0032 const char *name, struct dso_id *id);
0033
0034 bool __dsos__read_build_ids(struct list_head *head, bool with_hits);
0035
0036 size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp,
0037 bool (skip)(struct dso *dso, int parm), int parm);
0038 size_t __dsos__fprintf(struct list_head *head, FILE *fp);
0039
0040 #endif