1 /*
2 * Copyright (c) 2016-2022 The strace developers.
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #ifndef STRACE_SYSENT_H
9 # define STRACE_SYSENT_H
10
11 struct tcb;
12
13 typedef struct sysent {
14 unsigned nargs;
15 int sys_flags;
16 int sen;
17 int (*sys_func)(struct tcb *);
18 const char *sys_name;
19 } struct_sysent;
20
21 # define TRACE_FILE 000000001 /* Trace file-related syscalls. */
22 # define TRACE_IPC 000000002 /* Trace IPC-related syscalls. */
23 # define TRACE_NETWORK 000000004 /* Trace network-related syscalls. */
24 # define TRACE_PROCESS 000000010 /* Trace process-related syscalls. */
25 # define TRACE_SIGNAL 000000020 /* Trace signal-related syscalls. */
26 # define TRACE_DESC 000000040 /* Trace file descriptor-related syscalls. */
27 # define TRACE_MEMORY 000000100 /* Trace memory mapping-related syscalls. */
28 # define SYSCALL_NEVER_FAILS 000000200 /* Syscall is always successful. */
29 # define MEMORY_MAPPING_CHANGE 000000400 /* Trigger proc/maps cache updating */
30 # define STACKTRACE_CAPTURE_ON_ENTER 000001000 /* Capture stacktrace on "entering" stage */
31 # define TRACE_INDIRECT_SUBCALL 000002000 /* Syscall is an indirect socket/ipc subcall. */
32 # define COMPAT_SYSCALL_TYPES 000004000 /* A compat syscall that uses compat types. */
33 # define TRACE_STAT 000010000 /* Trace {,*_}{,old}{,x}stat{,64} syscalls. */
34 # define TRACE_LSTAT 000020000 /* Trace *lstat* syscalls. */
35 # define TRACE_STATFS 000040000 /* Trace statfs, statfs64, and statvfs syscalls. */
36 # define TRACE_FSTATFS 000100000 /* Trace fstatfs, fstatfs64 and fstatvfs syscalls. */
37 # define TRACE_STATFS_LIKE 000200000 /* Trace statfs-like, fstatfs-like and ustat syscalls. */
38 # define TRACE_FSTAT 000400000 /* Trace *fstat{,at}{,64} syscalls. */
39 # define TRACE_STAT_LIKE 001000000 /* Trace *{,l,f}stat{,x,at}{,64} syscalls. */
40 # define TRACE_PURE 002000000 /* Trace getter syscalls with no arguments. */
41 # define TRACE_SECCOMP_DEFAULT 004000000 /* Syscall is traced by seccomp filter by default. */
42 # define TRACE_CREDS 010000000 /* Trace process credentials-related syscalls. */
43 # define TRACE_CLOCK 020000000 /* Trace syscalls reading or modifying system clocks. */
44 # define COMM_CHANGE 040000000 /* Trigger /proc/$pid/comm cache update. */
45
46 #endif /* !STRACE_SYSENT_H */