| /* SPDX-License-Identifier: GPL-2.0 */ | 
 | #undef TRACE_SYSTEM | 
 | #define TRACE_SYSTEM mmap | 
 |  | 
 | #if !defined(_TRACE_MMAP_H) || defined(TRACE_HEADER_MULTI_READ) | 
 | #define _TRACE_MMAP_H | 
 |  | 
 | #include <linux/tracepoint.h> | 
 |  | 
 | TRACE_EVENT(vm_unmapped_area, | 
 |  | 
 | 	TP_PROTO(unsigned long addr, struct vm_unmapped_area_info *info), | 
 |  | 
 | 	TP_ARGS(addr, info), | 
 |  | 
 | 	TP_STRUCT__entry( | 
 | 		__field(unsigned long,	addr) | 
 | 		__field(unsigned long,	total_vm) | 
 | 		__field(unsigned long,	flags) | 
 | 		__field(unsigned long,	length) | 
 | 		__field(unsigned long,	low_limit) | 
 | 		__field(unsigned long,	high_limit) | 
 | 		__field(unsigned long,	align_mask) | 
 | 		__field(unsigned long,	align_offset) | 
 | 	), | 
 |  | 
 | 	TP_fast_assign( | 
 | 		__entry->addr = addr; | 
 | 		__entry->total_vm = current->mm->total_vm; | 
 | 		__entry->flags = info->flags; | 
 | 		__entry->length = info->length; | 
 | 		__entry->low_limit = info->low_limit; | 
 | 		__entry->high_limit = info->high_limit; | 
 | 		__entry->align_mask = info->align_mask; | 
 | 		__entry->align_offset = info->align_offset; | 
 | 	), | 
 |  | 
 | 	TP_printk("addr=0x%lx err=%ld total_vm=0x%lx flags=0x%lx len=0x%lx lo=0x%lx hi=0x%lx mask=0x%lx ofs=0x%lx", | 
 | 		IS_ERR_VALUE(__entry->addr) ? 0 : __entry->addr, | 
 | 		IS_ERR_VALUE(__entry->addr) ? __entry->addr : 0, | 
 | 		__entry->total_vm, __entry->flags, __entry->length, | 
 | 		__entry->low_limit, __entry->high_limit, __entry->align_mask, | 
 | 		__entry->align_offset) | 
 | ); | 
 |  | 
 | TRACE_EVENT(exit_mmap, | 
 | 	TP_PROTO(struct mm_struct *mm), | 
 |  | 
 | 	TP_ARGS(mm), | 
 |  | 
 | 	TP_STRUCT__entry( | 
 | 			__field(struct mm_struct *, mm) | 
 | 			__field(struct maple_tree *, mt) | 
 | 	), | 
 |  | 
 | 	TP_fast_assign( | 
 | 		       __entry->mm		= mm; | 
 | 		       __entry->mt		= &mm->mm_mt; | 
 | 	), | 
 |  | 
 | 	TP_printk("mt_mod %p, DESTROY", | 
 | 		  __entry->mt | 
 | 	) | 
 | ); | 
 |  | 
 | #endif | 
 |  | 
 | /* This part must be outside protection */ | 
 | #include <trace/define_trace.h> |