ANDROID: remove inclusions from hook definition headers

To avoid changing the visibiliy of data types when including
hook definition headers remove header file inclusions from
the hook definition header files.

Instead, the hook definition headers should just have forward
declarations that don't require full definition.

To provide full definitions of the types for the KMI, the
headers that define the types should be included by the
source file that instantiates the hooks - normally
vendor_hooks.c.

Since the KMI is frozen, some of the inclusions are still
required to preserve the CRC associated with symbols. Keep
these inclusions under #ifdef __GENKSYMS__.

Bug: 233047575
Signed-off-by: Todd Kjos <tkjos@google.com>
Change-Id: Ibc1173eb4b07fcec21c7abd8e0ab1950b3fb5b34
This commit is contained in:
Todd Kjos
2022-08-31 15:59:29 -07:00
parent ea45eaaaae
commit ecb7d6b106
45 changed files with 264 additions and 95 deletions

View File

@@ -6,6 +6,12 @@
* Copyright 2020 Google LLC
*/
#ifndef __GENKSYMS__
#include <../kernel/printk/printk_ringbuffer.h>
#include <uapi/linux/android/binder.h>
#include <linux/timekeeper_internal.h>
#endif
#define CREATE_TRACE_POINTS
#include <trace/hooks/vendor_hooks.h>
#include <linux/tracepoint.h>

View File

@@ -9,12 +9,15 @@
#include <trace/hooks/vendor_hooks.h>
/* struct snd_usb_audio */
#ifdef __GENKSYMS__
#include <../sound/usb/usbaudio.h>
/* struct usb_interface */
#include <linux/usb.h>
/* struct snd_pcm_substream */
#include <sound/pcm.h>
#endif
struct snd_usb_audio;
struct usb_interface;
struct snd_pcm_substream;
DECLARE_HOOK(android_vh_audio_usb_offload_vendor_set,
TP_PROTO(void *arg),

View File

@@ -10,12 +10,18 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct binder_proc, struct binder_thread, struct binder_transaction */
#ifdef __GENKSYMS__
#include <../drivers/android/binder_internal.h>
/* struct task_struct */
#include <linux/sched.h>
/* struct binder_transaction_data */
#include <uapi/linux/android/binder.h>
#endif
struct binder_proc;
struct binder_thread;
struct binder_transaction;
struct binder_transaction_data;
struct task_struct;
DECLARE_HOOK(android_vh_binder_transaction_init,
TP_PROTO(struct binder_transaction *t),
TP_ARGS(t));

View File

@@ -10,12 +10,15 @@
#include <linux/tracepoint.h>
#include <trace/hooks/vendor_hooks.h>
/* struct blk_mq_tags */
#ifdef __GENKSYMS__
#include <../block/blk-mq-tag.h>
/* struct blk_mq_alloc_data */
#include <../block/blk-mq.h>
/* struct blk_mq_tag_set */
#include <linux/blk-mq.h>
#endif
struct blk_mq_tags;
struct blk_mq_alloc_data;
struct blk_mq_tag_set;
DECLARE_HOOK(android_vh_blk_alloc_rqs,
TP_PROTO(size_t *rq_size, struct blk_mq_tag_set *set,

View File

@@ -8,7 +8,13 @@
#define _TRACE_HOOK_CFG80211_H
#include <trace/hooks/vendor_hooks.h>
#ifdef __GENKSYMS__
#include <net/cfg80211.h>
#endif
struct wiphy;
struct wireless_dev;
DECLARE_HOOK(android_vh_cfg80211_set_context,
TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, int context_id,

View File

@@ -7,17 +7,18 @@
#define _TRACE_HOOK_CGROUP_H
#include <trace/hooks/vendor_hooks.h>
#ifndef __GENKSYMS__
#ifdef __GENKSYMS__
#include <../kernel/cgroup/cgroup-internal.h>
#include <linux/cgroup-defs.h>
#include <linux/sched.h>
#endif
struct cgroup;
struct cgroup_taskset;
struct cgroup_subsys;
#else
/* struct cgroup_taskset */
#include <../kernel/cgroup/cgroup-internal.h>
#endif
/* struct cgroup_subsys */
#include <linux/cgroup-defs.h>
/* struct task_struct */
#include <linux/sched.h>
struct cgroup_subsys_state;
struct task_struct;
DECLARE_HOOK(android_vh_cgroup_set_task,
TP_PROTO(int ret, struct task_struct *task),
TP_ARGS(ret, task));

View File

@@ -6,10 +6,15 @@
#if !defined(_TRACE_HOOK_CPUFREQ_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_CPUFREQ_H
#include <linux/cpufreq.h>
#include <trace/hooks/vendor_hooks.h>
#ifdef __GENKSYMS__
#include <linux/cpufreq.h>
#endif
struct cpufreq_policy;
struct task_struct;
DECLARE_RESTRICTED_HOOK(android_rvh_show_max_freq,
TP_PROTO(struct cpufreq_policy *policy, unsigned int *max_freq),
TP_ARGS(policy, max_freq), 1);

View File

@@ -9,8 +9,11 @@
#include <trace/hooks/vendor_hooks.h>
/* struct cpuidle_device */
#ifdef __GENKSYMS__
#include <linux/cpuidle.h>
#endif
struct cpuidle_device;
DECLARE_HOOK(android_vh_cpu_idle_enter,
TP_PROTO(int *state, struct cpuidle_device *dev),

View File

@@ -10,8 +10,12 @@
* mechanism for vendor modules to hook and extend functionality
*/
/* struct cpuidle_device */
#ifdef __GENKSYMS__
#include <linux/cpuidle.h>
#endif
struct cpuidle_device;
DECLARE_HOOK(android_vh_cpuidle_psci_enter,
TP_PROTO(struct cpuidle_device *dev, bool s2idle),
TP_ARGS(dev, s2idle));

View File

@@ -10,10 +10,15 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct cred */
#ifdef __GENKSYMS__
#include <linux/cred.h>
/* struct task_struct */
#include <linux/sched.h>
#endif
struct cred;
struct task_struct;
DECLARE_RESTRICTED_HOOK(android_rvh_commit_creds,
TP_PROTO(const struct task_struct *task, const struct cred *new),
TP_ARGS(task, new), 1);

View File

@@ -9,17 +9,15 @@
#include <trace/hooks/vendor_hooks.h>
#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
/* struct pt_regs */
#ifdef __GENKSYMS__
#include <asm/ptrace.h>
#endif
struct pt_regs;
DECLARE_HOOK(android_vh_ipi_stop,
TP_PROTO(struct pt_regs *regs),
TP_ARGS(regs))
#else
#define trace_android_vh_ipi_stop(regs)
#define trace_android_vh_ipi_stop_rcuidle(regs)
#endif
#endif /* _TRACE_HOOK_DEBUG_H */
/* This part must be outside protection */

View File

@@ -11,8 +11,12 @@
#include <trace/hooks/vendor_hooks.h>
/* struct dma_buf */
#ifdef __GENKSYMS__
#include <linux/dma-buf.h>
#endif
struct dma_buf;
DECLARE_HOOK(android_vh_dma_buf_release,
TP_PROTO(struct dma_buf *data),
TP_ARGS(data));

View File

@@ -11,10 +11,14 @@
#include <trace/hooks/vendor_hooks.h>
/* struct drm_atomic_state */
#ifdef __GENKSYMS__
#include <drm/drm_atomic.h>
/* struct drm_crtc */
#include <drm/drm_crtc.h>
#endif
struct drm_atomic_state;
struct drm_crtc;
DECLARE_HOOK(android_vh_drm_atomic_check_modeset,
TP_PROTO(struct drm_atomic_state *state, struct drm_crtc *crtc, bool *allow),
TP_ARGS(state, crtc, allow))

View File

@@ -11,8 +11,12 @@
#include <trace/hooks/vendor_hooks.h>
/* struct drm_framebuffer */
#ifdef __GENKSYMS__
#include <drm/drm_framebuffer.h>
#endif
struct drm_framebuffer;
DECLARE_HOOK(android_vh_atomic_remove_fb,
TP_PROTO(struct drm_framebuffer *fb, bool *allow),
TP_ARGS(fb, allow))

View File

@@ -10,14 +10,19 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct mutex */
#ifdef __GENKSYMS__
#include <linux/mutex.h>
/* struct rt_mutex_base */
#include <linux/rtmutex.h>
/* struct rw_semaphore */
#include <linux/rwsem.h>
/* struct task_struct */
#include <linux/sched.h>
#endif
struct mutex;
struct rt_mutex_base;
struct rw_semaphore;
struct task_struct;
DECLARE_HOOK(android_vh_mutex_wait_start,
TP_PROTO(struct mutex *lock),
TP_ARGS(lock));

View File

@@ -7,8 +7,12 @@
#define _TRACE_HOOK_FAULT_H
#include <trace/hooks/vendor_hooks.h>
/* struct pt_regs */
#ifdef __GENKSYMS__
#include <asm/ptrace.h>
#endif
struct pt_regs;
DECLARE_RESTRICTED_HOOK(android_rvh_die_kernel_fault,
TP_PROTO(const char *msg, unsigned long addr, unsigned int esr, struct pt_regs *regs),
TP_ARGS(msg, addr, esr, regs), 1);

View File

@@ -7,8 +7,11 @@
#define _TRACE_HOOK_FIPS140_H
#include <trace/hooks/vendor_hooks.h>
/* struct crypto_aes_ctx */
#ifdef __GENKSYMS__
#include <crypto/aes.h>
#endif
struct crypto_aes_ctx;
/*
* These hooks exist only for the benefit of the FIPS140 crypto module, which

View File

@@ -9,8 +9,11 @@
#include <trace/hooks/vendor_hooks.h>
/* struct task_struct */
#ifdef __GENKSYMS__
#include <linux/sched.h>
#endif
struct task_struct;
DECLARE_HOOK(android_vh_is_fpsimd_save,
TP_PROTO(struct task_struct *prev, struct task_struct *next),

View File

@@ -6,11 +6,14 @@
#if !defined(_TRACE_HOOK_FTRACE_DUMP_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_FTRACE_DUMP_H
#include <trace/hooks/vendor_hooks.h>
#ifdef __GENKSYMS__
#include <linux/trace_seq.h>
#include <linux/trace_events.h>
#endif
#include <trace/hooks/vendor_hooks.h>
struct trace_seq;
#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)

View File

@@ -6,11 +6,17 @@
#if !defined(_TRACE_HOOK_FUTEX_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_FUTEX_H
#include <trace/hooks/vendor_hooks.h>
#include <linux/plist.h>
#ifndef __GENKSYMS__
#include <linux/plist.h>
#include <linux/futex.h>
#endif
struct plist_node;
struct plist_head;
struct task_struct;
union futex_key;
/*
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality

View File

@@ -9,12 +9,15 @@
#include <trace/hooks/vendor_hooks.h>
/* struct cpumask */
#ifdef __GENKSYMS__
#include <linux/cpumask.h>
/* struct irq_data */
#include <linux/irq.h>
/* struct irq_domain */
#include <linux/irqdomain.h>
#endif
struct cpumask;
struct irq_data;
struct irq_domain;
DECLARE_HOOK(android_vh_gic_v2_resume,
TP_PROTO(struct irq_domain *domain, void __iomem *dist_base),

View File

@@ -9,12 +9,16 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct cpumask */
#ifdef __GENKSYMS__
#include <linux/cpumask.h>
/* struct irq_data */
#include <linux/irq.h>
/* struct gic_chip_data */
#include <linux/irqchip/arm-gic-v3.h>
#endif
struct cpumask;
struct irq_data;
struct gic_chip_data;
DECLARE_HOOK(android_vh_gic_v3_affinity_init,
TP_PROTO(int irq, u32 offset, u64 *affinity),

View File

@@ -6,13 +6,16 @@
#if !defined(_TRACE_HOOK_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_IOMMU_H
#include <trace/hooks/vendor_hooks.h>
#include <linux/types.h>
#include <trace/hooks/vendor_hooks.h>
/* struct iova_domain */
#ifdef __GENKSYMS__
#include <linux/iova.h>
#endif
struct iova_domain;
DECLARE_RESTRICTED_HOOK(android_rvh_iommu_setup_dma_ops,
TP_PROTO(struct device *dev, u64 dma_base, u64 dma_limit),
TP_ARGS(dev, dma_base, dma_limit), 1);

View File

@@ -9,6 +9,8 @@
#include <linux/tracepoint.h>
#include <trace/hooks/vendor_hooks.h>
struct sock;
DECLARE_RESTRICTED_HOOK(android_rvh_tcp_sendmsg_locked,
TP_PROTO(struct sock *sk, int size),
TP_ARGS(sk, size), 1);

View File

@@ -9,8 +9,12 @@
#include <trace/hooks/vendor_hooks.h>
/* struct printk_record, struct printk_ringbuffer */
#ifdef __GENKSYMS__
#include <../kernel/printk/printk_ringbuffer.h>
#endif
struct printk_record;
struct printk_ringbuffer;
DECLARE_HOOK(android_vh_logbuf,
TP_PROTO(struct printk_ringbuffer *rb, struct printk_record *r),

View File

@@ -16,15 +16,19 @@
#if !defined(_TRACE_HOOK_MM_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_MM_H
#include <linux/types.h>
#include <trace/hooks/vendor_hooks.h>
#ifdef __GENKSYMS__
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/oom.h>
#include <trace/hooks/vendor_hooks.h>
#include <linux/rwsem.h>
/* struct slabinfo */
#include <../mm/slab.h>
#endif
struct oom_control;
struct slabinfo;
DECLARE_RESTRICTED_HOOK(android_rvh_set_skip_swapcache_flags,
TP_PROTO(gfp_t *flags),
TP_ARGS(flags), 1);

View File

@@ -6,14 +6,18 @@
#if !defined(_TRACE_HOOK_MMC_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_MMC_H
#include <trace/hooks/vendor_hooks.h>
/* struct blk_mq_queue_data */
#ifdef __GENKSYMS__
#include <linux/blk-mq.h>
/* struct mmc_host */
#include <linux/mmc/host.h>
/* struct mmc_card */
#include <linux/mmc/card.h>
/* struct sdhci_host */
#include "../../drivers/mmc/host/sdhci.h"
#endif
struct blk_mq_queue_data;
struct mmc_host;
struct mmc_card;
struct sdhci_host;
/*
* Following tracepoints are not exported in tracefs and provide a

View File

@@ -10,8 +10,13 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct module */
#ifdef __GENKSYMS__
#include <linux/module.h>
#endif
struct module;
DECLARE_HOOK(android_vh_set_module_permit_before_init,
TP_PROTO(const struct module *mod),
TP_ARGS(mod));

View File

@@ -10,8 +10,12 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct task_struct */
#ifdef __GENKSYMS__
#include <linux/sched.h>
#endif
struct task_struct;
DECLARE_HOOK(android_vh_mpam_set,
TP_PROTO(struct task_struct *prev, struct task_struct *next),
TP_ARGS(prev, next));

View File

@@ -8,12 +8,16 @@
#define _TRACE_HOOK_NET_VH_H
#include <trace/hooks/vendor_hooks.h>
/* struct packet_type */
#ifdef __GENKSYMS__
#include <linux/netdevice.h>
/* struct sk_buff */
#include <linux/skbuff.h>
/* struct list_head */
#include <linux/types.h>
#endif
struct packet_type;
struct sk_buff;
struct list_head;
DECLARE_HOOK(android_vh_ptype_head,
TP_PROTO(const struct packet_type *pt, struct list_head *vendor_pt),
TP_ARGS(pt, vendor_pt));

View File

@@ -10,8 +10,12 @@
#include <trace/hooks/vendor_hooks.h>
/* struct generic_pm_domain */
#ifdef __GENKSYMS__
#include <linux/pm_domain.h>
#endif
struct generic_pm_domain;
DECLARE_HOOK(android_vh_allow_domain_state,
TP_PROTO(struct generic_pm_domain *genpd, uint32_t idx, bool *allow),
TP_ARGS(genpd, idx, allow))

View File

@@ -7,8 +7,15 @@
#define _TRACE_HOOK_POWER_H
#include <trace/hooks/vendor_hooks.h>
/* struct task_struct */
#ifdef __GENKSYMS__
#include <linux/sched.h>
#endif
/* needed for enum freq_qos_req_type */
#include <linux/pm_qos.h>
struct task_struct;
DECLARE_HOOK(android_vh_try_to_freeze_todo,
TP_PROTO(unsigned int todo, unsigned int elapsed_msecs, bool wq_busy),
TP_ARGS(todo, elapsed_msecs, wq_busy));

View File

@@ -8,10 +8,13 @@
#define _TRACE_HOOK_REGMAP_H
#include <trace/hooks/vendor_hooks.h>
/* struct regmap */
#ifdef __GENKSYMS__
#include <../drivers/base/regmap/internal.h>
/* struct regmap_config */
#include <linux/regmap.h>
#endif
struct regmap;
struct regmap_config;
/*
* Following tracepoints are not exported in tracefs and provide a

View File

@@ -7,13 +7,13 @@
#if !defined(_TRACE_HOOK_RPROC_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_HOOK_RPROC_H
/* struct rproc */
#include <linux/remoteproc.h>
#include <trace/hooks/vendor_hooks.h>
/* struct rproc */
#ifdef __GENKSYMS__
#include <linux/remoteproc.h>
#endif
struct rproc;
/* When recovery succeeds */
DECLARE_HOOK(android_vh_rproc_recovery,

View File

@@ -9,9 +9,14 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
#if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_ANDROID_VENDOR_HOOKS)
/* struct rw_semaphore, struct rwsem_waiter */
#ifdef __GENKSYMS__
#include <linux/rwsem.h>
#endif
struct rw_semaphore;
struct rwsem_waiter;
DECLARE_HOOK(android_vh_rwsem_init,
TP_PROTO(struct rw_semaphore *sem),
TP_ARGS(sem));
@@ -29,13 +34,7 @@ DECLARE_HOOK(android_vh_alter_rwsem_list_add,
DECLARE_HOOK(android_vh_rwsem_wake_finish,
TP_PROTO(struct rw_semaphore *sem),
TP_ARGS(sem));
#else
#define trace_android_vh_rwsem_init(sem)
#define trace_android_vh_rwsem_wake(sem)
#define trace_android_vh_rwsem_write_finished(sem)
#define trace_android_vh_alter_rwsem_list_add(waiter, sem, already_on_list)
#define trace_android_vh_rwsem_wake_finish(sem)
#endif
#endif /* _TRACE_HOOK_RWSEM_H */
/* This part must be outside protection */
#include <trace/define_trace.h>

View File

@@ -13,6 +13,7 @@
/* needed for KMI stability */
#include <../kernel/cgroup/cgroup-internal.h>
#endif
DECLARE_RESTRICTED_HOOK(android_rvh_select_task_rq_fair,
TP_PROTO(struct task_struct *p, int prev_cpu, int sd_flag, int wake_flags, int *new_cpu),
TP_ARGS(p, prev_cpu, sd_flag, wake_flags, new_cpu), 1);

View File

@@ -7,8 +7,12 @@
#define _TRACE_HOOK_SOFTLOCKUP_H
#include <trace/hooks/vendor_hooks.h>
/* struct pt_regs */
#ifdef __GENKSYMS__
#include <asm/ptrace.h>
#endif
struct pt_regs;
DECLARE_HOOK(android_vh_watchdog_timer_softlockup,
TP_PROTO(int duration, struct pt_regs *regs, bool is_panic),
TP_ARGS(duration, regs, is_panic));

View File

@@ -7,8 +7,12 @@
#define _TRACE_HOOK_SYS_H
#include <trace/hooks/vendor_hooks.h>
/* struct task_struct */
#ifdef __GENKSYMS__
#include <linux/sched.h>
#endif
struct task_struct;
DECLARE_HOOK(android_vh_syscall_prctl_finished,
TP_PROTO(int option, struct task_struct *task),
TP_ARGS(option, task));

View File

@@ -10,10 +10,15 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct file */
#ifdef __GENKSYMS__
#include <linux/fs.h>
/* union bpf_attr */
#include <uapi/linux/bpf.h>
#endif
struct file;
union bpf_attr;
DECLARE_HOOK(android_vh_check_mmap_file,
TP_PROTO(const struct file *file, unsigned long prot,
unsigned long flag, unsigned long ret),

View File

@@ -8,10 +8,16 @@
#define _TRACE_HOOK_THERMAL_H
#include <trace/hooks/vendor_hooks.h>
#include <linux/cpufreq.h>
/* struct thermal_cooling_device, struct thermal_zone_device */
#ifdef __GENKSYMS__
#include <linux/cpufreq.h>
#include <linux/thermal.h>
#endif
struct cpufreq_policy;
struct thermal_cooling_device;
struct thermal_zone_device;
DECLARE_HOOK(android_vh_modify_thermal_request_freq,
TP_PROTO(struct cpufreq_policy *policy, unsigned long *request_freq),
TP_ARGS(policy, request_freq));

View File

@@ -9,8 +9,12 @@
#include <trace/hooks/vendor_hooks.h>
/* struct timekeeper */
#ifdef __GENKSYMS__
#include <linux/timekeeper_internal.h>
#endif
struct timekeeper;
DECLARE_RESTRICTED_HOOK(android_rvh_tk_based_time_sync,
TP_PROTO(struct timekeeper *tk),
TP_ARGS(tk), 1);

View File

@@ -8,7 +8,12 @@
#define _TRACE_HOOK_TOPOLOGY_H
#include <trace/hooks/vendor_hooks.h>
#ifdef __GENKSYMS__
#include <linux/cpumask.h>
#endif
struct cpumask;
DECLARE_HOOK(android_vh_arch_set_freq_scale,
TP_PROTO(const struct cpumask *cpus, unsigned long freq,

View File

@@ -7,8 +7,12 @@
#define _TRACE_HOOK_TRAPS_H
#include <trace/hooks/vendor_hooks.h>
/* struct pt_regs */
#ifdef __GENKSYMS__
#include <asm/ptrace.h>
#endif
struct pt_regs;
DECLARE_RESTRICTED_HOOK(android_rvh_do_undefinstr,
TP_PROTO(struct pt_regs *regs),
TP_ARGS(regs),

View File

@@ -9,12 +9,17 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct ufs_hba, struct ufshcd_lrb, struct uic_command */
#ifdef __GENKSYMS__
#include <../drivers/scsi/ufs/ufshcd.h>
/* struct request */
#include <linux/blkdev.h>
/* struct scsi_device */
#include <scsi/scsi_device.h>
#endif
struct ufs_hba;
struct ufshcd_lrb;
struct uic_command;
struct request;
struct scsi_device;
DECLARE_HOOK(android_vh_ufs_fill_prdt,
TP_PROTO(struct ufs_hba *hba, struct ufshcd_lrb *lrbp,

View File

@@ -10,8 +10,13 @@
* Following tracepoints are not exported in tracefs and provide a
* mechanism for vendor modules to hook and extend functionality
*/
/* struct usb_device */
#ifdef __GENKSYMS__
#include <linux/usb.h>
#endif
struct usb_device;
DECLARE_HOOK(android_vh_usb_new_device_added,
TP_PROTO(struct usb_device *udev, int *err),
TP_ARGS(udev, err));