1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __PERF_THREADS_H
3 #define __PERF_THREADS_H
10 #define THREADS__TABLE_BITS 3
11 #define THREADS__TABLE_SIZE (1 << THREADS__TABLE_BITS)
13 struct threads_table_entry
{
14 /* Key is tid, value is struct thread. */
16 struct rw_semaphore lock
;
17 struct thread
*last_match
;
21 struct threads_table_entry table
[THREADS__TABLE_SIZE
];
24 void threads__init(struct threads
*threads
);
25 void threads__exit(struct threads
*threads
);
26 size_t threads__nr(struct threads
*threads
);
27 struct thread
*threads__find(struct threads
*threads
, pid_t tid
);
28 struct thread
*threads__findnew(struct threads
*threads
, pid_t pid
, pid_t tid
, bool *created
);
29 void threads__remove_all_threads(struct threads
*threads
);
30 void threads__remove(struct threads
*threads
, struct thread
*thread
);
31 int threads__for_each_thread(struct threads
*threads
,
32 int (*fn
)(struct thread
*thread
, void *data
),
35 #endif /* __PERF_THREADS_H */