13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
23d0407baSopenharmony_ci#undef TRACE_SYSTEM
33d0407baSopenharmony_ci#define TRACE_SYSTEM dtask
43d0407baSopenharmony_ci#define TRACE_INCLUDE_PATH trace/hooks
53d0407baSopenharmony_ci
63d0407baSopenharmony_ci#if !defined(_TRACE_HOOK_DTASK_H) || defined(TRACE_HEADER_MULTI_READ)
73d0407baSopenharmony_ci#define _TRACE_HOOK_DTASK_H
83d0407baSopenharmony_ci#include <linux/tracepoint.h>
93d0407baSopenharmony_ci#include <trace/hooks/vendor_hooks.h>
103d0407baSopenharmony_ci/*
113d0407baSopenharmony_ci * Following tracepoints are not exported in tracefs and provide a
123d0407baSopenharmony_ci * mechanism for vendor modules to hook and extend functionality
133d0407baSopenharmony_ci */
143d0407baSopenharmony_cistruct mutex;
153d0407baSopenharmony_ciDECLARE_HOOK(android_vh_mutex_wait_start,
163d0407baSopenharmony_ci	TP_PROTO(struct mutex *lock),
173d0407baSopenharmony_ci	TP_ARGS(lock));
183d0407baSopenharmony_ciDECLARE_HOOK(android_vh_mutex_wait_finish,
193d0407baSopenharmony_ci	TP_PROTO(struct mutex *lock),
203d0407baSopenharmony_ci	TP_ARGS(lock));
213d0407baSopenharmony_ci
223d0407baSopenharmony_cistruct rt_mutex;
233d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rtmutex_wait_start,
243d0407baSopenharmony_ci	TP_PROTO(struct rt_mutex *lock),
253d0407baSopenharmony_ci	TP_ARGS(lock));
263d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rtmutex_wait_finish,
273d0407baSopenharmony_ci	TP_PROTO(struct rt_mutex *lock),
283d0407baSopenharmony_ci	TP_ARGS(lock));
293d0407baSopenharmony_ci
303d0407baSopenharmony_cistruct rw_semaphore;
313d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_read_wait_start,
323d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
333d0407baSopenharmony_ci	TP_ARGS(sem));
343d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_read_wait_finish,
353d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
363d0407baSopenharmony_ci	TP_ARGS(sem));
373d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_write_wait_start,
383d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
393d0407baSopenharmony_ci	TP_ARGS(sem));
403d0407baSopenharmony_ciDECLARE_HOOK(android_vh_rwsem_write_wait_finish,
413d0407baSopenharmony_ci	TP_PROTO(struct rw_semaphore *sem),
423d0407baSopenharmony_ci	TP_ARGS(sem));
433d0407baSopenharmony_ci
443d0407baSopenharmony_cistruct task_struct;
453d0407baSopenharmony_ciDECLARE_HOOK(android_vh_sched_show_task,
463d0407baSopenharmony_ci	TP_PROTO(struct task_struct *task),
473d0407baSopenharmony_ci	TP_ARGS(task));
483d0407baSopenharmony_ciDECLARE_HOOK(android_vh_alter_mutex_list_add,
493d0407baSopenharmony_ci	TP_PROTO(struct mutex *lock,
503d0407baSopenharmony_ci		struct mutex_waiter *waiter,
513d0407baSopenharmony_ci		struct list_head *list,
523d0407baSopenharmony_ci		bool *already_on_list),
533d0407baSopenharmony_ci	TP_ARGS(lock, waiter, list, already_on_list));
543d0407baSopenharmony_ciDECLARE_HOOK(android_vh_mutex_unlock_slowpath,
553d0407baSopenharmony_ci	TP_PROTO(struct mutex *lock),
563d0407baSopenharmony_ci	TP_ARGS(lock));
573d0407baSopenharmony_ci
583d0407baSopenharmony_ci/* macro versions of hooks are no longer required */
593d0407baSopenharmony_ci
603d0407baSopenharmony_ci#endif /* _TRACE_HOOK_DTASK_H */
613d0407baSopenharmony_ci/* This part must be outside protection */
623d0407baSopenharmony_ci#include <trace/define_trace.h>
63