Skip to content

Commit 24d6a80

Browse files
rdnaborkmann
authored andcommitted
libbpf: Consistent prefixes for interfaces in str_error.h.
libbpf is used more and more outside kernel tree. That means the library should follow good practices in library design and implementation to play well with third party code that uses it. One of such practices is to have a common prefix (or a few) for every interface, function or data structure, library provides. I helps to avoid name conflicts with other libraries and keeps API consistent. Inconsistent names in libbpf already cause problems in real life. E.g. an application can't use both libbpf and libnl due to conflicting symbols. Having common prefix will help to fix current and avoid future problems. libbpf already uses the following prefixes for its interfaces: * bpf_ for bpf system call wrappers, program/map/elf-object abstractions and a few other things; * btf_ for BTF related API; * libbpf_ for everything else. The patch renames function in str_error.h to have libbpf_ prefix since it misses one and doesn't fit well into the first two categories. Signed-off-by: Andrey Ignatov <rdna@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
1 parent f04bc8a commit 24d6a80

File tree

3 files changed

+13
-11
lines changed

3 files changed

+13
-11
lines changed

tools/lib/bpf/libbpf.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,8 @@ static int bpf_object__elf_init(struct bpf_object *obj)
470470
obj->efile.fd = open(obj->path, O_RDONLY);
471471
if (obj->efile.fd < 0) {
472472
char errmsg[STRERR_BUFSIZE];
473-
char *cp = str_error(errno, errmsg, sizeof(errmsg));
473+
char *cp = libbpf_strerror_r(errno, errmsg,
474+
sizeof(errmsg));
474475

475476
pr_warning("failed to open %s: %s\n", obj->path, cp);
476477
return -errno;
@@ -811,7 +812,8 @@ static int bpf_object__elf_collect(struct bpf_object *obj)
811812
data->d_size, name, idx);
812813
if (err) {
813814
char errmsg[STRERR_BUFSIZE];
814-
char *cp = str_error(-err, errmsg, sizeof(errmsg));
815+
char *cp = libbpf_strerror_r(-err, errmsg,
816+
sizeof(errmsg));
815817

816818
pr_warning("failed to alloc program %s (%s): %s",
817819
name, obj->path, cp);
@@ -1140,7 +1142,7 @@ bpf_object__create_maps(struct bpf_object *obj)
11401142

11411143
*pfd = bpf_create_map_xattr(&create_attr);
11421144
if (*pfd < 0 && create_attr.btf_key_type_id) {
1143-
cp = str_error(errno, errmsg, sizeof(errmsg));
1145+
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
11441146
pr_warning("Error in bpf_create_map_xattr(%s):%s(%d). Retrying without BTF.\n",
11451147
map->name, cp, errno);
11461148
create_attr.btf_fd = 0;
@@ -1155,7 +1157,7 @@ bpf_object__create_maps(struct bpf_object *obj)
11551157
size_t j;
11561158

11571159
err = *pfd;
1158-
cp = str_error(errno, errmsg, sizeof(errmsg));
1160+
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
11591161
pr_warning("failed to create map (name: '%s'): %s\n",
11601162
map->name, cp);
11611163
for (j = 0; j < i; j++)
@@ -1339,7 +1341,7 @@ load_program(enum bpf_prog_type type, enum bpf_attach_type expected_attach_type,
13391341
}
13401342

13411343
ret = -LIBBPF_ERRNO__LOAD;
1342-
cp = str_error(errno, errmsg, sizeof(errmsg));
1344+
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
13431345
pr_warning("load bpf program failed: %s\n", cp);
13441346

13451347
if (log_buf && log_buf[0] != '\0') {
@@ -1655,7 +1657,7 @@ static int check_path(const char *path)
16551657

16561658
dir = dirname(dname);
16571659
if (statfs(dir, &st_fs)) {
1658-
cp = str_error(errno, errmsg, sizeof(errmsg));
1660+
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
16591661
pr_warning("failed to statfs %s: %s\n", dir, cp);
16601662
err = -errno;
16611663
}
@@ -1691,7 +1693,7 @@ int bpf_program__pin_instance(struct bpf_program *prog, const char *path,
16911693
}
16921694

16931695
if (bpf_obj_pin(prog->instances.fds[instance], path)) {
1694-
cp = str_error(errno, errmsg, sizeof(errmsg));
1696+
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
16951697
pr_warning("failed to pin program: %s\n", cp);
16961698
return -errno;
16971699
}
@@ -1709,7 +1711,7 @@ static int make_dir(const char *path)
17091711
err = -errno;
17101712

17111713
if (err) {
1712-
cp = str_error(-err, errmsg, sizeof(errmsg));
1714+
cp = libbpf_strerror_r(-err, errmsg, sizeof(errmsg));
17131715
pr_warning("failed to mkdir %s: %s\n", path, cp);
17141716
}
17151717
return err;
@@ -1771,7 +1773,7 @@ int bpf_map__pin(struct bpf_map *map, const char *path)
17711773
}
17721774

17731775
if (bpf_obj_pin(map->fd, path)) {
1774-
cp = str_error(errno, errmsg, sizeof(errmsg));
1776+
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
17751777
pr_warning("failed to pin map: %s\n", cp);
17761778
return -errno;
17771779
}

tools/lib/bpf/str_error.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* libc, while checking strerror_r() return to avoid having to check this in
1010
* all places calling it.
1111
*/
12-
char *str_error(int err, char *dst, int len)
12+
char *libbpf_strerror_r(int err, char *dst, int len)
1313
{
1414
int ret = strerror_r(err, dst, len);
1515
if (ret)

tools/lib/bpf/str_error.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
#ifndef BPF_STR_ERROR
33
#define BPF_STR_ERROR
44

5-
char *str_error(int err, char *dst, int len);
5+
char *libbpf_strerror_r(int err, char *dst, int len);
66
#endif // BPF_STR_ERROR

0 commit comments

Comments
 (0)