mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 14:19:16 +00:00
bpf: Extend libbpf with bpf_map_lookup_and_delete_elem_flags
Add bpf_map_lookup_and_delete_elem_flags() libbpf API in order to use the BPF_F_LOCK flag with the map_lookup_and_delete_elem() function. Signed-off-by: Denis Salopek <denis.salopek@sartura.hr> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: Yonghong Song <yhs@fb.com> Link: https://lore.kernel.org/bpf/15b05dafe46c7e0750d110f233977372029d1f62.1620763117.git.denis.salopek@sartura.hr
This commit is contained in:
parent
3e87f192b4
commit
d59b9f2d1b
3 changed files with 16 additions and 0 deletions
|
@ -458,6 +458,19 @@ int bpf_map_lookup_and_delete_elem(int fd, const void *key, void *value)
|
||||||
return sys_bpf(BPF_MAP_LOOKUP_AND_DELETE_ELEM, &attr, sizeof(attr));
|
return sys_bpf(BPF_MAP_LOOKUP_AND_DELETE_ELEM, &attr, sizeof(attr));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int bpf_map_lookup_and_delete_elem_flags(int fd, const void *key, void *value, __u64 flags)
|
||||||
|
{
|
||||||
|
union bpf_attr attr;
|
||||||
|
|
||||||
|
memset(&attr, 0, sizeof(attr));
|
||||||
|
attr.map_fd = fd;
|
||||||
|
attr.key = ptr_to_u64(key);
|
||||||
|
attr.value = ptr_to_u64(value);
|
||||||
|
attr.flags = flags;
|
||||||
|
|
||||||
|
return sys_bpf(BPF_MAP_LOOKUP_AND_DELETE_ELEM, &attr, sizeof(attr));
|
||||||
|
}
|
||||||
|
|
||||||
int bpf_map_delete_elem(int fd, const void *key)
|
int bpf_map_delete_elem(int fd, const void *key)
|
||||||
{
|
{
|
||||||
union bpf_attr attr;
|
union bpf_attr attr;
|
||||||
|
|
|
@ -124,6 +124,8 @@ LIBBPF_API int bpf_map_lookup_elem_flags(int fd, const void *key, void *value,
|
||||||
__u64 flags);
|
__u64 flags);
|
||||||
LIBBPF_API int bpf_map_lookup_and_delete_elem(int fd, const void *key,
|
LIBBPF_API int bpf_map_lookup_and_delete_elem(int fd, const void *key,
|
||||||
void *value);
|
void *value);
|
||||||
|
LIBBPF_API int bpf_map_lookup_and_delete_elem_flags(int fd, const void *key,
|
||||||
|
void *value, __u64 flags);
|
||||||
LIBBPF_API int bpf_map_delete_elem(int fd, const void *key);
|
LIBBPF_API int bpf_map_delete_elem(int fd, const void *key);
|
||||||
LIBBPF_API int bpf_map_get_next_key(int fd, const void *key, void *next_key);
|
LIBBPF_API int bpf_map_get_next_key(int fd, const void *key, void *next_key);
|
||||||
LIBBPF_API int bpf_map_freeze(int fd);
|
LIBBPF_API int bpf_map_freeze(int fd);
|
||||||
|
|
|
@ -361,6 +361,7 @@ LIBBPF_0.4.0 {
|
||||||
bpf_linker__new;
|
bpf_linker__new;
|
||||||
bpf_map__initial_value;
|
bpf_map__initial_value;
|
||||||
bpf_map__inner_map;
|
bpf_map__inner_map;
|
||||||
|
bpf_map_lookup_and_delete_elem_flags;
|
||||||
bpf_object__gen_loader;
|
bpf_object__gen_loader;
|
||||||
bpf_object__set_kversion;
|
bpf_object__set_kversion;
|
||||||
bpf_tc_attach;
|
bpf_tc_attach;
|
||||||
|
|
Loading…
Reference in a new issue