brintos

brintos / linux-shallow public Read only

0
0
Text · 1.4 KiB · a267749 Raw
53 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __PERF_DSOS3#define __PERF_DSOS4 5#include <stdbool.h>6#include <stdio.h>7#include <linux/list.h>8#include <linux/rbtree.h>9#include "rwsem.h"10 11struct dso;12struct dso_id;13struct kmod_path;14struct machine;15 16/*17 * Collection of DSOs as an array for iteration speed, but sorted for O(n)18 * lookup.19 */20struct dsos {21	struct rw_semaphore lock;22	struct dso **dsos;23	unsigned int cnt;24	unsigned int allocated;25	bool sorted;26};27 28void dsos__init(struct dsos *dsos);29void dsos__exit(struct dsos *dsos);30 31int __dsos__add(struct dsos *dsos, struct dso *dso);32int dsos__add(struct dsos *dsos, struct dso *dso);33struct dso *dsos__find(struct dsos *dsos, const char *name, bool cmp_short);34 35struct dso *dsos__findnew_id(struct dsos *dsos, const char *name, const struct dso_id *id);36 37bool dsos__read_build_ids(struct dsos *dsos, bool with_hits);38 39size_t dsos__fprintf_buildid(struct dsos *dsos, FILE *fp,40			       bool (skip)(struct dso *dso, int parm), int parm);41size_t dsos__fprintf(struct dsos *dsos, FILE *fp);42 43int dsos__hit_all(struct dsos *dsos);44 45struct dso *dsos__findnew_module_dso(struct dsos *dsos, struct machine *machine,46				     struct kmod_path *m, const char *filename);47 48struct dso *dsos__find_kernel_dso(struct dsos *dsos);49 50int dsos__for_each_dso(struct dsos *dsos, int (*cb)(struct dso *dso, void *data), void *data);51 52#endif /* __PERF_DSOS */53