enum lock_usage_bit { … };
static_assert(…);
#define LOCK_USAGE_READ_MASK …
#define LOCK_USAGE_DIR_MASK …
#define LOCK_USAGE_STATE_MASK …
#define __LOCKF(__STATE) …
enum { … };
#define LOCKDEP_STATE …
static const unsigned long LOCKF_ENABLED_IRQ = …;
#undef LOCKDEP_STATE
#define LOCKDEP_STATE …
static const unsigned long LOCKF_USED_IN_IRQ = …;
#undef LOCKDEP_STATE
#define LOCKDEP_STATE …
static const unsigned long LOCKF_ENABLED_IRQ_READ = …;
#undef LOCKDEP_STATE
#define LOCKDEP_STATE …
static const unsigned long LOCKF_USED_IN_IRQ_READ = …;
#undef LOCKDEP_STATE
#define LOCKF_ENABLED_IRQ_ALL …
#define LOCKF_USED_IN_IRQ_ALL …
#define LOCKF_IRQ …
#define LOCKF_IRQ_READ …
#ifdef CONFIG_LOCKDEP_SMALL
#define MAX_LOCKDEP_ENTRIES …
#define MAX_LOCKDEP_CHAINS_BITS …
#define MAX_STACK_TRACE_ENTRIES …
#define STACK_TRACE_HASH_SIZE …
#else
#define MAX_LOCKDEP_ENTRIES …
#define MAX_LOCKDEP_CHAINS_BITS …
#define MAX_STACK_TRACE_ENTRIES …
#define STACK_TRACE_HASH_SIZE …
#endif
#define LOCK_CHAIN_SOFTIRQ_CONTEXT …
#define LOCK_CHAIN_HARDIRQ_CONTEXT …
#define MAX_LOCKDEP_CHAINS …
#define MAX_LOCKDEP_CHAIN_HLOCKS …
extern struct lock_chain lock_chains[];
#define LOCK_USAGE_CHARS …
extern void get_usage_chars(struct lock_class *class,
char usage[LOCK_USAGE_CHARS]);
extern const char *__get_key_name(const struct lockdep_subclass_key *key,
char *str);
struct lock_class *lock_chain_get_class(struct lock_chain *chain, int i);
extern unsigned long nr_lock_classes;
extern unsigned long nr_zapped_classes;
extern unsigned long nr_zapped_lock_chains;
extern unsigned long nr_list_entries;
long lockdep_next_lockchain(long i);
unsigned long lock_chain_count(void);
extern unsigned long nr_stack_trace_entries;
extern unsigned int nr_hardirq_chains;
extern unsigned int nr_softirq_chains;
extern unsigned int nr_process_chains;
extern unsigned int nr_free_chain_hlocks;
extern unsigned int nr_lost_chain_hlocks;
extern unsigned int nr_large_chain_blocks;
extern unsigned int max_lockdep_depth;
extern unsigned int max_bfs_queue_depth;
extern unsigned long max_lock_class_idx;
extern struct lock_class lock_classes[MAX_LOCKDEP_KEYS];
extern unsigned long lock_classes_in_use[];
#ifdef CONFIG_PROVE_LOCKING
extern unsigned long lockdep_count_forward_deps(struct lock_class *);
extern unsigned long lockdep_count_backward_deps(struct lock_class *);
#ifdef CONFIG_TRACE_IRQFLAGS
u64 lockdep_stack_trace_count(void);
u64 lockdep_stack_hash_count(void);
#endif
#else
static inline unsigned long
lockdep_count_forward_deps(struct lock_class *class)
{
return 0;
}
static inline unsigned long
lockdep_count_backward_deps(struct lock_class *class)
{
return 0;
}
#endif
#ifdef CONFIG_DEBUG_LOCKDEP
#include <asm/local.h>
struct lockdep_stats { … };
DECLARE_PER_CPU(struct lockdep_stats, lockdep_stats);
#define __debug_atomic_inc(ptr) …
#define debug_atomic_inc(ptr) …
#define debug_atomic_dec(ptr) …
#define debug_atomic_read(ptr) …
static inline void debug_class_ops_inc(struct lock_class *class)
{ … }
static inline unsigned long debug_class_ops_read(struct lock_class *class)
{ … }
#else
#define __debug_atomic_inc …
#define debug_atomic_inc …
#define debug_atomic_dec …
#define debug_atomic_read …
#define debug_class_ops_inc …
#endif