LCOV - code coverage report
Current view: top level - include/trace - syscall.h (source / functions) Hit Total Coverage
Test: landlock.info Lines: 4 5 80.0 %
Date: 2021-04-22 12:43:58 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : #ifndef _TRACE_SYSCALL_H
       3             : #define _TRACE_SYSCALL_H
       4             : 
       5             : #include <linux/tracepoint.h>
       6             : #include <linux/unistd.h>
       7             : #include <linux/trace_events.h>
       8             : #include <linux/thread_info.h>
       9             : 
      10             : #include <asm/ptrace.h>
      11             : 
      12             : 
      13             : /*
      14             :  * A syscall entry in the ftrace syscalls array.
      15             :  *
      16             :  * @name: name of the syscall
      17             :  * @syscall_nr: number of the syscall
      18             :  * @nb_args: number of parameters it takes
      19             :  * @types: list of types as strings
      20             :  * @args: list of args as strings (args[i] matches types[i])
      21             :  * @enter_fields: list of fields for syscall_enter trace event
      22             :  * @enter_event: associated syscall_enter trace event
      23             :  * @exit_event: associated syscall_exit trace event
      24             :  */
      25             : struct syscall_metadata {
      26             :         const char      *name;
      27             :         int             syscall_nr;
      28             :         int             nb_args;
      29             :         const char      **types;
      30             :         const char      **args;
      31             :         struct list_head enter_fields;
      32             : 
      33             :         struct trace_event_call *enter_event;
      34             :         struct trace_event_call *exit_event;
      35             : };
      36             : 
      37             : #if defined(CONFIG_TRACEPOINTS) && defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS)
      38         916 : static inline void syscall_tracepoint_update(struct task_struct *p)
      39             : {
      40         916 :         if (test_syscall_work(SYSCALL_TRACEPOINT))
      41           0 :                 set_task_syscall_work(p, SYSCALL_TRACEPOINT);
      42             :         else
      43         916 :                 clear_task_syscall_work(p, SYSCALL_TRACEPOINT);
      44         916 : }
      45             : #else
      46             : static inline void syscall_tracepoint_update(struct task_struct *p)
      47             : {
      48             : }
      49             : #endif
      50             : 
      51             : #endif /* _TRACE_SYSCALL_H */

Generated by: LCOV version 1.14