Lines Matching refs:tp_funcs
318 static enum tp_func_state nr_func_state(const struct tracepoint_func *tp_funcs) in nr_func_state() argument
320 if (!tp_funcs) in nr_func_state()
322 if (!tp_funcs[1].func) in nr_func_state()
324 if (!tp_funcs[2].func) in nr_func_state()
329 static void tracepoint_update_call(struct tracepoint *tp, struct tracepoint_func *tp_funcs) in tracepoint_update_call() argument
336 if (nr_func_state(tp_funcs) == TP_FUNC_1) in tracepoint_update_call()
337 func = tp_funcs[0].func; in tracepoint_update_call()
348 struct tracepoint_func *old, *tp_funcs; in tracepoint_add_func() local
357 tp_funcs = rcu_dereference_protected(tp->funcs, in tracepoint_add_func()
359 old = func_add(&tp_funcs, func, prio); in tracepoint_add_func()
371 switch (nr_func_state(tp_funcs)) { in tracepoint_add_func()
379 tracepoint_update_call(tp, tp_funcs); in tracepoint_add_func()
381 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_add_func()
386 tracepoint_update_call(tp, tp_funcs); in tracepoint_add_func()
394 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_add_func()
399 if (tp_funcs[0].data != old[0].data) in tracepoint_add_func()
420 struct tracepoint_func *old, *tp_funcs; in tracepoint_remove_func() local
422 tp_funcs = rcu_dereference_protected(tp->funcs, in tracepoint_remove_func()
424 old = func_remove(&tp_funcs, func); in tracepoint_remove_func()
428 if (tp_funcs == old) in tracepoint_remove_func()
432 switch (nr_func_state(tp_funcs)) { in tracepoint_remove_func()
440 tracepoint_update_call(tp, tp_funcs); in tracepoint_remove_func()
450 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_remove_func()
458 if (tp_funcs[0].data != old[0].data) in tracepoint_remove_func()
462 tracepoint_update_call(tp, tp_funcs); in tracepoint_remove_func()
467 rcu_assign_pointer(tp->funcs, tp_funcs); in tracepoint_remove_func()
472 if (tp_funcs[0].data != old[0].data) in tracepoint_remove_func()