mirror of
https://github.com/fail0verflow/switch-linux.git
synced 2025-05-04 02:34:21 -04:00
tools lib bpf: Add bpf_map__pin()
Add a new API to pin a BPF map to the filesystem. The user can specify the path full path within a BPF filesystem to pin the map. Signed-off-by: Joe Stringer <joe@ovn.org> Cc: Alexei Starovoitov <ast@fb.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Wang Nan <wangnan0@huawei.com> Cc: netdev@vger.kernel.org Link: http://lkml.kernel.org/r/20170126212001.14103-3-joe@ovn.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
f367540c8c
commit
b6989f35e8
2 changed files with 23 additions and 0 deletions
|
@ -1357,6 +1357,28 @@ int bpf_program__pin(struct bpf_program *prog, const char *path)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int bpf_map__pin(struct bpf_map *map, const char *path)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = check_path(path);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
if (map == NULL) {
|
||||||
|
pr_warning("invalid map pointer\n");
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bpf_obj_pin(map->fd, path)) {
|
||||||
|
pr_warning("failed to pin map: %s\n", strerror(errno));
|
||||||
|
return -errno;
|
||||||
|
}
|
||||||
|
|
||||||
|
pr_debug("pinned map '%s'\n", path);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void bpf_object__close(struct bpf_object *obj)
|
void bpf_object__close(struct bpf_object *obj)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
|
@ -236,6 +236,7 @@ typedef void (*bpf_map_clear_priv_t)(struct bpf_map *, void *);
|
||||||
int bpf_map__set_priv(struct bpf_map *map, void *priv,
|
int bpf_map__set_priv(struct bpf_map *map, void *priv,
|
||||||
bpf_map_clear_priv_t clear_priv);
|
bpf_map_clear_priv_t clear_priv);
|
||||||
void *bpf_map__priv(struct bpf_map *map);
|
void *bpf_map__priv(struct bpf_map *map);
|
||||||
|
int bpf_map__pin(struct bpf_map *map, const char *path);
|
||||||
|
|
||||||
long libbpf_get_error(const void *ptr);
|
long libbpf_get_error(const void *ptr);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue