Lines Matching refs:uattr
1274 int generic_map_delete_batch(struct bpf_map *map, const union bpf_attr *attr, union bpf_attr __user *uattr)
1320 if (copy_to_user(&uattr->batch.count, &cp, sizeof(cp))) {
1328 int generic_map_update_batch(struct bpf_map *map, const union bpf_attr *attr, union bpf_attr __user *uattr)
1380 if (copy_to_user(&uattr->batch.count, &cp, sizeof(cp))) {
1392 int generic_map_lookup_batch(struct bpf_map *map, const union bpf_attr *attr, union bpf_attr __user *uattr)
1417 if (put_user(0, &uattr->batch.count)) {
1488 if ((copy_to_user(&uattr->batch.count, &cp, sizeof(cp)) ||
2147 static int bpf_prog_load(union bpf_attr *attr, union bpf_attr __user *uattr)
2262 err = bpf_check(&prog, attr, uattr);
3104 static int bpf_prog_query(const union bpf_attr *attr, union bpf_attr __user *uattr)
3140 return cgroup_bpf_prog_query(attr, uattr);
3142 return lirc_prog_query(attr, uattr);
3145 return netns_bpf_prog_query(attr, uattr);
3153 static int bpf_prog_test_run(const union bpf_attr *attr, union bpf_attr __user *uattr)
3176 ret = prog->aux->ops->test_run(prog, attr, uattr);
3185 static int bpf_obj_get_next_id(const union bpf_attr *attr, union bpf_attr __user *uattr, struct idr *idr,
3207 err = put_user(next_id, &uattr->next_id);
3460 union bpf_attr __user *uattr)
3742 if (copy_to_user(uinfo, &info, info_len) || put_user(info_len, &uattr->info.info_len)) {
3750 union bpf_attr __user *uattr)
3786 if (copy_to_user(uinfo, &info, info_len) || put_user(info_len, &uattr->info.info_len)) {
3794 union bpf_attr __user *uattr)
3805 return btf_get_info_by_fd(btf, attr, uattr);
3809 union bpf_attr __user *uattr)
3838 if (copy_to_user(uinfo, &info, info_len) || put_user(info_len, &uattr->info.info_len)) {
3847 static int bpf_obj_get_info_by_fd(const union bpf_attr *attr, union bpf_attr __user *uattr)
3863 err = bpf_prog_get_info_by_fd(f.file, f.file->private_data, attr, uattr);
3865 err = bpf_map_get_info_by_fd(f.file, f.file->private_data, attr, uattr);
3867 err = bpf_btf_get_info_by_fd(f.file, f.file->private_data, attr, uattr);
3869 err = bpf_link_get_info_by_fd(f.file, f.file->private_data, attr, uattr);
3908 static int bpf_task_fd_query_copy(const union bpf_attr *attr, union bpf_attr __user *uattr, u32 prog_id, u32 fd_type,
3915 if (put_user(len, &uattr->task_fd_query.buf_len)) {
3948 if (put_user(prog_id, &uattr->task_fd_query.prog_id) || put_user(fd_type, &uattr->task_fd_query.fd_type) ||
3949 put_user(probe_offset, &uattr->task_fd_query.probe_offset) ||
3950 put_user(probe_addr, &uattr->task_fd_query.probe_addr)) {
3959 static int bpf_task_fd_query(const union bpf_attr *attr, union bpf_attr __user *uattr)
4014 err = bpf_task_fd_query_copy(attr, uattr, raw_tp->link.prog->aux->id, BPF_FD_TYPE_RAW_TRACEPOINT,
4029 err = bpf_task_fd_query_copy(attr, uattr, prog_id, fd_type, buf, probe_offset, probe_addr);
4050 err = fn(map, attr, uattr); \
4053 static int bpf_map_do_batch(const union bpf_attr *attr, union bpf_attr __user *uattr, int cmd)
4464 SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, size)
4473 err = bpf_check_uarg_tail_zero(uattr, sizeof(attr), size);
4481 if (copy_from_user(&attr, uattr, size) != 0) {
4510 err = bpf_prog_load(&attr, uattr);
4525 err = bpf_prog_query(&attr, uattr);
4528 err = bpf_prog_test_run(&attr, uattr);
4531 err = bpf_obj_get_next_id(&attr, uattr, &prog_idr, &prog_idr_lock);
4534 err = bpf_obj_get_next_id(&attr, uattr, &map_idr, &map_idr_lock);
4537 err = bpf_obj_get_next_id(&attr, uattr, &btf_idr, &btf_idr_lock);
4546 err = bpf_obj_get_info_by_fd(&attr, uattr);
4558 err = bpf_task_fd_query(&attr, uattr);
4564 err = bpf_map_do_batch(&attr, uattr, BPF_MAP_LOOKUP_BATCH);
4567 err = bpf_map_do_batch(&attr, uattr, BPF_MAP_LOOKUP_AND_DELETE_BATCH);
4570 err = bpf_map_do_batch(&attr, uattr, BPF_MAP_UPDATE_BATCH);
4573 err = bpf_map_do_batch(&attr, uattr, BPF_MAP_DELETE_BATCH);
4585 err = bpf_obj_get_next_id(&attr, uattr, &link_idr, &link_idr_lock);