bpfptr_t
int bpf_iter_link_attach(const union bpf_attr *attr, bpfptr_t uattr, struct bpf_prog *prog);
int bpf_check_uarg_tail_zero(bpfptr_t uaddr, size_t expected_size,
int bpf_check(struct bpf_prog **fp, union bpf_attr *attr, bpfptr_t uattr, u32 uattr_size);
bpfptr_t fd_array;
static inline bool bpfptr_is_kernel(bpfptr_t bpfptr)
static inline bpfptr_t KERNEL_BPFPTR(void *p)
return (bpfptr_t) { .kernel = p, .is_kernel = true };
static inline bpfptr_t USER_BPFPTR(void __user *p)
return (bpfptr_t) { .user = p };
static inline bpfptr_t make_bpfptr(u64 addr, bool is_kernel)
static inline bool bpfptr_is_null(bpfptr_t bpfptr)
static inline void bpfptr_add(bpfptr_t *bpfptr, size_t val)
static inline int copy_from_bpfptr_offset(void *dst, bpfptr_t src,
static inline int copy_from_bpfptr(void *dst, bpfptr_t src, size_t size)
static inline int copy_to_bpfptr_offset(bpfptr_t dst, size_t offset,
static inline void *kvmemdup_bpfptr_noprof(bpfptr_t src, size_t len)
static inline long strncpy_from_bpfptr(char *dst, bpfptr_t src, size_t count)
int btf_new_fd(const union bpf_attr *attr, bpfptr_t uattr, u32 uattr_sz);
int bpf_iter_link_attach(const union bpf_attr *attr, bpfptr_t uattr,
bpfptr_t ulinfo;
static int finalize_log(struct bpf_verifier_log *log, bpfptr_t uattr, u32 uattr_size)
static struct btf *btf_parse(const union bpf_attr *attr, bpfptr_t uattr, u32 uattr_size)
bpfptr_t btf_data = make_bpfptr(attr->btf, uattr.is_kernel);
int btf_new_fd(const union bpf_attr *attr, bpfptr_t uattr, u32 uattr_size)
static int map_create(union bpf_attr *attr, bpfptr_t uattr)
bpfptr_t uprog_hash = make_bpfptr(attr->excl_prog_hash, uattr.is_kernel);
static void *___bpf_copy_key(bpfptr_t ukey, u64 key_size)
static int map_update_elem(union bpf_attr *attr, bpfptr_t uattr)
bpfptr_t ukey = make_bpfptr(attr->key, uattr.is_kernel);
bpfptr_t uvalue = make_bpfptr(attr->value, uattr.is_kernel);
static int map_delete_elem(union bpf_attr *attr, bpfptr_t uattr)
bpfptr_t ukey = make_bpfptr(attr->key, uattr.is_kernel);
bpfptr_t usig = make_bpfptr(attr->signature, is_kernel);
static int bpf_prog_load(union bpf_attr *attr, bpfptr_t uattr, u32 uattr_size)
static int bpf_btf_load(const union bpf_attr *attr, bpfptr_t uattr, __u32 uattr_size)
static int link_create(union bpf_attr *attr, bpfptr_t uattr)
static int __sys_bpf(enum bpf_cmd cmd, bpfptr_t uattr, unsigned int size)
int bpf_check_uarg_tail_zero(bpfptr_t uaddr,
bpfptr_t uattr)
bpfptr_t urecord;
bpfptr_t uattr)
bpfptr_t urecord;
bpfptr_t uattr)
bpfptr_t ulinfo;
bpfptr_t uattr)
bpfptr_t u_core_relo;
bpfptr_t uattr)
bpfptr_t uattr)
static int process_fd_array(struct bpf_verifier_env *env, union bpf_attr *attr, bpfptr_t uattr)
int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr, __u32 uattr_size)