Lines Matching full:tab

1667 	struct btf_kfunc_set_tab *tab = btf->kfunc_set_tab;  in btf_free_kfunc_set_tab()  local
1670 if (!tab) in btf_free_kfunc_set_tab()
1672 for (hook = 0; hook < ARRAY_SIZE(tab->sets); hook++) in btf_free_kfunc_set_tab()
1673 kfree(tab->sets[hook]); in btf_free_kfunc_set_tab()
1674 kfree(tab); in btf_free_kfunc_set_tab()
1680 struct btf_id_dtor_kfunc_tab *tab = btf->dtor_kfunc_tab; in btf_free_dtor_kfunc_tab() local
1682 if (!tab) in btf_free_dtor_kfunc_tab()
1684 kfree(tab); in btf_free_dtor_kfunc_tab()
1688 static void btf_struct_metas_free(struct btf_struct_metas *tab) in btf_struct_metas_free() argument
1692 if (!tab) in btf_struct_metas_free()
1694 for (i = 0; i < tab->cnt; i++) in btf_struct_metas_free()
1695 btf_record_free(tab->types[i].record); in btf_struct_metas_free()
1696 kfree(tab); in btf_struct_metas_free()
1701 struct btf_struct_metas *tab = btf->struct_meta_tab; in btf_free_struct_meta_tab() local
1703 btf_struct_metas_free(tab); in btf_free_struct_meta_tab()
1709 struct btf_struct_ops_tab *tab = btf->struct_ops_tab; in btf_free_struct_ops_tab() local
1712 if (!tab) in btf_free_struct_ops_tab()
1715 for (i = 0; i < tab->cnt; i++) in btf_free_struct_ops_tab()
1716 bpf_struct_ops_desc_release(&tab->ops[i]); in btf_free_struct_ops_tab()
1718 kfree(tab); in btf_free_struct_ops_tab()
5563 struct btf_struct_metas *tab = NULL; in btf_parse_struct_metas() local
5649 tab_cnt = tab ? tab->cnt : 0; in btf_parse_struct_metas()
5650 new_tab = krealloc(tab, offsetof(struct btf_struct_metas, types[tab_cnt + 1]), in btf_parse_struct_metas()
5656 if (!tab) in btf_parse_struct_metas()
5658 tab = new_tab; in btf_parse_struct_metas()
5660 type = &tab->types[tab->cnt]; in btf_parse_struct_metas()
5671 tab->cnt++; in btf_parse_struct_metas()
5674 return tab; in btf_parse_struct_metas()
5676 btf_struct_metas_free(tab); in btf_parse_struct_metas()
5684 struct btf_struct_metas *tab; in btf_find_struct_meta() local
5687 tab = btf->struct_meta_tab; in btf_find_struct_meta()
5688 if (!tab) in btf_find_struct_meta()
5690 return bsearch(&btf_id, tab->types, tab->cnt, sizeof(tab->types[0]), btf_id_cmp_func); in btf_find_struct_meta()
8494 struct btf_kfunc_set_tab *tab; in btf_populate_kfunc_set() local
8507 tab = btf->kfunc_set_tab; in btf_populate_kfunc_set()
8509 if (tab && add_filter) { in btf_populate_kfunc_set()
8512 hook_filter = &tab->hook_filters[hook]; in btf_populate_kfunc_set()
8526 if (!tab) { in btf_populate_kfunc_set()
8527 tab = kzalloc(sizeof(*tab), GFP_KERNEL | __GFP_NOWARN); in btf_populate_kfunc_set()
8528 if (!tab) in btf_populate_kfunc_set()
8530 btf->kfunc_set_tab = tab; in btf_populate_kfunc_set()
8533 set = tab->sets[hook]; in btf_populate_kfunc_set()
8565 set = krealloc(tab->sets[hook], in btf_populate_kfunc_set()
8574 if (!tab->sets[hook]) in btf_populate_kfunc_set()
8576 tab->sets[hook] = set; in btf_populate_kfunc_set()
8589 hook_filter = &tab->hook_filters[hook]; in btf_populate_kfunc_set()
8755 struct btf_id_dtor_kfunc_tab *tab = btf->dtor_kfunc_tab; in btf_find_dtor_kfunc() local
8758 if (!tab) in btf_find_dtor_kfunc()
8760 /* Even though the size of tab->dtors[0] is > sizeof(u32), we only need in btf_find_dtor_kfunc()
8764 dtor = bsearch(&btf_id, tab->dtors, tab->cnt, sizeof(tab->dtors[0]), btf_id_cmp_func); in btf_find_dtor_kfunc()
8811 struct btf_id_dtor_kfunc_tab *tab; in register_btf_id_dtor_kfuncs() local
8833 tab = btf->dtor_kfunc_tab; in register_btf_id_dtor_kfuncs()
8835 if (WARN_ON_ONCE(tab && btf_is_module(btf))) { in register_btf_id_dtor_kfuncs()
8840 tab_cnt = tab ? tab->cnt : 0; in register_btf_id_dtor_kfuncs()
8851 tab = krealloc(btf->dtor_kfunc_tab, in register_btf_id_dtor_kfuncs()
8854 if (!tab) { in register_btf_id_dtor_kfuncs()
8860 tab->cnt = 0; in register_btf_id_dtor_kfuncs()
8861 btf->dtor_kfunc_tab = tab; in register_btf_id_dtor_kfuncs()
8863 memcpy(tab->dtors + tab->cnt, dtors, add_cnt * sizeof(tab->dtors[0])); in register_btf_id_dtor_kfuncs()
8867 tab->dtors[i].btf_id = btf_relocate_id(btf, tab->dtors[i].btf_id); in register_btf_id_dtor_kfuncs()
8868 tab->dtors[i].kfunc_btf_id = btf_relocate_id(btf, tab->dtors[i].kfunc_btf_id); in register_btf_id_dtor_kfuncs()
8871 tab->cnt += add_cnt; in register_btf_id_dtor_kfuncs()
8873 sort(tab->dtors, tab->cnt, sizeof(tab->dtors[0]), btf_id_cmp_func, NULL); in register_btf_id_dtor_kfuncs()
9405 struct btf_struct_ops_tab *tab, *new_tab; in btf_add_struct_ops() local
9408 tab = btf->struct_ops_tab; in btf_add_struct_ops()
9409 if (!tab) { in btf_add_struct_ops()
9410 tab = kzalloc(offsetof(struct btf_struct_ops_tab, ops[4]), in btf_add_struct_ops()
9412 if (!tab) in btf_add_struct_ops()
9414 tab->capacity = 4; in btf_add_struct_ops()
9415 btf->struct_ops_tab = tab; in btf_add_struct_ops()
9418 for (i = 0; i < tab->cnt; i++) in btf_add_struct_ops()
9419 if (tab->ops[i].st_ops == st_ops) in btf_add_struct_ops()
9422 if (tab->cnt == tab->capacity) { in btf_add_struct_ops()
9423 new_tab = krealloc(tab, in btf_add_struct_ops()
9425 ops[tab->capacity * 2]), in btf_add_struct_ops()
9429 tab = new_tab; in btf_add_struct_ops()
9430 tab->capacity *= 2; in btf_add_struct_ops()
9431 btf->struct_ops_tab = tab; in btf_add_struct_ops()
9434 tab->ops[btf->struct_ops_tab->cnt].st_ops = st_ops; in btf_add_struct_ops()
9436 err = bpf_struct_ops_desc_init(&tab->ops[btf->struct_ops_tab->cnt], btf, log); in btf_add_struct_ops()