13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
23d0407baSopenharmony_ci#undef TRACE_SYSTEM
33d0407baSopenharmony_ci#define TRACE_SYSTEM rwsem
43d0407baSopenharmony_ci#define TRACE_INCLUDE_PATH trace/hooks
53d0407baSopenharmony_ci#if !defined(_TRACE_HOOK_RWSEM_H) || defined(TRACE_HEADER_MULTI_READ)
63d0407baSopenharmony_ci#define _TRACE_HOOK_RWSEM_H
73d0407baSopenharmony_ci#include <linux/tracepoint.h>
83d0407baSopenharmony_ci#include <trace/hooks/vendor_hooks.h>
93d0407baSopenharmony_ci/*
103d0407baSopenharmony_ci * Following tracepoints are not exported in tracefs and provide a
113d0407baSopenharmony_ci * mechanism for vendor modules to hook and extend functionality
123d0407baSopenharmony_ci */
133d0407baSopenharmony_cistruct rw_semaphore;
143d0407baSopenharmony_cistruct rwsem_waiter;
153d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_init,
163d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
173d0407baSopenharmony_ci	TP_ARGS(sem));
183d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_wake,
193d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
203d0407baSopenharmony_ci	TP_ARGS(sem));
213d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_write_finished,
223d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
233d0407baSopenharmony_ci	TP_ARGS(sem));
243d0407baSopenharmony_ciDECLARE_HOOK(android_vh_alter_rwsem_list_add,
253d0407baSopenharmony_ci	TP_PROTO(struct rwsem_waiter *waiter,
263d0407baSopenharmony_ci		 struct rw_semaphore *sem,
273d0407baSopenharmony_ci		 bool *already_on_list),
283d0407baSopenharmony_ci	TP_ARGS(waiter, sem, already_on_list));
293d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_wake_finish,
303d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
313d0407baSopenharmony_ci	TP_ARGS(sem));
323d0407baSopenharmony_ci
333d0407baSopenharmony_ci/* macro versions of hooks are no longer required */
343d0407baSopenharmony_ci
353d0407baSopenharmony_ci#endif /* _TRACE_HOOK_RWSEM_H */
363d0407baSopenharmony_ci/* This part must be outside protection */
373d0407baSopenharmony_ci#include <trace/define_trace.h>
38