1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #undef TRACE_SYSTEM 3*4882a593Smuzhiyun #define TRACE_SYSTEM mmap 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #if !defined(_TRACE_MMAP_H) || defined(TRACE_HEADER_MULTI_READ) 6*4882a593Smuzhiyun #define _TRACE_MMAP_H 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun #include <linux/tracepoint.h> 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun TRACE_EVENT(vm_unmapped_area, 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun TP_PROTO(unsigned long addr, struct vm_unmapped_area_info *info), 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun TP_ARGS(addr, info), 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun TP_STRUCT__entry( 17*4882a593Smuzhiyun __field(unsigned long, addr) 18*4882a593Smuzhiyun __field(unsigned long, total_vm) 19*4882a593Smuzhiyun __field(unsigned long, flags) 20*4882a593Smuzhiyun __field(unsigned long, length) 21*4882a593Smuzhiyun __field(unsigned long, low_limit) 22*4882a593Smuzhiyun __field(unsigned long, high_limit) 23*4882a593Smuzhiyun __field(unsigned long, align_mask) 24*4882a593Smuzhiyun __field(unsigned long, align_offset) 25*4882a593Smuzhiyun ), 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun TP_fast_assign( 28*4882a593Smuzhiyun __entry->addr = addr; 29*4882a593Smuzhiyun __entry->total_vm = current->mm->total_vm; 30*4882a593Smuzhiyun __entry->flags = info->flags; 31*4882a593Smuzhiyun __entry->length = info->length; 32*4882a593Smuzhiyun __entry->low_limit = info->low_limit; 33*4882a593Smuzhiyun __entry->high_limit = info->high_limit; 34*4882a593Smuzhiyun __entry->align_mask = info->align_mask; 35*4882a593Smuzhiyun __entry->align_offset = info->align_offset; 36*4882a593Smuzhiyun ), 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun 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\n", 39*4882a593Smuzhiyun IS_ERR_VALUE(__entry->addr) ? 0 : __entry->addr, 40*4882a593Smuzhiyun IS_ERR_VALUE(__entry->addr) ? __entry->addr : 0, 41*4882a593Smuzhiyun __entry->total_vm, __entry->flags, __entry->length, 42*4882a593Smuzhiyun __entry->low_limit, __entry->high_limit, __entry->align_mask, 43*4882a593Smuzhiyun __entry->align_offset) 44*4882a593Smuzhiyun ); 45*4882a593Smuzhiyun #endif 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun /* This part must be outside protection */ 48*4882a593Smuzhiyun #include <trace/define_trace.h> 49