• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM iommu
4 
5 #define TRACE_INCLUDE_PATH trace/hooks
6 
7 #if !defined(_TRACE_HOOK_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ)
8 #define _TRACE_HOOK_IOMMU_H
9 
10 #include <trace/hooks/vendor_hooks.h>
11 
12 DECLARE_RESTRICTED_HOOK(android_rvh_iommu_setup_dma_ops,
13 	TP_PROTO(struct device *dev),
14 	TP_ARGS(dev), 1);
15 
16 struct iova_domain;
17 struct iova;
18 
19 DECLARE_RESTRICTED_HOOK(android_rvh_iommu_alloc_insert_iova,
20 	TP_PROTO(struct iova_domain *iovad, unsigned long size,
21 		unsigned long limit_pfn, struct iova *new_iova,
22 		bool size_aligned, int *ret),
23 	TP_ARGS(iovad, size, limit_pfn, new_iova, size_aligned, ret),
24 	1);
25 
26 DECLARE_RESTRICTED_HOOK(android_rvh_iommu_dma_info_to_prot,
27 	TP_PROTO(unsigned long attrs, int *prot),
28 	TP_ARGS(attrs, prot), 1);
29 
30 DECLARE_HOOK(android_vh_iommu_iovad_alloc_iova,
31 	TP_PROTO(struct device *dev, struct iova_domain *iovad, dma_addr_t iova, size_t size),
32 	TP_ARGS(dev, iovad, iova, size));
33 
34 DECLARE_HOOK(android_vh_iommu_iovad_free_iova,
35 	TP_PROTO(struct iova_domain *iovad, dma_addr_t iova, size_t size),
36 	TP_ARGS(iovad, iova, size));
37 
38 DECLARE_HOOK(android_vh_adjust_alloc_flags,
39 	TP_PROTO(unsigned int order, gfp_t *alloc_flags),
40 	TP_ARGS(order, alloc_flags));
41 
42 DECLARE_RESTRICTED_HOOK(android_rvh_iommu_iovad_init_alloc_algo,
43 	TP_PROTO(struct device *dev, struct iova_domain *iovad),
44 	TP_ARGS(dev, iovad), 1);
45 
46 DECLARE_RESTRICTED_HOOK(android_rvh_iommu_limit_align_shift,
47 	TP_PROTO(struct iova_domain *iovad, unsigned long size,
48 		unsigned long *shift),
49 	TP_ARGS(iovad, size, shift), 1);
50 
51 #endif /* _TRACE_HOOK_IOMMU_H */
52 
53 /* This part must be outside protection */
54 #include <trace/define_trace.h>
55