Lines Matching refs:load_attr
222 int libbpf__bpf_prog_load(const struct bpf_prog_load_params *load_attr) in libbpf__bpf_prog_load() argument
228 if (!load_attr->log_buf != !load_attr->log_buf_sz) in libbpf__bpf_prog_load()
231 if (load_attr->log_level > (4 | 2 | 1) || (load_attr->log_level && !load_attr->log_buf)) in libbpf__bpf_prog_load()
235 attr.prog_type = load_attr->prog_type; in libbpf__bpf_prog_load()
236 attr.expected_attach_type = load_attr->expected_attach_type; in libbpf__bpf_prog_load()
238 if (load_attr->attach_prog_fd) in libbpf__bpf_prog_load()
239 attr.attach_prog_fd = load_attr->attach_prog_fd; in libbpf__bpf_prog_load()
241 attr.attach_btf_obj_fd = load_attr->attach_btf_obj_fd; in libbpf__bpf_prog_load()
242 attr.attach_btf_id = load_attr->attach_btf_id; in libbpf__bpf_prog_load()
244 attr.prog_ifindex = load_attr->prog_ifindex; in libbpf__bpf_prog_load()
245 attr.kern_version = load_attr->kern_version; in libbpf__bpf_prog_load()
247 attr.insn_cnt = (__u32)load_attr->insn_cnt; in libbpf__bpf_prog_load()
248 attr.insns = ptr_to_u64(load_attr->insns); in libbpf__bpf_prog_load()
249 attr.license = ptr_to_u64(load_attr->license); in libbpf__bpf_prog_load()
251 attr.log_level = load_attr->log_level; in libbpf__bpf_prog_load()
253 attr.log_buf = ptr_to_u64(load_attr->log_buf); in libbpf__bpf_prog_load()
254 attr.log_size = load_attr->log_buf_sz; in libbpf__bpf_prog_load()
257 attr.prog_btf_fd = load_attr->prog_btf_fd; in libbpf__bpf_prog_load()
258 attr.prog_flags = load_attr->prog_flags; in libbpf__bpf_prog_load()
260 attr.func_info_rec_size = load_attr->func_info_rec_size; in libbpf__bpf_prog_load()
261 attr.func_info_cnt = load_attr->func_info_cnt; in libbpf__bpf_prog_load()
262 attr.func_info = ptr_to_u64(load_attr->func_info); in libbpf__bpf_prog_load()
264 attr.line_info_rec_size = load_attr->line_info_rec_size; in libbpf__bpf_prog_load()
265 attr.line_info_cnt = load_attr->line_info_cnt; in libbpf__bpf_prog_load()
266 attr.line_info = ptr_to_u64(load_attr->line_info); in libbpf__bpf_prog_load()
268 if (load_attr->name) in libbpf__bpf_prog_load()
269 memcpy(attr.prog_name, load_attr->name, in libbpf__bpf_prog_load()
270 min(strlen(load_attr->name), (size_t)BPF_OBJ_NAME_LEN - 1)); in libbpf__bpf_prog_load()
282 attr.func_info_rec_size < load_attr->func_info_rec_size) { in libbpf__bpf_prog_load()
284 finfo = alloc_zero_tailing_info(load_attr->func_info, in libbpf__bpf_prog_load()
285 load_attr->func_info_cnt, in libbpf__bpf_prog_load()
286 load_attr->func_info_rec_size, in libbpf__bpf_prog_load()
294 attr.func_info_rec_size = load_attr->func_info_rec_size; in libbpf__bpf_prog_load()
297 load_attr->line_info_rec_size) { in libbpf__bpf_prog_load()
298 linfo = alloc_zero_tailing_info(load_attr->line_info, in libbpf__bpf_prog_load()
299 load_attr->line_info_cnt, in libbpf__bpf_prog_load()
300 load_attr->line_info_rec_size, in libbpf__bpf_prog_load()
308 attr.line_info_rec_size = load_attr->line_info_rec_size; in libbpf__bpf_prog_load()
318 if (load_attr->log_level || !load_attr->log_buf) in libbpf__bpf_prog_load()
322 attr.log_buf = ptr_to_u64(load_attr->log_buf); in libbpf__bpf_prog_load()
323 attr.log_size = load_attr->log_buf_sz; in libbpf__bpf_prog_load()
325 load_attr->log_buf[0] = 0; in libbpf__bpf_prog_load()
335 int bpf_load_program_xattr(const struct bpf_load_program_attr *load_attr, in bpf_load_program_xattr() argument
340 if (!load_attr || !log_buf != !log_buf_sz) in bpf_load_program_xattr()
343 p.prog_type = load_attr->prog_type; in bpf_load_program_xattr()
344 p.expected_attach_type = load_attr->expected_attach_type; in bpf_load_program_xattr()
348 p.attach_btf_id = load_attr->attach_btf_id; in bpf_load_program_xattr()
352 p.attach_btf_id = load_attr->attach_btf_id; in bpf_load_program_xattr()
353 p.attach_prog_fd = load_attr->attach_prog_fd; in bpf_load_program_xattr()
356 p.prog_ifindex = load_attr->prog_ifindex; in bpf_load_program_xattr()
357 p.kern_version = load_attr->kern_version; in bpf_load_program_xattr()
359 p.insn_cnt = load_attr->insns_cnt; in bpf_load_program_xattr()
360 p.insns = load_attr->insns; in bpf_load_program_xattr()
361 p.license = load_attr->license; in bpf_load_program_xattr()
362 p.log_level = load_attr->log_level; in bpf_load_program_xattr()
365 p.prog_btf_fd = load_attr->prog_btf_fd; in bpf_load_program_xattr()
366 p.func_info_rec_size = load_attr->func_info_rec_size; in bpf_load_program_xattr()
367 p.func_info_cnt = load_attr->func_info_cnt; in bpf_load_program_xattr()
368 p.func_info = load_attr->func_info; in bpf_load_program_xattr()
369 p.line_info_rec_size = load_attr->line_info_rec_size; in bpf_load_program_xattr()
370 p.line_info_cnt = load_attr->line_info_cnt; in bpf_load_program_xattr()
371 p.line_info = load_attr->line_info; in bpf_load_program_xattr()
372 p.name = load_attr->name; in bpf_load_program_xattr()
373 p.prog_flags = load_attr->prog_flags; in bpf_load_program_xattr()
383 struct bpf_load_program_attr load_attr; in bpf_load_program() local
385 memset(&load_attr, 0, sizeof(struct bpf_load_program_attr)); in bpf_load_program()
386 load_attr.prog_type = type; in bpf_load_program()
387 load_attr.expected_attach_type = 0; in bpf_load_program()
388 load_attr.name = NULL; in bpf_load_program()
389 load_attr.insns = insns; in bpf_load_program()
390 load_attr.insns_cnt = insns_cnt; in bpf_load_program()
391 load_attr.license = license; in bpf_load_program()
392 load_attr.kern_version = kern_version; in bpf_load_program()
394 return bpf_load_program_xattr(&load_attr, log_buf, log_buf_sz); in bpf_load_program()