blob: e56997288f2b07d273f860be50a830351ad128e1 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Sasha Levin5634bd72013-06-13 18:41:17 -04002#ifndef _LIBLOCKDEP_LOCKDEP_H_
3#define _LIBLOCKDEP_LOCKDEP_H_
4
5#include <sys/prctl.h>
6#include <sys/syscall.h>
7#include <string.h>
8#include <limits.h>
9#include <linux/utsname.h>
Sasha Levin2b62c2d2015-11-06 15:47:29 -050010#include <linux/compiler.h>
Levin, Alexander (Sasha Levin)e58e8712017-05-31 00:38:09 +000011#include <linux/export.h>
12#include <linux/kern_levels.h>
13#include <linux/err.h>
14#include <linux/rcu.h>
15#include <linux/list.h>
16#include <linux/hardirq.h>
Alexander Sverdlin20fb6542017-05-25 12:58:46 +000017#include <unistd.h>
Sasha Levin5634bd72013-06-13 18:41:17 -040018
Ben Hutchings98dcea02017-05-25 12:58:33 +000019#define MAX_LOCK_DEPTH 63UL
Sasha Levin5634bd72013-06-13 18:41:17 -040020
Sasha Levin95f75472014-04-01 09:29:15 -040021#define asmlinkage
22#define __visible
23
Sasha Levin5634bd72013-06-13 18:41:17 -040024#include "../../../include/linux/lockdep.h"
25
26struct task_struct {
27 u64 curr_chain_key;
28 int lockdep_depth;
29 unsigned int lockdep_recursion;
30 struct held_lock held_locks[MAX_LOCK_DEPTH];
31 gfp_t lockdep_reclaim_gfp;
32 int pid;
Sasha Levin16214312018-08-13 19:05:39 +000033 int state;
Sasha Levin5634bd72013-06-13 18:41:17 -040034 char comm[17];
35};
36
Sasha Levin16214312018-08-13 19:05:39 +000037#define TASK_RUNNING 0
38
Sasha Levin5634bd72013-06-13 18:41:17 -040039extern struct task_struct *__curr(void);
40
41#define current (__curr())
42
Ben Hutchingsbb7ea2a2017-05-25 12:58:37 +000043static inline int debug_locks_off(void)
44{
45 return 1;
46}
47
Sasha Levin5634bd72013-06-13 18:41:17 -040048#define task_pid_nr(tsk) ((tsk)->pid)
49
50#define KSYM_NAME_LEN 128
Alexander Sverdlin20fb6542017-05-25 12:58:46 +000051#define printk(...) dprintf(STDOUT_FILENO, __VA_ARGS__)
Levin, Alexander (Sasha Levin)e58e8712017-05-31 00:38:09 +000052#define pr_err(format, ...) fprintf (stderr, format, ## __VA_ARGS__)
53#define pr_warn pr_err
Mengting Zhang92ccc262017-12-12 18:16:57 +000054#define pr_cont pr_err
Sasha Levin5634bd72013-06-13 18:41:17 -040055
56#define list_del_rcu list_del
57
58#define atomic_t unsigned long
59#define atomic_inc(x) ((*(x))++)
60
Sasha Levin5634bd72013-06-13 18:41:17 -040061#define print_tainted() ""
62#define static_obj(x) 1
63
64#define debug_show_all_locks()
Sasha Levin2b62c2d2015-11-06 15:47:29 -050065extern void debug_check_no_locks_held(void);
Sasha Levin5634bd72013-06-13 18:41:17 -040066
Levin, Alexander (Sasha Levin)3156cba2017-05-25 12:58:55 +000067static __used bool __is_kernel_percpu_address(unsigned long addr, void *can_addr)
68{
69 return false;
70}
71
Sasha Levin5634bd72013-06-13 18:41:17 -040072#endif