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