aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/thread_map.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/util/thread_map.c')
-rw-r--r--tools/perf/util/thread_map.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/perf/util/thread_map.c b/tools/perf/util/thread_map.c
index 40585f5b7027..f9eab200fd75 100644
--- a/tools/perf/util/thread_map.c
+++ b/tools/perf/util/thread_map.c
@@ -448,3 +448,25 @@ bool thread_map__has(struct thread_map *threads, pid_t pid)
448 448
449 return false; 449 return false;
450} 450}
451
452int thread_map__remove(struct thread_map *threads, int idx)
453{
454 int i;
455
456 if (threads->nr < 1)
457 return -EINVAL;
458
459 if (idx >= threads->nr)
460 return -EINVAL;
461
462 /*
463 * Free the 'idx' item and shift the rest up.
464 */
465 free(threads->map[idx].comm);
466
467 for (i = idx; i < threads->nr - 1; i++)
468 threads->map[i] = threads->map[i + 1];
469
470 threads->nr--;
471 return 0;
472}