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