• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM rwsem
4 #define TRACE_INCLUDE_PATH trace/hooks
5 #if !defined(_TRACE_HOOK_RWSEM_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_HOOK_RWSEM_H
7 #include <trace/hooks/vendor_hooks.h>
8 /*
9  * Following tracepoints are not exported in tracefs and provide a
10  * mechanism for vendor modules to hook and extend functionality
11  */
12 struct rw_semaphore;
13 struct rwsem_waiter;
14 DECLARE_HOOK(android_vh_rwsem_init,
15 	TP_PROTO(struct rw_semaphore *sem),
16 	TP_ARGS(sem));
17 DECLARE_HOOK(android_vh_rwsem_wake,
18 	TP_PROTO(struct rw_semaphore *sem),
19 	TP_ARGS(sem));
20 DECLARE_HOOK(android_vh_rwsem_write_finished,
21 	TP_PROTO(struct rw_semaphore *sem),
22 	TP_ARGS(sem));
23 DECLARE_HOOK(android_vh_alter_rwsem_list_add,
24 	TP_PROTO(struct rwsem_waiter *waiter,
25 		 struct rw_semaphore *sem,
26 		 bool *already_on_list),
27 	TP_ARGS(waiter, sem, already_on_list));
28 DECLARE_HOOK(android_vh_rwsem_downgrade_wake_finish,
29 	TP_PROTO(struct rw_semaphore *sem),
30 	TP_ARGS(sem));
31 DECLARE_HOOK(android_vh_rwsem_wake_finish,
32 	TP_PROTO(struct rw_semaphore *sem),
33 	TP_ARGS(sem));
34 DECLARE_HOOK(android_vh_rwsem_direct_rsteal,
35 	TP_PROTO(struct rw_semaphore *sem, bool *steal),
36 	TP_ARGS(sem, steal));
37 DECLARE_HOOK(android_vh_rwsem_optimistic_rspin,
38 	TP_PROTO(struct rw_semaphore *sem, long *adjustment, bool *rspin),
39 	TP_ARGS(sem, adjustment, rspin));
40 DECLARE_HOOK(android_vh_record_rwsem_reader_owned,
41 	TP_PROTO(struct rw_semaphore *sem,
42 		 struct list_head *wlist),
43 	TP_ARGS(sem, wlist));
44 DECLARE_HOOK(android_vh_clear_rwsem_reader_owned,
45 	TP_PROTO(struct rw_semaphore *sem),
46 	TP_ARGS(sem));
47 DECLARE_HOOK(android_vh_record_rwsem_writer_owned,
48 	TP_PROTO(struct rw_semaphore *sem),
49 	TP_ARGS(sem));
50 DECLARE_HOOK(android_vh_clear_rwsem_writer_owned,
51 	TP_PROTO(struct rw_semaphore *sem),
52 	TP_ARGS(sem));
53 DECLARE_HOOK(android_vh_rwsem_read_trylock_failed,
54 	TP_PROTO(struct rw_semaphore *sem, long *cntp, int *ret),
55 	TP_ARGS(sem, cntp, ret));
56 #endif /* _TRACE_HOOK_RWSEM_H */
57 /* This part must be outside protection */
58 #include <trace/define_trace.h>
59