Lines Matching refs:btf

7 static void gen_btf(struct btf *btf)  in gen_btf()  argument
16 str_off = btf__find_str(btf, "int"); in gen_btf()
19 str_off = btf__add_str(btf, "int"); in gen_btf()
22 str_off = btf__find_str(btf, "int"); in gen_btf()
26 id = btf__add_int(btf, "int", 4, BTF_INT_SIGNED); in gen_btf()
29 t = btf__type_by_id(btf, 1); in gen_btf()
32 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "int", "int_name"); in gen_btf()
37 ASSERT_STREQ(btf_type_raw_dump(btf, 1), in gen_btf()
41 id = btf__add_int(btf, "bad sz int", 7, 0); in gen_btf()
44 id = btf__add_int(btf, "bad enc int", 4, 123); in gen_btf()
47 id = btf__add_int(btf, NULL, 4, 0); in gen_btf()
50 id = btf__add_int(btf, "", 4, 0); in gen_btf()
54 id = btf__add_ptr(btf, 1); in gen_btf()
56 t = btf__type_by_id(btf, 2); in gen_btf()
59 ASSERT_STREQ(btf_type_raw_dump(btf, 2), in gen_btf()
62 id = btf__add_const(btf, 5); /* points forward to restrict */ in gen_btf()
64 t = btf__type_by_id(btf, 3); in gen_btf()
67 ASSERT_STREQ(btf_type_raw_dump(btf, 3), in gen_btf()
70 id = btf__add_volatile(btf, 3); in gen_btf()
72 t = btf__type_by_id(btf, 4); in gen_btf()
75 ASSERT_STREQ(btf_type_raw_dump(btf, 4), in gen_btf()
78 id = btf__add_restrict(btf, 4); in gen_btf()
80 t = btf__type_by_id(btf, 5); in gen_btf()
83 ASSERT_STREQ(btf_type_raw_dump(btf, 5), in gen_btf()
87 id = btf__add_array(btf, 1, 2, 10); /* int *[10] */ in gen_btf()
89 t = btf__type_by_id(btf, 6); in gen_btf()
94 ASSERT_STREQ(btf_type_raw_dump(btf, 6), in gen_btf()
98 err = btf__add_field(btf, "field", 1, 0, 0); in gen_btf()
100 id = btf__add_struct(btf, "s1", 8); in gen_btf()
102 err = btf__add_field(btf, "f1", 1, 0, 0); in gen_btf()
104 err = btf__add_field(btf, "f2", 1, 32, 16); in gen_btf()
107 t = btf__type_by_id(btf, 7); in gen_btf()
108 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "s1", "struct_name"); in gen_btf()
114 ASSERT_STREQ(btf__str_by_offset(btf, m->name_off), "f1", "f1_name"); in gen_btf()
119 ASSERT_STREQ(btf__str_by_offset(btf, m->name_off), "f2", "f2_name"); in gen_btf()
123 ASSERT_STREQ(btf_type_raw_dump(btf, 7), in gen_btf()
129 id = btf__add_union(btf, "u1", 8); in gen_btf()
133 err = btf__add_field(btf, "field", 1, 1, 0); in gen_btf()
136 err = btf__add_field(btf, "f1", 1, 0, 16); in gen_btf()
139 t = btf__type_by_id(btf, 8); in gen_btf()
140 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "u1", "union_name"); in gen_btf()
146 ASSERT_STREQ(btf__str_by_offset(btf, m->name_off), "f1", "f1_name"); in gen_btf()
150 ASSERT_STREQ(btf_type_raw_dump(btf, 8), in gen_btf()
155 id = btf__add_enum(btf, "e1", 4); in gen_btf()
157 err = btf__add_enum_value(btf, "v1", 1); in gen_btf()
159 err = btf__add_enum_value(btf, "v2", 2); in gen_btf()
162 t = btf__type_by_id(btf, 9); in gen_btf()
163 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "e1", "enum_name"); in gen_btf()
168 ASSERT_STREQ(btf__str_by_offset(btf, v->name_off), "v1", "v1_name"); in gen_btf()
171 ASSERT_STREQ(btf__str_by_offset(btf, v->name_off), "v2", "v2_name"); in gen_btf()
173 ASSERT_STREQ(btf_type_raw_dump(btf, 9), in gen_btf()
179 id = btf__add_fwd(btf, "struct_fwd", BTF_FWD_STRUCT); in gen_btf()
181 t = btf__type_by_id(btf, 10); in gen_btf()
182 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "struct_fwd", "fwd_name"); in gen_btf()
185 ASSERT_STREQ(btf_type_raw_dump(btf, 10), in gen_btf()
188 id = btf__add_fwd(btf, "union_fwd", BTF_FWD_UNION); in gen_btf()
190 t = btf__type_by_id(btf, 11); in gen_btf()
191 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "union_fwd", "fwd_name"); in gen_btf()
194 ASSERT_STREQ(btf_type_raw_dump(btf, 11), in gen_btf()
197 id = btf__add_fwd(btf, "enum_fwd", BTF_FWD_ENUM); in gen_btf()
199 t = btf__type_by_id(btf, 12); in gen_btf()
200 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "enum_fwd", "fwd_name"); in gen_btf()
204 ASSERT_STREQ(btf_type_raw_dump(btf, 12), in gen_btf()
208 id = btf__add_typedef(btf, "typedef1", 1); in gen_btf()
210 t = btf__type_by_id(btf, 13); in gen_btf()
211 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "typedef1", "typedef_name"); in gen_btf()
214 ASSERT_STREQ(btf_type_raw_dump(btf, 13), in gen_btf()
218 id = btf__add_func(btf, "func1", BTF_FUNC_GLOBAL, 15); in gen_btf()
220 t = btf__type_by_id(btf, 14); in gen_btf()
221 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "func1", "func_name"); in gen_btf()
225 ASSERT_STREQ(btf_type_raw_dump(btf, 14), in gen_btf()
228 id = btf__add_func_proto(btf, 1); in gen_btf()
230 err = btf__add_func_param(btf, "p1", 1); in gen_btf()
232 err = btf__add_func_param(btf, "p2", 2); in gen_btf()
235 t = btf__type_by_id(btf, 15); in gen_btf()
240 ASSERT_STREQ(btf__str_by_offset(btf, p->name_off), "p1", "p1_name"); in gen_btf()
243 ASSERT_STREQ(btf__str_by_offset(btf, p->name_off), "p2", "p2_name"); in gen_btf()
245 ASSERT_STREQ(btf_type_raw_dump(btf, 15), in gen_btf()
251 id = btf__add_var(btf, "var1", BTF_VAR_GLOBAL_ALLOCATED, 1); in gen_btf()
253 t = btf__type_by_id(btf, 16); in gen_btf()
254 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "var1", "var_name"); in gen_btf()
258 ASSERT_STREQ(btf_type_raw_dump(btf, 16), in gen_btf()
262 id = btf__add_datasec(btf, "datasec1", 12); in gen_btf()
264 err = btf__add_datasec_var_info(btf, 1, 4, 8); in gen_btf()
267 t = btf__type_by_id(btf, 17); in gen_btf()
268 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "datasec1", "datasec_name"); in gen_btf()
276 ASSERT_STREQ(btf_type_raw_dump(btf, 17), in gen_btf()
281 id = btf__add_decl_tag(btf, "tag1", 16, -1); in gen_btf()
283 t = btf__type_by_id(btf, 18); in gen_btf()
284 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "tag1", "tag_value"); in gen_btf()
288 ASSERT_STREQ(btf_type_raw_dump(btf, 18), in gen_btf()
291 id = btf__add_decl_tag(btf, "tag2", 14, 1); in gen_btf()
293 t = btf__type_by_id(btf, 19); in gen_btf()
294 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "tag2", "tag_value"); in gen_btf()
298 ASSERT_STREQ(btf_type_raw_dump(btf, 19), in gen_btf()
304 struct btf *btf; in test_btf_add() local
306 btf = btf__new_empty(); in test_btf_add()
307 if (!ASSERT_OK_PTR(btf, "new_empty")) in test_btf_add()
310 gen_btf(btf); in test_btf_add()
313 btf, in test_btf_add()
342 btf__free(btf); in test_btf_add()
347 struct btf *btf1 = NULL, *btf2 = NULL; in test_btf_add_btf()