Lines Matching refs:ptr
716 BPF_CALL_2(bpf_per_cpu_ptr, const void *, ptr, u32, cpu) in BPF_CALL_2() argument
721 return (unsigned long)per_cpu_ptr((const void __percpu *)(const uintptr_t)ptr, cpu); in BPF_CALL_2()
1639 BPF_CALL_2(bpf_kptr_xchg, void *, dst, void *, ptr) in BPF_CALL_2() argument
1644 return xchg(kptr, (unsigned long)ptr); in BPF_CALL_2()
1669 bool __bpf_dynptr_is_rdonly(const struct bpf_dynptr_kern *ptr) in __bpf_dynptr_is_rdonly() argument
1671 return ptr->size & DYNPTR_RDONLY_BIT; in __bpf_dynptr_is_rdonly()
1674 void bpf_dynptr_set_rdonly(struct bpf_dynptr_kern *ptr) in bpf_dynptr_set_rdonly() argument
1676 ptr->size |= DYNPTR_RDONLY_BIT; in bpf_dynptr_set_rdonly()
1679 static void bpf_dynptr_set_type(struct bpf_dynptr_kern *ptr, enum bpf_dynptr_type type) in bpf_dynptr_set_type() argument
1681 ptr->size |= type << DYNPTR_TYPE_SHIFT; in bpf_dynptr_set_type()
1684 static enum bpf_dynptr_type bpf_dynptr_get_type(const struct bpf_dynptr_kern *ptr) in bpf_dynptr_get_type() argument
1686 return (ptr->size & ~(DYNPTR_RDONLY_BIT)) >> DYNPTR_TYPE_SHIFT; in bpf_dynptr_get_type()
1689 u32 __bpf_dynptr_size(const struct bpf_dynptr_kern *ptr) in __bpf_dynptr_size() argument
1691 return ptr->size & DYNPTR_SIZE_MASK; in __bpf_dynptr_size()
1694 static void bpf_dynptr_set_size(struct bpf_dynptr_kern *ptr, u32 new_size) in bpf_dynptr_set_size() argument
1696 u32 metadata = ptr->size & ~DYNPTR_SIZE_MASK; in bpf_dynptr_set_size()
1698 ptr->size = new_size | metadata; in bpf_dynptr_set_size()
1706 void bpf_dynptr_init(struct bpf_dynptr_kern *ptr, void *data, in bpf_dynptr_init() argument
1709 ptr->data = data; in bpf_dynptr_init()
1710 ptr->offset = offset; in bpf_dynptr_init()
1711 ptr->size = size; in bpf_dynptr_init()
1712 bpf_dynptr_set_type(ptr, type); in bpf_dynptr_init()
1715 void bpf_dynptr_set_null(struct bpf_dynptr_kern *ptr) in bpf_dynptr_set_null() argument
1717 memset(ptr, 0, sizeof(*ptr)); in bpf_dynptr_set_null()
1720 BPF_CALL_4(bpf_dynptr_from_mem, void *, data, u32, size, u64, flags, struct bpf_dynptr_kern *, ptr) in BPF_CALL_4() argument
1736 bpf_dynptr_init(ptr, data, BPF_DYNPTR_TYPE_LOCAL, 0, size); in BPF_CALL_4()
1741 bpf_dynptr_set_null(ptr); in BPF_CALL_4()
1862 BPF_CALL_3(bpf_dynptr_data, const struct bpf_dynptr_kern *, ptr, u32, offset, u32, len) in BPF_CALL_3() argument
1867 if (!ptr->data) in BPF_CALL_3()
1870 err = bpf_dynptr_check_off_len(ptr, offset, len); in BPF_CALL_3()
1874 if (__bpf_dynptr_is_rdonly(ptr)) in BPF_CALL_3()
1877 type = bpf_dynptr_get_type(ptr); in BPF_CALL_3()
1882 return (unsigned long)(ptr->data + ptr->offset + offset); in BPF_CALL_3()
2679 const struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_slice() local
2684 if (!ptr->data) in bpf_dynptr_slice()
2687 err = bpf_dynptr_check_off_len(ptr, offset, len); in bpf_dynptr_slice()
2691 type = bpf_dynptr_get_type(ptr); in bpf_dynptr_slice()
2696 return ptr->data + ptr->offset + offset; in bpf_dynptr_slice()
2699 return skb_header_pointer(ptr->data, ptr->offset + offset, len, buffer__opt); in bpf_dynptr_slice()
2701 return skb_pointer_if_linear(ptr->data, ptr->offset + offset, len); in bpf_dynptr_slice()
2704 void *xdp_ptr = bpf_xdp_pointer(ptr->data, ptr->offset + offset, len); in bpf_dynptr_slice()
2710 bpf_xdp_copy_buf(ptr->data, ptr->offset + offset, buffer__opt, len, false); in bpf_dynptr_slice()
2764 const struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_slice_rdwr() local
2766 if (!ptr->data || __bpf_dynptr_is_rdonly(ptr)) in bpf_dynptr_slice_rdwr()
2796 struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_adjust() local
2799 if (!ptr->data || start > end) in bpf_dynptr_adjust()
2802 size = __bpf_dynptr_size(ptr); in bpf_dynptr_adjust()
2807 ptr->offset += start; in bpf_dynptr_adjust()
2808 bpf_dynptr_set_size(ptr, end - start); in bpf_dynptr_adjust()
2815 struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_is_null() local
2817 return !ptr->data; in bpf_dynptr_is_null()
2822 struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_is_rdonly() local
2824 if (!ptr->data) in bpf_dynptr_is_rdonly()
2827 return __bpf_dynptr_is_rdonly(ptr); in bpf_dynptr_is_rdonly()
2832 struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_size() local
2834 if (!ptr->data) in bpf_dynptr_size()
2837 return __bpf_dynptr_size(ptr); in bpf_dynptr_size()
2844 struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_clone() local
2846 if (!ptr->data) { in bpf_dynptr_clone()
2851 *clone = *ptr; in bpf_dynptr_clone()
2924 struct bpf_dynptr_kern *ptr = (struct bpf_dynptr_kern *)p; in bpf_dynptr_memset() local
2936 if (__bpf_dynptr_is_rdonly(ptr)) in bpf_dynptr_memset()
2939 err = bpf_dynptr_check_off_len(ptr, offset, size); in bpf_dynptr_memset()
2949 err = __bpf_dynptr_write(ptr, offset + write_off, buf, chunk_sz, 0); in bpf_dynptr_memset()
3881 const void *__bpf_dynptr_data(const struct bpf_dynptr_kern *ptr, u32 len) in __bpf_dynptr_data() argument
3883 const struct bpf_dynptr *p = (struct bpf_dynptr *)ptr; in __bpf_dynptr_data()
3892 void *__bpf_dynptr_data_rw(const struct bpf_dynptr_kern *ptr, u32 len) in __bpf_dynptr_data_rw() argument
3894 if (__bpf_dynptr_is_rdonly(ptr)) in __bpf_dynptr_data_rw()
3896 return (void *)__bpf_dynptr_data(ptr, len); in __bpf_dynptr_data_rw()