module.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef _PERF_MODULE_
  2. #define _PERF_MODULE_ 1
  3. #include <linux/types.h>
  4. #include "../types.h"
  5. #include <linux/list.h>
  6. #include <linux/rbtree.h>
  7. struct section {
  8. struct rb_node rb_node;
  9. u64 hash;
  10. u64 vma;
  11. char *name;
  12. char *path;
  13. };
  14. struct sec_dso {
  15. struct list_head node;
  16. struct rb_root secs;
  17. struct section *(*find_section)(struct sec_dso *, const char *name);
  18. char name[0];
  19. };
  20. struct module {
  21. struct rb_node rb_node;
  22. u64 hash;
  23. char *name;
  24. char *path;
  25. struct sec_dso *sections;
  26. int active;
  27. };
  28. struct mod_dso {
  29. struct list_head node;
  30. struct rb_root mods;
  31. struct module *(*find_module)(struct mod_dso *, const char *name);
  32. char name[0];
  33. };
  34. struct sec_dso *sec_dso__new_dso(const char *name);
  35. void sec_dso__delete_sections(struct sec_dso *self);
  36. void sec_dso__delete_self(struct sec_dso *self);
  37. size_t sec_dso__fprintf(struct sec_dso *self, FILE *fp);
  38. struct section *sec_dso__find_section(struct sec_dso *self, const char *name);
  39. struct mod_dso *mod_dso__new_dso(const char *name);
  40. void mod_dso__delete_modules(struct mod_dso *self);
  41. void mod_dso__delete_self(struct mod_dso *self);
  42. size_t mod_dso__fprintf(struct mod_dso *self, FILE *fp);
  43. struct module *mod_dso__find_module(struct mod_dso *self, const char *name);
  44. int mod_dso__load_modules(struct mod_dso *dso);
  45. #endif /* _PERF_MODULE_ */