Lines Matching refs:st_ops

324 int bpf_struct_ops_supported(const struct bpf_struct_ops *st_ops, u32 moff)  in bpf_struct_ops_supported()  argument
326 void *func_ptr = *(void **)(st_ops->cfi_stubs + moff); in bpf_struct_ops_supported()
335 struct bpf_struct_ops *st_ops = st_ops_desc->st_ops; in bpf_struct_ops_desc_init() local
344 if (strlen(st_ops->name) + VALUE_PREFIX_LEN >= in bpf_struct_ops_desc_init()
347 st_ops->name); in bpf_struct_ops_desc_init()
350 sprintf(value_name, "%s%s", VALUE_PREFIX, st_ops->name); in bpf_struct_ops_desc_init()
352 if (!st_ops->cfi_stubs) { in bpf_struct_ops_desc_init()
353 pr_warn("struct_ops for %s has no cfi_stubs\n", st_ops->name); in bpf_struct_ops_desc_init()
357 type_id = btf_find_by_name_kind(btf, st_ops->name, in bpf_struct_ops_desc_init()
361 st_ops->name, btf_get_name(btf)); in bpf_struct_ops_desc_init()
367 btf_type_vlen(t), st_ops->name); in bpf_struct_ops_desc_init()
401 st_ops->name); in bpf_struct_ops_desc_init()
408 mname, st_ops->name); in bpf_struct_ops_desc_init()
415 st_ops->name); in bpf_struct_ops_desc_init()
427 if (!func_proto || bpf_struct_ops_supported(st_ops, moff)) in bpf_struct_ops_desc_init()
434 mname, st_ops->name); in bpf_struct_ops_desc_init()
442 &st_ops->func_models[i])) { in bpf_struct_ops_desc_init()
444 mname, st_ops->name); in bpf_struct_ops_desc_init()
449 stub_func_addr = *(void **)(st_ops->cfi_stubs + moff); in bpf_struct_ops_desc_init()
450 err = prepare_arg_info(btf, st_ops->name, mname, in bpf_struct_ops_desc_init()
457 if (st_ops->init(btf)) { in bpf_struct_ops_desc_init()
459 st_ops->name); in bpf_struct_ops_desc_init()
681 const struct bpf_struct_ops *st_ops = st_ops_desc->st_ops; in bpf_struct_ops_map_update_elem() local
753 err = st_ops->init_member(t, member, kdata, udata); in bpf_struct_ops_map_update_elem()
823 &st_ops->func_models[i], in bpf_struct_ops_map_update_elem()
824 *(void **)(st_ops->cfi_stubs + moff), in bpf_struct_ops_map_update_elem()
848 if (st_ops->validate) { in bpf_struct_ops_map_update_elem()
849 err = st_ops->validate(kdata); in bpf_struct_ops_map_update_elem()
870 err = st_ops->reg(kdata, NULL); in bpf_struct_ops_map_update_elem()
921 st_map->st_ops_desc->st_ops->unreg(&st_map->kvalue.data, NULL); in bpf_struct_ops_map_delete_elem()
981 module_put(st_map->st_ops_desc->st_ops->owner); in bpf_struct_ops_map_free()
1196 st_map->st_ops_desc->st_ops->unreg(&st_map->kvalue.data, link); in bpf_struct_ops_map_link_dealloc()
1245 if (!st_map->st_ops_desc->st_ops->update) in bpf_struct_ops_map_link_update()
1267 err = st_map->st_ops_desc->st_ops->update(st_map->kvalue.data, old_st_map->kvalue.data, link); in bpf_struct_ops_map_link_update()
1296 st_map->st_ops_desc->st_ops->unreg(&st_map->kvalue.data, link); in bpf_struct_ops_map_link_detach()
1366 err = st_map->st_ops_desc->st_ops->reg(st_map->kvalue.data, &link->link); in bpf_struct_ops_link_create()