perf tools: Pass build_id object to dso__build_id_equal()
[linux-2.6-microblaze.git] / tools / perf / util / dso.c
index 5a3b475..ca96584 100644 (file)
@@ -172,9 +172,7 @@ int dso__read_binary_type_filename(const struct dso *dso,
                        break;
                }
 
-               build_id__sprintf(dso->build_id,
-                                 sizeof(dso->build_id),
-                                 build_id_hex);
+               build_id__sprintf(&dso->bid, build_id_hex);
                len = __symbol__join_symfs(filename, size, "/usr/lib/debug/.build-id/");
                snprintf(filename + len, size - len, "%.2s/%s.debug",
                         build_id_hex, build_id_hex + 2);
@@ -1328,15 +1326,16 @@ void dso__put(struct dso *dso)
                dso__delete(dso);
 }
 
-void dso__set_build_id(struct dso *dso, void *build_id)
+void dso__set_build_id(struct dso *dso, struct build_id *bid)
 {
-       memcpy(dso->build_id, build_id, sizeof(dso->build_id));
+       dso->bid = *bid;
        dso->has_build_id = 1;
 }
 
-bool dso__build_id_equal(const struct dso *dso, u8 *build_id)
+bool dso__build_id_equal(const struct dso *dso, struct build_id *bid)
 {
-       return memcmp(dso->build_id, build_id, sizeof(dso->build_id)) == 0;
+       return dso->bid.size == bid->size &&
+              memcmp(dso->bid.data, bid->data, dso->bid.size) == 0;
 }
 
 void dso__read_running_kernel_build_id(struct dso *dso, struct machine *machine)
@@ -1346,8 +1345,7 @@ void dso__read_running_kernel_build_id(struct dso *dso, struct machine *machine)
        if (machine__is_default_guest(machine))
                return;
        sprintf(path, "%s/sys/kernel/notes", machine->root_dir);
-       if (sysfs__read_build_id(path, dso->build_id,
-                                sizeof(dso->build_id)) == 0)
+       if (sysfs__read_build_id(path, &dso->bid) == 0)
                dso->has_build_id = true;
 }
 
@@ -1365,8 +1363,7 @@ int dso__kernel_module_get_build_id(struct dso *dso,
                 "%s/sys/module/%.*s/notes/.note.gnu.build-id",
                 root_dir, (int)strlen(name) - 1, name);
 
-       if (sysfs__read_build_id(filename, dso->build_id,
-                                sizeof(dso->build_id)) == 0)
+       if (sysfs__read_build_id(filename, &dso->bid) == 0)
                dso->has_build_id = true;
 
        return 0;
@@ -1376,7 +1373,7 @@ size_t dso__fprintf_buildid(struct dso *dso, FILE *fp)
 {
        char sbuild_id[SBUILD_ID_SIZE];
 
-       build_id__sprintf(dso->build_id, sizeof(dso->build_id), sbuild_id);
+       build_id__sprintf(&dso->bid, sbuild_id);
        return fprintf(fp, "%s", sbuild_id);
 }