aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Stringer <joe@ovn.org>2017-01-26 16:20:00 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2017-01-31 14:20:07 -0500
commit71dc4c30680fa7e7fd4b82352a845e2fb4d86b2b (patch)
tree67f878a70fca8daab3a6d16303dccdc752904ddf
parent9a9c733d68c5cb89bd5c5ab91b9821e1a5d69272 (diff)
tools lib api fs: Add bpf_fs filesystem detector
Allow mounting of the BPF filesystem at /sys/fs/bpf. 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-6-joe@ovn.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/lib/api/fs/fs.c16
-rw-r--r--tools/lib/api/fs/fs.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/tools/lib/api/fs/fs.c b/tools/lib/api/fs/fs.c
index f99f49e4a31e..4b6bfc43cccf 100644
--- a/tools/lib/api/fs/fs.c
+++ b/tools/lib/api/fs/fs.c
@@ -38,6 +38,10 @@
38#define HUGETLBFS_MAGIC 0x958458f6 38#define HUGETLBFS_MAGIC 0x958458f6
39#endif 39#endif
40 40
41#ifndef BPF_FS_MAGIC
42#define BPF_FS_MAGIC 0xcafe4a11
43#endif
44
41static const char * const sysfs__fs_known_mountpoints[] = { 45static const char * const sysfs__fs_known_mountpoints[] = {
42 "/sys", 46 "/sys",
43 0, 47 0,
@@ -75,6 +79,11 @@ static const char * const hugetlbfs__known_mountpoints[] = {
75 0, 79 0,
76}; 80};
77 81
82static const char * const bpf_fs__known_mountpoints[] = {
83 "/sys/fs/bpf",
84 0,
85};
86
78struct fs { 87struct fs {
79 const char *name; 88 const char *name;
80 const char * const *mounts; 89 const char * const *mounts;
@@ -89,6 +98,7 @@ enum {
89 FS__DEBUGFS = 2, 98 FS__DEBUGFS = 2,
90 FS__TRACEFS = 3, 99 FS__TRACEFS = 3,
91 FS__HUGETLBFS = 4, 100 FS__HUGETLBFS = 4,
101 FS__BPF_FS = 5,
92}; 102};
93 103
94#ifndef TRACEFS_MAGIC 104#ifndef TRACEFS_MAGIC
@@ -121,6 +131,11 @@ static struct fs fs__entries[] = {
121 .mounts = hugetlbfs__known_mountpoints, 131 .mounts = hugetlbfs__known_mountpoints,
122 .magic = HUGETLBFS_MAGIC, 132 .magic = HUGETLBFS_MAGIC,
123 }, 133 },
134 [FS__BPF_FS] = {
135 .name = "bpf",
136 .mounts = bpf_fs__known_mountpoints,
137 .magic = BPF_FS_MAGIC,
138 },
124}; 139};
125 140
126static bool fs__read_mounts(struct fs *fs) 141static bool fs__read_mounts(struct fs *fs)
@@ -280,6 +295,7 @@ FS(procfs, FS__PROCFS);
280FS(debugfs, FS__DEBUGFS); 295FS(debugfs, FS__DEBUGFS);
281FS(tracefs, FS__TRACEFS); 296FS(tracefs, FS__TRACEFS);
282FS(hugetlbfs, FS__HUGETLBFS); 297FS(hugetlbfs, FS__HUGETLBFS);
298FS(bpf_fs, FS__BPF_FS);
283 299
284int filename__read_int(const char *filename, int *value) 300int filename__read_int(const char *filename, int *value)
285{ 301{
diff --git a/tools/lib/api/fs/fs.h b/tools/lib/api/fs/fs.h
index a63269f5d20c..6b332dc74498 100644
--- a/tools/lib/api/fs/fs.h
+++ b/tools/lib/api/fs/fs.h
@@ -22,6 +22,7 @@ FS(procfs)
22FS(debugfs) 22FS(debugfs)
23FS(tracefs) 23FS(tracefs)
24FS(hugetlbfs) 24FS(hugetlbfs)
25FS(bpf_fs)
25 26
26#undef FS 27#undef FS
27 28