tools/bpf: add const qualifier to btf__get_map_kv_tids() map_name parameter
authorYonghong Song <yhs@fb.com>
Tue, 5 Feb 2019 19:48:22 +0000 (11:48 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 6 Feb 2019 02:38:58 +0000 (18:38 -0800)
Commit 96408c43447a ("tools/bpf: implement libbpf btf__get_map_kv_tids() API function")
added the API function btf__get_map_kv_tids():
  btf__get_map_kv_tids(const struct btf *btf, char *map_name, ...)

The parameter map_name has type "char *". This is okay inside libbpf library since
the map_name is from bpf_map->name which also has type "char *".

This will be problematic if the caller for map_name already has attribute "const",
e.g., from C++ string.c_str(). It will result in either a warning or an error.

  /home/yhs/work/bcc/src/cc/btf.cc:166:51:
    error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
      return btf__get_map_kv_tids(btf_, map_name.c_str()

This patch added "const" attributes to map_name parameter.

Fixes: 96408c43447a ("tools/bpf: implement libbpf btf__get_map_kv_tids() API function")
Signed-off-by: Yonghong Song <yhs@fb.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/btf.c
tools/lib/bpf/btf.h

index 4949f8840bdacd0ae58cdcf9fdc97e7676aa15b1..3b3a2959d03a1b4463b94e35a24152c8423cc3de 100644 (file)
@@ -511,7 +511,7 @@ exit_free:
        return err;
 }
 
-int btf__get_map_kv_tids(const struct btf *btf, char *map_name,
+int btf__get_map_kv_tids(const struct btf *btf, const char *map_name,
                         __u32 expected_key_size, __u32 expected_value_size,
                         __u32 *key_type_id, __u32 *value_type_id)
 {
index 25a9d2db035df78a8ecc46a7ad7e18a4fdb12899..b393da90cc8511a1cf24cb3954b6b23d9f5d8d91 100644 (file)
@@ -69,7 +69,7 @@ LIBBPF_API void btf__get_strings(const struct btf *btf, const char **strings,
                                 __u32 *str_len);
 LIBBPF_API const char *btf__name_by_offset(const struct btf *btf, __u32 offset);
 LIBBPF_API int btf__get_from_id(__u32 id, struct btf **btf);
-LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, char *map_name,
+LIBBPF_API int btf__get_map_kv_tids(const struct btf *btf, const char *map_name,
                                    __u32 expected_key_size,
                                    __u32 expected_value_size,
                                    __u32 *key_type_id, __u32 *value_type_id);