^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define TRACE_SYSTEM raw_syscalls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #undef TRACE_INCLUDE_FILE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #define TRACE_INCLUDE_FILE syscalls
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #if !defined(_TRACE_EVENTS_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define _TRACE_EVENTS_SYSCALLS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <asm/ptrace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <asm/syscall.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) TRACE_EVENT_FN(sys_enter,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) TP_PROTO(struct pt_regs *regs, long id),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) TP_ARGS(regs, id),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) __field( long, id )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) __array( unsigned long, args, 6 )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) __entry->id = id;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) syscall_get_arguments(current, regs, __entry->args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) __entry->id,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) __entry->args[0], __entry->args[1], __entry->args[2],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) __entry->args[3], __entry->args[4], __entry->args[5]),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) syscall_regfunc, syscall_unregfunc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) TRACE_EVENT_FN(sys_exit,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) TP_PROTO(struct pt_regs *regs, long ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) TP_ARGS(regs, ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) __field( long, id )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) __field( long, ret )
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) __entry->id = syscall_get_nr(current, regs);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) __entry->ret = ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) TP_printk("NR %ld = %ld",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) __entry->id, __entry->ret),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) syscall_regfunc, syscall_unregfunc
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) TRACE_EVENT_FLAGS(sys_exit, TRACE_EVENT_FL_CAP_ANY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) #endif /* _TRACE_EVENTS_SYSCALLS_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #include <trace/define_trace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)