blob: ddf5ae212c2ff29720b267001b7915ed43bab197 [file] [log] [blame]
Masami Hiramatsu92f6c722015-07-15 18:14:07 +09001#ifndef __PROBE_FILE_H
2#define __PROBE_FILE_H
3
4#include "strlist.h"
5#include "strfilter.h"
6#include "probe-event.h"
7
Masami Hiramatsudd975492016-06-15 12:28:30 +09008/* Cache of probe definitions */
9struct probe_cache_entry {
10 struct list_head node;
Masami Hiramatsu6430a942016-07-01 17:04:10 +090011 bool sdt;
Masami Hiramatsudd975492016-06-15 12:28:30 +090012 struct perf_probe_event pev;
13 char *spev;
14 struct strlist *tevlist;
15};
16
17struct probe_cache {
18 int fd;
19 struct list_head entries;
20};
21
Masami Hiramatsu92f6c722015-07-15 18:14:07 +090022#define PF_FL_UPROBE 1
23#define PF_FL_RW 2
24
25int probe_file__open(int flag);
26int probe_file__open_both(int *kfd, int *ufd, int flag);
27struct strlist *probe_file__get_namelist(int fd);
28struct strlist *probe_file__get_rawlist(int fd);
29int probe_file__add_event(int fd, struct probe_trace_event *tev);
30int probe_file__del_events(int fd, struct strfilter *filter);
Namhyung Kime607f142015-09-04 21:16:03 +090031int probe_file__get_events(int fd, struct strfilter *filter,
32 struct strlist *plist);
33int probe_file__del_strlist(int fd, struct strlist *namelist);
34
Masami Hiramatsudd975492016-06-15 12:28:30 +090035struct probe_cache *probe_cache__new(const char *target);
36int probe_cache__add_entry(struct probe_cache *pcache,
37 struct perf_probe_event *pev,
38 struct probe_trace_event *tevs, int ntevs);
Masami Hiramatsu6430a942016-07-01 17:04:10 +090039int probe_cache__scan_sdt(struct probe_cache *pcache, const char *pathname);
Masami Hiramatsudd975492016-06-15 12:28:30 +090040int probe_cache__commit(struct probe_cache *pcache);
41void probe_cache__purge(struct probe_cache *pcache);
42void probe_cache__delete(struct probe_cache *pcache);
Masami Hiramatsu4a0f65c2016-07-01 17:03:36 +090043int probe_cache__filter_purge(struct probe_cache *pcache,
44 struct strfilter *filter);
Masami Hiramatsubc062232016-07-01 17:03:12 +090045struct probe_cache_entry *probe_cache__find(struct probe_cache *pcache,
46 struct perf_probe_event *pev);
47struct probe_cache_entry *probe_cache__find_by_name(struct probe_cache *pcache,
48 const char *group, const char *event);
Masami Hiramatsu1f3736c2016-07-01 17:03:26 +090049int probe_cache__show_all_caches(struct strfilter *filter);
Masami Hiramatsu92f6c722015-07-15 18:14:07 +090050#endif