mirror of
https://github.com/torvalds/linux.git
synced 2024-11-29 07:31:29 +00:00
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>
This commit is contained in:
parent
f04bc8a436
commit
24d6a80842
@ -470,7 +470,8 @@ static int bpf_object__elf_init(struct bpf_object *obj)
|
|||||||
obj->efile.fd = open(obj->path, O_RDONLY);
|
obj->efile.fd = open(obj->path, O_RDONLY);
|
||||||
if (obj->efile.fd < 0) {
|
if (obj->efile.fd < 0) {
|
||||||
char errmsg[STRERR_BUFSIZE];
|
char errmsg[STRERR_BUFSIZE];
|
||||||
char *cp = str_error(errno, errmsg, sizeof(errmsg));
|
char *cp = libbpf_strerror_r(errno, errmsg,
|
||||||
|
sizeof(errmsg));
|
||||||
|
|
||||||
pr_warning("failed to open %s: %s\n", obj->path, cp);
|
pr_warning("failed to open %s: %s\n", obj->path, cp);
|
||||||
return -errno;
|
return -errno;
|
||||||
@ -811,7 +812,8 @@ static int bpf_object__elf_collect(struct bpf_object *obj)
|
|||||||
data->d_size, name, idx);
|
data->d_size, name, idx);
|
||||||
if (err) {
|
if (err) {
|
||||||
char errmsg[STRERR_BUFSIZE];
|
char errmsg[STRERR_BUFSIZE];
|
||||||
char *cp = str_error(-err, errmsg, sizeof(errmsg));
|
char *cp = libbpf_strerror_r(-err, errmsg,
|
||||||
|
sizeof(errmsg));
|
||||||
|
|
||||||
pr_warning("failed to alloc program %s (%s): %s",
|
pr_warning("failed to alloc program %s (%s): %s",
|
||||||
name, obj->path, cp);
|
name, obj->path, cp);
|
||||||
@ -1140,7 +1142,7 @@ bpf_object__create_maps(struct bpf_object *obj)
|
|||||||
|
|
||||||
*pfd = bpf_create_map_xattr(&create_attr);
|
*pfd = bpf_create_map_xattr(&create_attr);
|
||||||
if (*pfd < 0 && create_attr.btf_key_type_id) {
|
if (*pfd < 0 && create_attr.btf_key_type_id) {
|
||||||
cp = str_error(errno, errmsg, sizeof(errmsg));
|
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
|
||||||
pr_warning("Error in bpf_create_map_xattr(%s):%s(%d). Retrying without BTF.\n",
|
pr_warning("Error in bpf_create_map_xattr(%s):%s(%d). Retrying without BTF.\n",
|
||||||
map->name, cp, errno);
|
map->name, cp, errno);
|
||||||
create_attr.btf_fd = 0;
|
create_attr.btf_fd = 0;
|
||||||
@ -1155,7 +1157,7 @@ bpf_object__create_maps(struct bpf_object *obj)
|
|||||||
size_t j;
|
size_t j;
|
||||||
|
|
||||||
err = *pfd;
|
err = *pfd;
|
||||||
cp = str_error(errno, errmsg, sizeof(errmsg));
|
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
|
||||||
pr_warning("failed to create map (name: '%s'): %s\n",
|
pr_warning("failed to create map (name: '%s'): %s\n",
|
||||||
map->name, cp);
|
map->name, cp);
|
||||||
for (j = 0; j < i; j++)
|
for (j = 0; j < i; j++)
|
||||||
@ -1339,7 +1341,7 @@ load_program(enum bpf_prog_type type, enum bpf_attach_type expected_attach_type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ret = -LIBBPF_ERRNO__LOAD;
|
ret = -LIBBPF_ERRNO__LOAD;
|
||||||
cp = str_error(errno, errmsg, sizeof(errmsg));
|
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
|
||||||
pr_warning("load bpf program failed: %s\n", cp);
|
pr_warning("load bpf program failed: %s\n", cp);
|
||||||
|
|
||||||
if (log_buf && log_buf[0] != '\0') {
|
if (log_buf && log_buf[0] != '\0') {
|
||||||
@ -1655,7 +1657,7 @@ static int check_path(const char *path)
|
|||||||
|
|
||||||
dir = dirname(dname);
|
dir = dirname(dname);
|
||||||
if (statfs(dir, &st_fs)) {
|
if (statfs(dir, &st_fs)) {
|
||||||
cp = str_error(errno, errmsg, sizeof(errmsg));
|
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
|
||||||
pr_warning("failed to statfs %s: %s\n", dir, cp);
|
pr_warning("failed to statfs %s: %s\n", dir, cp);
|
||||||
err = -errno;
|
err = -errno;
|
||||||
}
|
}
|
||||||
@ -1691,7 +1693,7 @@ int bpf_program__pin_instance(struct bpf_program *prog, const char *path,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (bpf_obj_pin(prog->instances.fds[instance], path)) {
|
if (bpf_obj_pin(prog->instances.fds[instance], path)) {
|
||||||
cp = str_error(errno, errmsg, sizeof(errmsg));
|
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
|
||||||
pr_warning("failed to pin program: %s\n", cp);
|
pr_warning("failed to pin program: %s\n", cp);
|
||||||
return -errno;
|
return -errno;
|
||||||
}
|
}
|
||||||
@ -1709,7 +1711,7 @@ static int make_dir(const char *path)
|
|||||||
err = -errno;
|
err = -errno;
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
cp = str_error(-err, errmsg, sizeof(errmsg));
|
cp = libbpf_strerror_r(-err, errmsg, sizeof(errmsg));
|
||||||
pr_warning("failed to mkdir %s: %s\n", path, cp);
|
pr_warning("failed to mkdir %s: %s\n", path, cp);
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
@ -1771,7 +1773,7 @@ int bpf_map__pin(struct bpf_map *map, const char *path)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (bpf_obj_pin(map->fd, path)) {
|
if (bpf_obj_pin(map->fd, path)) {
|
||||||
cp = str_error(errno, errmsg, sizeof(errmsg));
|
cp = libbpf_strerror_r(errno, errmsg, sizeof(errmsg));
|
||||||
pr_warning("failed to pin map: %s\n", cp);
|
pr_warning("failed to pin map: %s\n", cp);
|
||||||
return -errno;
|
return -errno;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
* libc, while checking strerror_r() return to avoid having to check this in
|
* libc, while checking strerror_r() return to avoid having to check this in
|
||||||
* all places calling it.
|
* all places calling it.
|
||||||
*/
|
*/
|
||||||
char *str_error(int err, char *dst, int len)
|
char *libbpf_strerror_r(int err, char *dst, int len)
|
||||||
{
|
{
|
||||||
int ret = strerror_r(err, dst, len);
|
int ret = strerror_r(err, dst, len);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -2,5 +2,5 @@
|
|||||||
#ifndef BPF_STR_ERROR
|
#ifndef BPF_STR_ERROR
|
||||||
#define BPF_STR_ERROR
|
#define BPF_STR_ERROR
|
||||||
|
|
||||||
char *str_error(int err, char *dst, int len);
|
char *libbpf_strerror_r(int err, char *dst, int len);
|
||||||
#endif // BPF_STR_ERROR
|
#endif // BPF_STR_ERROR
|
||||||
|
Loading…
Reference in New Issue
Block a user