]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | // SPDX-License-Identifier: GPL-2.0 |
5634bd7d SL |
2 | #include <stddef.h> |
3 | #include <stdbool.h> | |
4 | #include <linux/compiler.h> | |
5 | #include <linux/lockdep.h> | |
6 | #include <unistd.h> | |
7 | #include <sys/syscall.h> | |
8 | ||
9 | static __thread struct task_struct current_obj; | |
10 | ||
11 | /* lockdep wants these */ | |
12 | bool debug_locks = true; | |
13 | bool debug_locks_silent; | |
14 | ||
5634bd7d SL |
15 | __attribute__((destructor)) static void liblockdep_exit(void) |
16 | { | |
1393ba5c | 17 | debug_check_no_locks_held(); |
5634bd7d SL |
18 | } |
19 | ||
20 | struct task_struct *__curr(void) | |
21 | { | |
22 | if (current_obj.pid == 0) { | |
23 | /* Makes lockdep output pretty */ | |
24 | prctl(PR_GET_NAME, current_obj.comm); | |
25 | current_obj.pid = syscall(__NR_gettid); | |
26 | } | |
27 | ||
28 | return ¤t_obj; | |
29 | } |