Lines Matching defs:filter

19 #include <linux/filter.h>
252 static inline void init_trace_uprobe_filter(struct trace_uprobe_filter *filter)
254 rwlock_init(&filter->rwlock);
255 filter->nr_systemwide = 0;
256 INIT_LIST_HEAD(&filter->perf_events);
259 static inline bool uprobe_filter_is_empty(struct trace_uprobe_filter *filter)
261 return !filter->nr_systemwide && list_empty(&filter->perf_events);
348 init_trace_uprobe_filter(tu->tp.event->filter);
1054 static int trace_uprobe_enable(struct trace_uprobe *tu, filter_func_t filter)
1058 tu->consumer.filter = filter;
1078 WARN_ON(!uprobe_filter_is_empty(tu->tp.event->filter));
1090 struct trace_event_file *file, filter_func_t filter)
1118 WARN_ON(!uprobe_filter_is_empty(tu->tp.event->filter));
1128 ret = trace_uprobe_enable(tu, filter);
1198 __uprobe_perf_filter(struct trace_uprobe_filter *filter, struct mm_struct *mm)
1202 if (filter->nr_systemwide)
1205 list_for_each_entry(event, &filter->perf_events, hw.tp_list) {
1214 trace_uprobe_filter_event(struct trace_uprobe_filter *filter,
1217 return __uprobe_perf_filter(filter, event->hw.target->mm);
1220 static bool trace_uprobe_filter_remove(struct trace_uprobe_filter *filter,
1225 write_lock(&filter->rwlock);
1228 done = filter->nr_systemwide ||
1230 trace_uprobe_filter_event(filter, event);
1232 filter->nr_systemwide--;
1233 done = filter->nr_systemwide;
1235 write_unlock(&filter->rwlock);
1240 /* This returns true if the filter always covers target mm */
1241 static bool trace_uprobe_filter_add(struct trace_uprobe_filter *filter,
1246 write_lock(&filter->rwlock);
1256 done = filter->nr_systemwide ||
1258 trace_uprobe_filter_event(filter, event);
1259 list_add(&event->hw.tp_list, &filter->perf_events);
1261 done = filter->nr_systemwide;
1262 filter->nr_systemwide++;
1264 write_unlock(&filter->rwlock);
1281 if (trace_uprobe_filter_remove(tu->tp.event->filter, event))
1305 if (trace_uprobe_filter_add(tu->tp.event->filter, event))
1322 struct trace_uprobe_filter *filter;
1327 filter = tu->tp.event->filter;
1329 read_lock(&filter->rwlock);
1330 ret = __uprobe_perf_filter(filter, mm);
1331 read_unlock(&filter->rwlock);