Lines Matching refs:btf

7 static void gen_btf(struct btf *btf)  in gen_btf()  argument
17 str_off = btf__find_str(btf, "int"); in gen_btf()
20 str_off = btf__add_str(btf, "int"); in gen_btf()
23 str_off = btf__find_str(btf, "int"); in gen_btf()
27 id = btf__add_int(btf, "int", 4, BTF_INT_SIGNED); in gen_btf()
30 t = btf__type_by_id(btf, 1); in gen_btf()
33 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "int", "int_name"); in gen_btf()
38 ASSERT_STREQ(btf_type_raw_dump(btf, 1), in gen_btf()
42 id = btf__add_int(btf, "bad sz int", 7, 0); in gen_btf()
45 id = btf__add_int(btf, "bad enc int", 4, 123); in gen_btf()
48 id = btf__add_int(btf, NULL, 4, 0); in gen_btf()
51 id = btf__add_int(btf, "", 4, 0); in gen_btf()
55 id = btf__add_ptr(btf, 1); in gen_btf()
57 t = btf__type_by_id(btf, 2); in gen_btf()
60 ASSERT_STREQ(btf_type_raw_dump(btf, 2), in gen_btf()
63 id = btf__add_const(btf, 5); /* points forward to restrict */ in gen_btf()
65 t = btf__type_by_id(btf, 3); in gen_btf()
68 ASSERT_STREQ(btf_type_raw_dump(btf, 3), in gen_btf()
71 id = btf__add_volatile(btf, 3); in gen_btf()
73 t = btf__type_by_id(btf, 4); in gen_btf()
76 ASSERT_STREQ(btf_type_raw_dump(btf, 4), in gen_btf()
79 id = btf__add_restrict(btf, 4); in gen_btf()
81 t = btf__type_by_id(btf, 5); in gen_btf()
84 ASSERT_STREQ(btf_type_raw_dump(btf, 5), in gen_btf()
88 id = btf__add_array(btf, 1, 2, 10); /* int *[10] */ in gen_btf()
90 t = btf__type_by_id(btf, 6); in gen_btf()
95 ASSERT_STREQ(btf_type_raw_dump(btf, 6), in gen_btf()
99 err = btf__add_field(btf, "field", 1, 0, 0); in gen_btf()
101 id = btf__add_struct(btf, "s1", 8); in gen_btf()
103 err = btf__add_field(btf, "f1", 1, 0, 0); in gen_btf()
105 err = btf__add_field(btf, "f2", 1, 32, 16); in gen_btf()
108 t = btf__type_by_id(btf, 7); in gen_btf()
109 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "s1", "struct_name"); in gen_btf()
115 ASSERT_STREQ(btf__str_by_offset(btf, m->name_off), "f1", "f1_name"); in gen_btf()
120 ASSERT_STREQ(btf__str_by_offset(btf, m->name_off), "f2", "f2_name"); in gen_btf()
124 ASSERT_STREQ(btf_type_raw_dump(btf, 7), in gen_btf()
130 id = btf__add_union(btf, "u1", 8); in gen_btf()
134 err = btf__add_field(btf, "field", 1, 1, 0); in gen_btf()
137 err = btf__add_field(btf, "f1", 1, 0, 16); in gen_btf()
140 t = btf__type_by_id(btf, 8); in gen_btf()
141 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "u1", "union_name"); in gen_btf()
147 ASSERT_STREQ(btf__str_by_offset(btf, m->name_off), "f1", "f1_name"); in gen_btf()
151 ASSERT_STREQ(btf_type_raw_dump(btf, 8), in gen_btf()
156 id = btf__add_enum(btf, "e1", 4); in gen_btf()
158 err = btf__add_enum_value(btf, "v1", 1); in gen_btf()
160 err = btf__add_enum_value(btf, "v2", 2); in gen_btf()
163 t = btf__type_by_id(btf, 9); in gen_btf()
164 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "e1", "enum_name"); in gen_btf()
169 ASSERT_STREQ(btf__str_by_offset(btf, v->name_off), "v1", "v1_name"); in gen_btf()
172 ASSERT_STREQ(btf__str_by_offset(btf, v->name_off), "v2", "v2_name"); in gen_btf()
174 ASSERT_STREQ(btf_type_raw_dump(btf, 9), in gen_btf()
180 id = btf__add_fwd(btf, "struct_fwd", BTF_FWD_STRUCT); in gen_btf()
182 t = btf__type_by_id(btf, 10); in gen_btf()
183 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "struct_fwd", "fwd_name"); in gen_btf()
186 ASSERT_STREQ(btf_type_raw_dump(btf, 10), in gen_btf()
189 id = btf__add_fwd(btf, "union_fwd", BTF_FWD_UNION); in gen_btf()
191 t = btf__type_by_id(btf, 11); in gen_btf()
192 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "union_fwd", "fwd_name"); in gen_btf()
195 ASSERT_STREQ(btf_type_raw_dump(btf, 11), in gen_btf()
198 id = btf__add_fwd(btf, "enum_fwd", BTF_FWD_ENUM); in gen_btf()
200 t = btf__type_by_id(btf, 12); in gen_btf()
201 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "enum_fwd", "fwd_name"); in gen_btf()
205 ASSERT_STREQ(btf_type_raw_dump(btf, 12), in gen_btf()
209 id = btf__add_typedef(btf, "typedef1", 1); in gen_btf()
211 t = btf__type_by_id(btf, 13); in gen_btf()
212 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "typedef1", "typedef_name"); in gen_btf()
215 ASSERT_STREQ(btf_type_raw_dump(btf, 13), in gen_btf()
219 id = btf__add_func(btf, "func1", BTF_FUNC_GLOBAL, 15); in gen_btf()
221 t = btf__type_by_id(btf, 14); in gen_btf()
222 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "func1", "func_name"); in gen_btf()
226 ASSERT_STREQ(btf_type_raw_dump(btf, 14), in gen_btf()
229 id = btf__add_func_proto(btf, 1); in gen_btf()
231 err = btf__add_func_param(btf, "p1", 1); in gen_btf()
233 err = btf__add_func_param(btf, "p2", 2); in gen_btf()
236 t = btf__type_by_id(btf, 15); in gen_btf()
241 ASSERT_STREQ(btf__str_by_offset(btf, p->name_off), "p1", "p1_name"); in gen_btf()
244 ASSERT_STREQ(btf__str_by_offset(btf, p->name_off), "p2", "p2_name"); in gen_btf()
246 ASSERT_STREQ(btf_type_raw_dump(btf, 15), in gen_btf()
252 id = btf__add_var(btf, "var1", BTF_VAR_GLOBAL_ALLOCATED, 1); in gen_btf()
254 t = btf__type_by_id(btf, 16); in gen_btf()
255 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "var1", "var_name"); in gen_btf()
259 ASSERT_STREQ(btf_type_raw_dump(btf, 16), in gen_btf()
263 id = btf__add_datasec(btf, "datasec1", 12); in gen_btf()
265 err = btf__add_datasec_var_info(btf, 1, 4, 8); in gen_btf()
268 t = btf__type_by_id(btf, 17); in gen_btf()
269 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "datasec1", "datasec_name"); in gen_btf()
277 ASSERT_STREQ(btf_type_raw_dump(btf, 17), in gen_btf()
282 id = btf__add_decl_tag(btf, "tag1", 16, -1); in gen_btf()
284 t = btf__type_by_id(btf, 18); in gen_btf()
285 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "tag1", "tag_value"); in gen_btf()
289 ASSERT_STREQ(btf_type_raw_dump(btf, 18), in gen_btf()
292 id = btf__add_decl_tag(btf, "tag2", 14, 1); in gen_btf()
294 t = btf__type_by_id(btf, 19); in gen_btf()
295 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "tag2", "tag_value"); in gen_btf()
299 ASSERT_STREQ(btf_type_raw_dump(btf, 19), in gen_btf()
303 id = btf__add_type_tag(btf, "tag1", 1); in gen_btf()
305 t = btf__type_by_id(btf, 20); in gen_btf()
306 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "tag1", "tag_value"); in gen_btf()
309 ASSERT_STREQ(btf_type_raw_dump(btf, 20), in gen_btf()
313 id = btf__add_enum64(btf, "e1", 8, true); in gen_btf()
315 err = btf__add_enum64_value(btf, "v1", -1); in gen_btf()
317 err = btf__add_enum64_value(btf, "v2", 0x123456789); /* 4886718345 */ in gen_btf()
319 t = btf__type_by_id(btf, 21); in gen_btf()
320 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "e1", "enum64_name"); in gen_btf()
325 ASSERT_STREQ(btf__str_by_offset(btf, v64->name_off), "v1", "v1_name"); in gen_btf()
329 ASSERT_STREQ(btf__str_by_offset(btf, v64->name_off), "v2", "v2_name"); in gen_btf()
332 ASSERT_STREQ(btf_type_raw_dump(btf, 21), in gen_btf()
337 id = btf__add_enum64(btf, "e1", 8, false); in gen_btf()
339 err = btf__add_enum64_value(btf, "v1", 0xffffffffFFFFFFFF); /* 18446744073709551615 */ in gen_btf()
341 t = btf__type_by_id(btf, 22); in gen_btf()
342 ASSERT_STREQ(btf__str_by_offset(btf, t->name_off), "e1", "enum64_name"); in gen_btf()
347 ASSERT_STREQ(btf__str_by_offset(btf, v64->name_off), "v1", "v1_name"); in gen_btf()
350 ASSERT_STREQ(btf_type_raw_dump(btf, 22), in gen_btf()
357 struct btf *btf; in test_btf_add() local
359 btf = btf__new_empty(); in test_btf_add()
360 if (!ASSERT_OK_PTR(btf, "new_empty")) in test_btf_add()
363 gen_btf(btf); in test_btf_add()
366 btf, in test_btf_add()
401 btf__free(btf); in test_btf_add()
406 struct btf *btf1 = NULL, *btf2 = NULL; in test_btf_add_btf()