Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
lock.h
Go to the documentation of this file.
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM lock
3 
4 #if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_LOCK_H
6 
7 #include <linux/lockdep.h>
8 #include <linux/tracepoint.h>
9 
10 #ifdef CONFIG_LOCKDEP
11 
13 
14  TP_PROTO(struct lockdep_map *lock, unsigned int subclass,
15  int trylock, int read, int check,
16  struct lockdep_map *next_lock, unsigned long ip),
17 
18  TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip),
19 
21  __field(unsigned int, flags)
22  __string(name, lock->name)
23  __field(void *, lockdep_addr)
24  ),
25 
27  __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0);
28  __assign_str(name, lock->name);
29  __entry->lockdep_addr = lock;
30  ),
31 
32  TP_printk("%p %s%s%s", __entry->lockdep_addr,
33  (__entry->flags & 1) ? "try " : "",
34  (__entry->flags & 2) ? "read " : "",
35  __get_str(name))
36 );
37 
39 
40  TP_PROTO(struct lockdep_map *lock, unsigned long ip),
41 
42  TP_ARGS(lock, ip),
43 
45  __string( name, lock->name )
46  __field( void *, lockdep_addr )
47  ),
48 
50  __assign_str(name, lock->name);
51  __entry->lockdep_addr = lock;
52  ),
53 
54  TP_printk("%p %s", __entry->lockdep_addr, __get_str(name))
55 );
56 
58 
59  TP_PROTO(struct lockdep_map *lock, unsigned long ip),
60 
61  TP_ARGS(lock, ip)
62 );
63 
64 #ifdef CONFIG_LOCK_STAT
65 
67 
68  TP_PROTO(struct lockdep_map *lock, unsigned long ip),
69 
70  TP_ARGS(lock, ip)
71 );
72 
74 
75  TP_PROTO(struct lockdep_map *lock, unsigned long ip),
76 
77  TP_ARGS(lock, ip)
78 );
79 
80 #endif
81 #endif
82 
83 #endif /* _TRACE_LOCK_H */
84 
85 /* This part must be outside protection */
86 #include <trace/define_trace.h>