linux/include/linux/debug_locks.h
<<
>>
Prefs
   1#ifndef __LINUX_DEBUG_LOCKING_H
   2#define __LINUX_DEBUG_LOCKING_H
   3
   4#include <linux/kernel.h>
   5
   6struct task_struct;
   7
   8extern int debug_locks;
   9extern int debug_locks_silent;
  10
  11/*
  12 * Generic 'turn off all lock debugging' function:
  13 */
  14extern int debug_locks_off(void);
  15
  16#define DEBUG_LOCKS_WARN_ON(c)                                          \
  17({                                                                      \
  18        int __ret = 0;                                                  \
  19                                                                        \
  20        if (unlikely(c)) {                                              \
  21                if (debug_locks_off() && !debug_locks_silent)           \
  22                        WARN_ON(1);                                     \
  23                __ret = 1;                                              \
  24        }                                                               \
  25        __ret;                                                          \
  26})
  27
  28#ifdef CONFIG_SMP
  29# define SMP_DEBUG_LOCKS_WARN_ON(c)                     DEBUG_LOCKS_WARN_ON(c)
  30#else
  31# define SMP_DEBUG_LOCKS_WARN_ON(c)                     do { } while (0)
  32#endif
  33
  34#ifdef CONFIG_DEBUG_LOCKING_API_SELFTESTS
  35  extern void locking_selftest(void);
  36#else
  37# define locking_selftest()     do { } while (0)
  38#endif
  39
  40struct task_struct;
  41
  42#ifdef CONFIG_LOCKDEP
  43extern void debug_show_all_locks(void);
  44extern void __debug_show_held_locks(struct task_struct *task);
  45extern void debug_show_held_locks(struct task_struct *task);
  46extern void debug_check_no_locks_freed(const void *from, unsigned long len);
  47extern void debug_check_no_locks_held(struct task_struct *task);
  48#else
  49static inline void debug_show_all_locks(void)
  50{
  51}
  52
  53static inline void __debug_show_held_locks(struct task_struct *task)
  54{
  55}
  56
  57static inline void debug_show_held_locks(struct task_struct *task)
  58{
  59}
  60
  61static inline void
  62debug_check_no_locks_freed(const void *from, unsigned long len)
  63{
  64}
  65
  66static inline void
  67debug_check_no_locks_held(struct task_struct *task)
  68{
  69}
  70#endif
  71
  72#endif
  73
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.