Blame view

include/trace/syscall.h 1.77 KB
47788c58e   Frederic Weisbecker   tracing/syscalls:...
1
2
  #ifndef _TRACE_SYSCALL_H
  #define _TRACE_SYSCALL_H
a871bd33a   Jason Baron   tracing: Add sysc...
3
  #include <linux/tracepoint.h>
fb34a08c3   Jason Baron   tracing: Add trac...
4
5
  #include <linux/unistd.h>
  #include <linux/ftrace_event.h>
a871bd33a   Jason Baron   tracing: Add sysc...
6

47788c58e   Frederic Weisbecker   tracing/syscalls:...
7
  #include <asm/ptrace.h>
a871bd33a   Jason Baron   tracing: Add sysc...
8

47788c58e   Frederic Weisbecker   tracing/syscalls:...
9
10
11
12
  /*
   * A syscall entry in the ftrace syscalls array.
   *
   * @name: name of the syscall
c252f6579   Lai Jiangshan   trace_syscalls: A...
13
   * @syscall_nr: number of the syscall
47788c58e   Frederic Weisbecker   tracing/syscalls:...
14
15
16
   * @nb_args: number of parameters it takes
   * @types: list of types as strings
   * @args: list of args as strings (args[i] matches types[i])
540b7b8d6   Li Zefan   tracing/syscalls:...
17
18
   * @enter_event: associated syscall_enter trace event
   * @exit_event: associated syscall_exit trace event
47788c58e   Frederic Weisbecker   tracing/syscalls:...
19
20
21
   */
  struct syscall_metadata {
  	const char	*name;
c252f6579   Lai Jiangshan   trace_syscalls: A...
22
  	int		syscall_nr;
47788c58e   Frederic Weisbecker   tracing/syscalls:...
23
24
25
  	int		nb_args;
  	const char	**types;
  	const char	**args;
2e33af029   Steven Rostedt   tracing: Move fie...
26
  	struct list_head enter_fields;
540b7b8d6   Li Zefan   tracing/syscalls:...
27
28
29
  
  	struct ftrace_event_call *enter_event;
  	struct ftrace_event_call *exit_event;
47788c58e   Frederic Weisbecker   tracing/syscalls:...
30
31
32
  };
  
  #ifdef CONFIG_FTRACE_SYSCALLS
c44fc7708   Frederic Weisbecker   tracing: Move sys...
33
  extern unsigned long arch_syscall_addr(int nr);
a1301da09   Lai Jiangshan   trace_syscalls: R...
34
  extern int init_syscall_trace(struct ftrace_event_call *call);
bd1a5c849   Masami Hiramatsu   tracing: Ftrace d...
35

bd1a5c849   Masami Hiramatsu   tracing: Ftrace d...
36
37
38
39
40
41
  extern int reg_event_syscall_enter(struct ftrace_event_call *call);
  extern void unreg_event_syscall_enter(struct ftrace_event_call *call);
  extern int reg_event_syscall_exit(struct ftrace_event_call *call);
  extern void unreg_event_syscall_exit(struct ftrace_event_call *call);
  extern int
  ftrace_format_syscall(struct ftrace_event_call *call, struct trace_seq *s);
a9a577638   Steven Rostedt   tracing: Allow ev...
42
43
44
45
  enum print_line_t print_syscall_enter(struct trace_iterator *iter, int flags,
  				      struct trace_event *event);
  enum print_line_t print_syscall_exit(struct trace_iterator *iter, int flags,
  				     struct trace_event *event);
47788c58e   Frederic Weisbecker   tracing/syscalls:...
46
  #endif
07b139c8c   Li Zefan   perf events: Remo...
47
48
  
  #ifdef CONFIG_PERF_EVENTS
97d5a2200   Frederic Weisbecker   perf: Drop the ob...
49
50
51
52
  int perf_sysenter_enable(struct ftrace_event_call *call);
  void perf_sysenter_disable(struct ftrace_event_call *call);
  int perf_sysexit_enable(struct ftrace_event_call *call);
  void perf_sysexit_disable(struct ftrace_event_call *call);
f4b5ffccc   Jason Baron   tracing: Add perf...
53
  #endif
47788c58e   Frederic Weisbecker   tracing/syscalls:...
54
55
  
  #endif /* _TRACE_SYSCALL_H */