From: Wang Nan <wangnan0@huawei.com>
To: <ast@kernel.org>, <agartrell@fb.com>, <acme@redhat.com>,
<bblanco@plumgrid.com>, <daniel@iogearbox.net>,
<daniel.wagner@bmw-carit.de>, <davem@davemloft.net>,
<mingo@kernel.org>, <jolsa@kernel.org>, <xiakaixu@huawei.com>,
<holzheu@linux.vnet.ibm.com>, <yang.shi@linaro.org>
Cc: <linux-kernel@vger.kernel.org>, <pi3orama@163.com>,
Wang Nan <wangnan0@huawei.com>, Wang Nan <wangnan0@hauwei.com>
Subject: [PATCH 07/10] bpf tools: Support BPF_OBJ_PIN and BPF_OBJ_GET
Date: Thu, 17 Dec 2015 05:23:11 +0000 [thread overview]
Message-ID: <1450329794-161948-8-git-send-email-wangnan0@huawei.com> (raw)
In-Reply-To: <1450329794-161948-1-git-send-email-wangnan0@huawei.com>
Commit b2197755b2633e164a439682fb05a9b5ea48f706 ("bpf: add support for
persistent maps/progs") introduces two new operations to both map and
program. This patch makes libbpf support it.
Signed-off-by: Wang Nan <wangnan0@hauwei.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
---
tools/lib/bpf/bpf.c | 21 +++++++++++++++++++++
tools/lib/bpf/bpf.h | 3 +++
2 files changed, 24 insertions(+)
diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
index 89c9d0b..5f174c6 100644
--- a/tools/lib/bpf/bpf.c
+++ b/tools/lib/bpf/bpf.c
@@ -129,3 +129,24 @@ int bpf_map_get_next_key(int fd, void *key, void *next_key)
return sys_bpf(BPF_MAP_GET_NEXT_KEY, &attr, sizeof(attr));
}
+
+int bpf_pin_object(int fd, const char *pathname)
+{
+ union bpf_attr attr;
+
+ bzero(&attr, sizeof(attr));
+ attr.pathname = ptr_to_u64((void *)pathname);
+ attr.bpf_fd = fd;
+
+ return sys_bpf(BPF_OBJ_PIN, &attr, sizeof(attr));
+}
+
+int bpf_get_pinned_object(const char *pathname)
+{
+ union bpf_attr attr;
+
+ bzero(&attr, sizeof(attr));
+ attr.pathname = ptr_to_u64((void *)pathname);
+
+ return sys_bpf(BPF_OBJ_GET, &attr, sizeof(attr));
+}
diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h
index 3d22048..c9f1a1c 100644
--- a/tools/lib/bpf/bpf.h
+++ b/tools/lib/bpf/bpf.h
@@ -27,4 +27,7 @@ int bpf_map_update_elem(int fd, void *key, void *value,
int bpf_map_lookup_elem(int fd, void *key, void *value);
int bpf_map_delete_elem(int fd, void *key);
int bpf_map_get_next_key(int fd, void *key, void *next_key);
+
+int bpf_pin_object(int fd, const char *pathname);
+int bpf_get_pinned_object(const char *pathname);
#endif
--
1.8.3.4
next prev parent reply other threads:[~2015-12-17 5:23 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-17 5:23 [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations Wang Nan
2015-12-17 5:23 ` [PATCH 01/10] bpf samples: bpf: Fix tracex5_kern.c compiling error Wang Nan
2015-12-17 5:23 ` [PATCH 02/10] bpf tools: Define LD and RM in Makefile for 'make -R' Wang Nan
2015-12-17 5:23 ` [PATCH 03/10] bpf tools: Add const decoretor to 'license' and 'insns' for bpf_load_program() Wang Nan
2015-12-17 5:23 ` [PATCH 04/10] bpf tools: Switch to uapi style type names Wang Nan
2015-12-17 5:23 ` [PATCH 05/10] bpf tools: Support load different type of programs Wang Nan
2015-12-17 5:23 ` [PATCH 06/10] bpf tools: Support new map operations Wang Nan
2015-12-17 6:06 ` Wangnan (F)
2015-12-17 6:09 ` [PATCH v2 " Wang Nan
2015-12-17 5:23 ` Wang Nan [this message]
2015-12-17 5:23 ` [PATCH 08/10] bpf samples: Add utils.[ch] for using BPF Wang Nan
2015-12-17 23:11 ` Alexei Starovoitov
2015-12-18 1:47 ` Wangnan (F)
2015-12-18 6:19 ` Alexei Starovoitov
2015-12-18 7:04 ` Wangnan (F)
2015-12-18 7:10 ` Wangnan (F)
2015-12-18 10:57 ` Daniel Borkmann
2015-12-18 11:18 ` pi3orama
2015-12-18 11:24 ` Daniel Borkmann
2015-12-19 0:35 ` Alexei Starovoitov
2015-12-17 5:23 ` [PATCH 09/10] bpf samples: Uses libbpf in tools/lib to deal with BPF operations Wang Nan
2015-12-17 5:23 ` [PATCH 10/10] bpf samples: Remove old BPF helpers Wang Nan
2015-12-17 6:38 ` [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations Daniel Wagner
2015-12-17 6:51 ` Wangnan (F)
2015-12-17 7:03 ` Daniel Wagner
2015-12-17 8:29 ` Daniel Wagner
2015-12-17 10:09 ` Wangnan (F)
2015-12-17 13:46 ` Daniel Wagner
2015-12-18 3:04 ` Wangnan (F)
2015-12-18 8:49 ` Daniel Wagner
2015-12-18 10:56 ` [PATCH] tools build: Output more data during feature detection Wang Nan
2015-12-18 11:03 ` [PATCH 00/10] bpf samples: Uses libbpf in tools/lib to do BPF operations Wangnan (F)
2015-12-18 12:55 ` Daniel Wagner
2015-12-18 14:13 ` pi3orama
[not found] ` <66E52D4A-BA1C-456A-8E6F-975E07C083EE@163.com>
2015-12-18 14:22 ` Daniel Wagner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1450329794-161948-8-git-send-email-wangnan0@huawei.com \
--to=wangnan0@huawei.com \
--cc=acme@redhat.com \
--cc=agartrell@fb.com \
--cc=ast@kernel.org \
--cc=bblanco@plumgrid.com \
--cc=daniel.wagner@bmw-carit.de \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=holzheu@linux.vnet.ibm.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=pi3orama@163.com \
--cc=wangnan0@hauwei.com \
--cc=xiakaixu@huawei.com \
--cc=yang.shi@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®