diff options
Diffstat (limited to 'tools/perf/util/thread_map.c')
-rw-r--r-- | tools/perf/util/thread_map.c | 22 |
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 | |||
452 | int 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 | } | ||