ptrace_syscalls/
group.rs

1use enumflags2::{bitflags, BitFlags};
2
3// Keep in-sync with https://github.com/strace/strace/blob/master/src/sysent.h
4
5#[bitflags]
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7#[repr(u32)]
8pub enum SyscallGroups {
9  /// TF   TRACE_FILE
10  /// Trace file-related syscalls.
11  File = 0o000000001,
12  /// TI   TRACE_IPC
13  /// Trace IPC-related syscalls.
14  IPC = 0o000000002,
15  /// TN   TRACE_NETWORK
16  /// Trace network-related syscalls.
17  Network = 0o000000004,
18  /// TP   TRACE_PROCESS
19  /// Trace process-related syscalls.
20  Process = 0o000000010,
21  /// TS   TRACE_SIGNAL
22  /// Trace signal-related syscalls.
23  Signal = 0o000000020,
24  /// TD   TRACE_DESC
25  /// Trace file descriptor-related syscalls.
26  Desc = 0o000000040,
27  /// TM   TRACE_MEMORY
28  /// Trace memory mapping-related syscalls.
29  Memory = 0o000000100,
30  /// TST  TRACE_STAT
31  /// Trace {,*_}{,old}{,x}stat{,64} syscalls.
32  Stat = 0o000010000,
33  /// TLST TRACE_LSTAT
34  /// Trace *lstat* syscalls.
35  LStat = 0o000020000,
36  /// TSF  TRACE_STATFS
37  /// Trace statfs, statfs64, and statvfs syscalls.
38  StatFs = 0o000040000,
39  /// TFSF TRACE_FSTATFS
40  /// Trace fstatfs, fstatfs64 and fstatvfs syscalls.
41  FStatFs = 0o000100000,
42  /// TSFA TRACE_STATFS_LIKE
43  /// Trace statfs-like, fstatfs-like and ustat syscalls.
44  StatFsLike = 0o000200000,
45  /// TFST TRACE_FSTAT
46  /// Trace *fstat{,at}{,64} syscalls.
47  FStat = 0o000400000,
48  /// TSTA TRACE_STAT_LIKE
49  /// Trace *{,l,f}stat{,x,at}{,64} syscalls.
50  StatLike = 0o001000000,
51  /// PU   TRACE_PURE
52  /// Trace getter syscalls with no arguments.
53  Pure = 0o002000000,
54  /// TC   TRACE_CREDS
55  /// Trace process credentials-related syscalls.
56  Creds = 0o010000000,
57  /// TCL  TRACE_CLOCK
58  /// Trace syscalls reading or modifying system clocks.
59  Clock = 0o020000000,
60}
61
62pub trait SyscallGroupsGetter {
63  fn syscall_groups(&self) -> BitFlags<SyscallGroups>;
64}