Lines Matching full:tab
1666 struct btf_kfunc_set_tab *tab = btf->kfunc_set_tab; in btf_free_kfunc_set_tab() local
1669 if (!tab) in btf_free_kfunc_set_tab()
1671 for (hook = 0; hook < ARRAY_SIZE(tab->sets); hook++) in btf_free_kfunc_set_tab()
1672 kfree(tab->sets[hook]); in btf_free_kfunc_set_tab()
1673 kfree(tab); in btf_free_kfunc_set_tab()
1679 struct btf_id_dtor_kfunc_tab *tab = btf->dtor_kfunc_tab; in btf_free_dtor_kfunc_tab() local
1681 if (!tab) in btf_free_dtor_kfunc_tab()
1683 kfree(tab); in btf_free_dtor_kfunc_tab()
1687 static void btf_struct_metas_free(struct btf_struct_metas *tab) in btf_struct_metas_free() argument
1691 if (!tab) in btf_struct_metas_free()
1693 for (i = 0; i < tab->cnt; i++) in btf_struct_metas_free()
1694 btf_record_free(tab->types[i].record); in btf_struct_metas_free()
1695 kfree(tab); in btf_struct_metas_free()
1700 struct btf_struct_metas *tab = btf->struct_meta_tab; in btf_free_struct_meta_tab() local
1702 btf_struct_metas_free(tab); in btf_free_struct_meta_tab()
1708 struct btf_struct_ops_tab *tab = btf->struct_ops_tab; in btf_free_struct_ops_tab() local
1711 if (!tab) in btf_free_struct_ops_tab()
1714 for (i = 0; i < tab->cnt; i++) in btf_free_struct_ops_tab()
1715 bpf_struct_ops_desc_release(&tab->ops[i]); in btf_free_struct_ops_tab()
1717 kfree(tab); in btf_free_struct_ops_tab()
5542 struct btf_struct_metas *tab = NULL; in btf_parse_struct_metas() local
5628 tab_cnt = tab ? tab->cnt : 0; in btf_parse_struct_metas()
5629 new_tab = krealloc(tab, offsetof(struct btf_struct_metas, types[tab_cnt + 1]), in btf_parse_struct_metas()
5635 if (!tab) in btf_parse_struct_metas()
5637 tab = new_tab; in btf_parse_struct_metas()
5639 type = &tab->types[tab->cnt]; in btf_parse_struct_metas()
5650 tab->cnt++; in btf_parse_struct_metas()
5653 return tab; in btf_parse_struct_metas()
5655 btf_struct_metas_free(tab); in btf_parse_struct_metas()
5663 struct btf_struct_metas *tab; in btf_find_struct_meta() local
5666 tab = btf->struct_meta_tab; in btf_find_struct_meta()
5667 if (!tab) in btf_find_struct_meta()
5669 return bsearch(&btf_id, tab->types, tab->cnt, sizeof(tab->types[0]), btf_id_cmp_func); in btf_find_struct_meta()
8373 struct btf_kfunc_set_tab *tab; in btf_populate_kfunc_set() local
8386 tab = btf->kfunc_set_tab; in btf_populate_kfunc_set()
8388 if (tab && add_filter) { in btf_populate_kfunc_set()
8391 hook_filter = &tab->hook_filters[hook]; in btf_populate_kfunc_set()
8405 if (!tab) { in btf_populate_kfunc_set()
8406 tab = kzalloc(sizeof(*tab), GFP_KERNEL | __GFP_NOWARN); in btf_populate_kfunc_set()
8407 if (!tab) in btf_populate_kfunc_set()
8409 btf->kfunc_set_tab = tab; in btf_populate_kfunc_set()
8412 set = tab->sets[hook]; in btf_populate_kfunc_set()
8444 set = krealloc(tab->sets[hook], in btf_populate_kfunc_set()
8453 if (!tab->sets[hook]) in btf_populate_kfunc_set()
8455 tab->sets[hook] = set; in btf_populate_kfunc_set()
8468 hook_filter = &tab->hook_filters[hook]; in btf_populate_kfunc_set()
8633 struct btf_id_dtor_kfunc_tab *tab = btf->dtor_kfunc_tab; in btf_find_dtor_kfunc() local
8636 if (!tab) in btf_find_dtor_kfunc()
8638 /* Even though the size of tab->dtors[0] is > sizeof(u32), we only need in btf_find_dtor_kfunc()
8642 dtor = bsearch(&btf_id, tab->dtors, tab->cnt, sizeof(tab->dtors[0]), btf_id_cmp_func); in btf_find_dtor_kfunc()
8689 struct btf_id_dtor_kfunc_tab *tab; in register_btf_id_dtor_kfuncs() local
8711 tab = btf->dtor_kfunc_tab; in register_btf_id_dtor_kfuncs()
8713 if (WARN_ON_ONCE(tab && btf_is_module(btf))) { in register_btf_id_dtor_kfuncs()
8718 tab_cnt = tab ? tab->cnt : 0; in register_btf_id_dtor_kfuncs()
8729 tab = krealloc(btf->dtor_kfunc_tab, in register_btf_id_dtor_kfuncs()
8732 if (!tab) { in register_btf_id_dtor_kfuncs()
8738 tab->cnt = 0; in register_btf_id_dtor_kfuncs()
8739 btf->dtor_kfunc_tab = tab; in register_btf_id_dtor_kfuncs()
8741 memcpy(tab->dtors + tab->cnt, dtors, add_cnt * sizeof(tab->dtors[0])); in register_btf_id_dtor_kfuncs()
8745 tab->dtors[i].btf_id = btf_relocate_id(btf, tab->dtors[i].btf_id); in register_btf_id_dtor_kfuncs()
8746 tab->dtors[i].kfunc_btf_id = btf_relocate_id(btf, tab->dtors[i].kfunc_btf_id); in register_btf_id_dtor_kfuncs()
8749 tab->cnt += add_cnt; in register_btf_id_dtor_kfuncs()
8751 sort(tab->dtors, tab->cnt, sizeof(tab->dtors[0]), btf_id_cmp_func, NULL); in register_btf_id_dtor_kfuncs()
9283 struct btf_struct_ops_tab *tab, *new_tab; in btf_add_struct_ops() local
9286 tab = btf->struct_ops_tab; in btf_add_struct_ops()
9287 if (!tab) { in btf_add_struct_ops()
9288 tab = kzalloc(offsetof(struct btf_struct_ops_tab, ops[4]), in btf_add_struct_ops()
9290 if (!tab) in btf_add_struct_ops()
9292 tab->capacity = 4; in btf_add_struct_ops()
9293 btf->struct_ops_tab = tab; in btf_add_struct_ops()
9296 for (i = 0; i < tab->cnt; i++) in btf_add_struct_ops()
9297 if (tab->ops[i].st_ops == st_ops) in btf_add_struct_ops()
9300 if (tab->cnt == tab->capacity) { in btf_add_struct_ops()
9301 new_tab = krealloc(tab, in btf_add_struct_ops()
9303 ops[tab->capacity * 2]), in btf_add_struct_ops()
9307 tab = new_tab; in btf_add_struct_ops()
9308 tab->capacity *= 2; in btf_add_struct_ops()
9309 btf->struct_ops_tab = tab; in btf_add_struct_ops()
9312 tab->ops[btf->struct_ops_tab->cnt].st_ops = st_ops; in btf_add_struct_ops()
9314 err = bpf_struct_ops_desc_init(&tab->ops[btf->struct_ops_tab->cnt], btf, log); in btf_add_struct_ops()