Lines Matching defs:func
90 struct klp_func *func;
92 klp_for_each_func(obj, func) {
93 if ((strcmp(old_func->old_name, func->old_name) == 0) &&
94 (old_func->old_sympos == func->old_sympos)) {
95 return func;
480 struct klp_func *func);
507 static void klp_free_func_nop(struct klp_func *func)
509 kfree(func->old_name);
510 kfree(func);
516 struct klp_func *func;
518 func = kzalloc(sizeof(*func), GFP_KERNEL);
519 if (!func)
523 func->old_name = kstrdup(old_func->old_name, GFP_KERNEL);
524 if (!func->old_name) {
525 kfree(func);
530 klp_init_func_early(obj, func);
532 * func->new_func is same as func->old_func. These addresses are
535 func->old_sympos = old_func->old_sympos;
536 func->nop = true;
538 return func;
545 struct klp_func *func, *old_func;
556 func = klp_find_func(obj, old_func);
557 if (func)
560 func = klp_alloc_func_nop(old_func, obj);
561 if (!func)
623 struct klp_func *func;
625 func = container_of(kobj, struct klp_func, kobj);
627 if (func->nop)
628 klp_free_func_nop(func);
638 struct klp_func *func, *tmp_func;
640 klp_for_each_func_safe(obj, func, tmp_func) {
641 if (nops_only && !func->nop)
644 list_del(&func->node);
645 kobject_put(&func->kobj);
652 struct klp_func *func;
656 klp_for_each_func(obj, func) {
657 func->old_func = NULL;
659 if (func->nop)
660 func->new_func = NULL;
758 static int klp_init_func(struct klp_object *obj, struct klp_func *func)
760 if (!func->old_name)
767 if (!func->new_func && !func->nop)
770 if (strlen(func->old_name) >= KSYM_NAME_LEN)
773 INIT_LIST_HEAD(&func->stack_node);
774 func->patched = false;
775 func->transition = false;
782 return kobject_add(&func->kobj, &obj->kobj, "%s,%lu",
783 func->old_name,
784 func->old_sympos ? func->old_sympos : 1);
827 struct klp_func *func;
842 klp_for_each_func(obj, func) {
843 ret = klp_find_object_symbol(obj->name, func->old_name,
844 func->old_sympos,
845 (unsigned long *)&func->old_func);
849 ret = kallsyms_lookup_size_offset((unsigned long)func->old_func,
850 &func->old_size, NULL);
853 func->old_name);
857 if (func->nop)
858 func->new_func = func->old_func;
860 ret = kallsyms_lookup_size_offset((unsigned long)func->new_func,
861 &func->new_size, NULL);
864 func->old_name);
874 struct klp_func *func;
891 klp_for_each_func(obj, func) {
892 ret = klp_init_func(obj, func);
904 struct klp_func *func)
906 kobject_init(&func->kobj, &klp_ktype_func);
907 list_add_tail(&func->node, &obj->func_list);
921 struct klp_func *func;
934 klp_for_each_func_static(obj, func) {
935 klp_init_func_early(obj, func);
983 * Enforce the order of the func->transition writes in
987 * this ensures the handler sees that func->transition is set.
1014 * Enforce the order of the func->transition writes in
1017 * func->transition updates before the handler is registered and the