Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq
[linux-2.6-block.git] / include / trace / syscall.h
index df628404241af048352a44d735826b3effc48c14..5dc283ba5ae07dd14fe29a0cee8611c7a0a7e937 100644 (file)
@@ -8,23 +8,6 @@
 #include <asm/ptrace.h>
 
 
-extern void syscall_regfunc(void);
-extern void syscall_unregfunc(void);
-
-DECLARE_TRACE_WITH_CALLBACK(syscall_enter,
-       TP_PROTO(struct pt_regs *regs, long id),
-       TP_ARGS(regs, id),
-       syscall_regfunc,
-       syscall_unregfunc
-);
-
-DECLARE_TRACE_WITH_CALLBACK(syscall_exit,
-       TP_PROTO(struct pt_regs *regs, long ret),
-       TP_ARGS(regs, ret),
-       syscall_regfunc,
-       syscall_unregfunc
-);
-
 /*
  * A syscall entry in the ftrace syscalls array.
  *
@@ -34,6 +17,8 @@ DECLARE_TRACE_WITH_CALLBACK(syscall_exit,
  * @args: list of args as strings (args[i] matches types[i])
  * @enter_id: associated ftrace enter event id
  * @exit_id: associated ftrace exit event id
+ * @enter_event: associated syscall_enter trace event
+ * @exit_event: associated syscall_exit trace event
  */
 struct syscall_metadata {
        const char      *name;
@@ -42,6 +27,9 @@ struct syscall_metadata {
        const char      **args;
        int             enter_id;
        int             exit_id;
+
+       struct ftrace_event_call *enter_event;
+       struct ftrace_event_call *exit_event;
 };
 
 #ifdef CONFIG_FTRACE_SYSCALLS
@@ -55,8 +43,21 @@ extern int reg_event_syscall_enter(void *ptr);
 extern void unreg_event_syscall_enter(void *ptr);
 extern int reg_event_syscall_exit(void *ptr);
 extern void unreg_event_syscall_exit(void *ptr);
+extern int syscall_enter_format(struct ftrace_event_call *call,
+                               struct trace_seq *s);
+extern int syscall_exit_format(struct ftrace_event_call *call,
+                               struct trace_seq *s);
+extern int syscall_enter_define_fields(struct ftrace_event_call *call);
+extern int syscall_exit_define_fields(struct ftrace_event_call *call);
 enum print_line_t print_syscall_enter(struct trace_iterator *iter, int flags);
 enum print_line_t print_syscall_exit(struct trace_iterator *iter, int flags);
+#endif
+#ifdef CONFIG_EVENT_PROFILE
+int reg_prof_syscall_enter(char *name);
+void unreg_prof_syscall_enter(char *name);
+int reg_prof_syscall_exit(char *name);
+void unreg_prof_syscall_exit(char *name);
+
 #endif
 
 #endif /* _TRACE_SYSCALL_H */