Lines Matching refs:tp_funcs

251 static enum tp_func_state nr_func_state(const struct tracepoint_func *tp_funcs)  in nr_func_state()  argument
253 if (!tp_funcs) in nr_func_state()
255 if (!tp_funcs[1].func) in nr_func_state()
257 if (!tp_funcs[2].func) in nr_func_state()
262 static void tracepoint_update_call(struct tracepoint *tp, struct tracepoint_func *tp_funcs) in tracepoint_update_call() argument
269 if (nr_func_state(tp_funcs) == TP_FUNC_1) in tracepoint_update_call()
270 func = tp_funcs[0].func; in tracepoint_update_call()
281 struct tracepoint_func *old, *tp_funcs; in tracepoint_add_func() local
290 tp_funcs = rcu_dereference_protected(tp->funcs, in tracepoint_add_func()
292 old = func_add(&tp_funcs, func, prio); in tracepoint_add_func()
304 switch (nr_func_state(tp_funcs)) { in tracepoint_add_func()
312 tracepoint_update_call(tp, tp_funcs); in tracepoint_add_func()
314 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_add_func()
319 tracepoint_update_call(tp, tp_funcs); in tracepoint_add_func()
327 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_add_func()
332 if (tp_funcs[0].data != old[0].data) in tracepoint_add_func()
353 struct tracepoint_func *old, *tp_funcs; in tracepoint_remove_func() local
355 tp_funcs = rcu_dereference_protected(tp->funcs, in tracepoint_remove_func()
357 old = func_remove(&tp_funcs, func); in tracepoint_remove_func()
361 if (tp_funcs == old) in tracepoint_remove_func()
365 switch (nr_func_state(tp_funcs)) { in tracepoint_remove_func()
372 tracepoint_update_call(tp, tp_funcs); in tracepoint_remove_func()
382 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_remove_func()
390 if (tp_funcs[0].data != old[0].data) in tracepoint_remove_func()
394 tracepoint_update_call(tp, tp_funcs); in tracepoint_remove_func()
399 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_remove_func()
404 if (tp_funcs[0].data != old[0].data) in tracepoint_remove_func()