falco_event/fields/
event_flags.rs

1use falco_event_derive::event_flags;
2
3event_flags! {
4type file_flags: PT_FLAGS32;
5type clone_flags: PT_FLAGS32;
6type prot_flags: PT_FLAGS32;
7type mmap_flags: PT_FLAGS32;
8type splice_flags: PT_FLAGS32;
9type quotactl_cmds: PT_FLAGS16;
10type quotactl_types: PT_FLAGS8;
11type quotactl_dqi_flags: PT_FLAGS8;
12type quotactl_quota_fmts: PT_FLAGS8;
13type flock_flags: PT_FLAGS32;
14type semop_flags: PT_FLAGS16;
15type mount_flags: PT_FLAGS32;
16type umount_flags: PT_FLAGS32;
17type semget_flags: PT_FLAGS32;
18type pf_flags: PT_FLAGS32;
19type execve_flags: PT_FLAGS32;
20type unlinkat_flags: PT_FLAGS32;
21type linkat_flags: PT_FLAGS32;
22type renameat2_flags: PT_FLAGS32;
23type openat2_flags: PT_FLAGS32;
24type execveat_flags: PT_FLAGS32;
25type mlockall_flags: PT_FLAGS32;
26type semctl_commands: PT_FLAGS16;
27type access_flags: PT_FLAGS32;
28type io_uring_setup_flags: PT_FLAGS32;
29type io_uring_setup_feats: PT_FLAGS32;
30type io_uring_enter_flags: PT_FLAGS32;
31type mlock2_flags: PT_FLAGS32;
32type epoll_create1_flags: PT_FLAGS32;
33type file_flags: PT_FLAGS16;
34type memfd_create_flags: PT_FLAGS32;
35type newfstatat_flags: PT_FLAGS32;
36type delete_module_flags: PT_FLAGS32;
37type fchownat_flags: PT_FLAGS32;
38type mknod_mode: PT_MODE;
39type chmod_mode: PT_MODE;
40type socket_families: PT_ENUMFLAGS32 !PPM_AF_LOCAL, PPM_AF_ROUTE;
41type shutdown_how: PT_ENUMFLAGS8;
42type sockopt_levels: PT_ENUMFLAGS8;
43type sockopt_options: PT_ENUMFLAGS8;
44type futex_operations: PT_FLAGS16;
45type lseek_whence: PT_ENUMFLAGS8;
46type rlimit_resources: PT_ENUMFLAGS8;
47type fcntl_commands: PT_ENUMFLAGS8;
48type ptrace_requests: PT_ENUMFLAGS16;
49type io_uring_register_opcodes: PT_ENUMFLAGS16;
50type bpf_commands: PT_ENUMFLAGS32 !PPM_BPF_PROG_TEST_RUN;
51type fsconfig_cmds: PT_ENUMFLAGS32;
52type prctl_options: PT_ENUMFLAGS32;
53type pidfd_open_flags: PT_FLAGS32;
54type finit_module_flags: PT_FLAGS32;
55type creat_flags: PT_FLAGS16;
56const struct ppm_name_value socket_families[] = {
57        {"AF_NFC", PPM_AF_NFC},
58        {"AF_ALG", PPM_AF_ALG},
59        {"AF_CAIF", PPM_AF_CAIF},
60        {"AF_IEEE802154", PPM_AF_IEEE802154},
61        {"AF_PHONET", PPM_AF_PHONET},
62        {"AF_ISDN", PPM_AF_ISDN},
63        {"AF_RXRPC", PPM_AF_RXRPC},
64        {"AF_IUCV", PPM_AF_IUCV},
65        {"AF_BLUETOOTH", PPM_AF_BLUETOOTH},
66        {"AF_TIPC", PPM_AF_TIPC},
67        {"AF_CAN", PPM_AF_CAN},
68        {"AF_LLC", PPM_AF_LLC},
69        {"AF_WANPIPE", PPM_AF_WANPIPE},
70        {"AF_PPPOX", PPM_AF_PPPOX},
71        {"AF_IRDA", PPM_AF_IRDA},
72        {"AF_SNA", PPM_AF_SNA},
73        {"AF_RDS", PPM_AF_RDS},
74        {"AF_ATMSVC", PPM_AF_ATMSVC},
75        {"AF_ECONET", PPM_AF_ECONET},
76        {"AF_ASH", PPM_AF_ASH},
77        {"AF_PACKET", PPM_AF_PACKET},
78        {"AF_ROUTE", PPM_AF_ROUTE},
79        {"AF_NETLINK", PPM_AF_NETLINK},
80        {"AF_KEY", PPM_AF_KEY},
81        {"AF_SECURITY", PPM_AF_SECURITY},
82        {"AF_NETBEUI", PPM_AF_NETBEUI},
83        {"AF_DECnet", PPM_AF_DECnet},
84        {"AF_ROSE", PPM_AF_ROSE},
85        {"AF_INET6", PPM_AF_INET6},
86        {"AF_X25", PPM_AF_X25},
87        {"AF_ATMPVC", PPM_AF_ATMPVC},
88        {"AF_BRIDGE", PPM_AF_BRIDGE},
89        {"AF_NETROM", PPM_AF_NETROM},
90        {"AF_APPLETALK", PPM_AF_APPLETALK},
91        {"AF_IPX", PPM_AF_IPX},
92        {"AF_AX25", PPM_AF_AX25},
93        {"AF_INET", PPM_AF_INET},
94        {"AF_LOCAL", PPM_AF_LOCAL},
95        {"AF_UNIX", PPM_AF_UNIX},
96        {"AF_UNSPEC", PPM_AF_UNSPEC},
97        {0, 0},
98};
99
100const struct ppm_name_value file_flags[] = {
101        {"O_LARGEFILE", PPM_O_LARGEFILE},
102        {"O_DIRECTORY", PPM_O_DIRECTORY},
103        {"O_DIRECT", PPM_O_DIRECT},
104        {"O_TRUNC", PPM_O_TRUNC},
105        {"O_SYNC", PPM_O_SYNC},
106        {"O_NONBLOCK", PPM_O_NONBLOCK},
107        {"O_EXCL", PPM_O_EXCL},
108        {"O_DSYNC", PPM_O_DSYNC},
109        {"O_APPEND", PPM_O_APPEND},
110        {"O_CREAT", PPM_O_CREAT},
111        {"O_RDWR", PPM_O_RDWR},
112        {"O_WRONLY", PPM_O_WRONLY},
113        {"O_RDONLY", PPM_O_RDONLY},
114        {"O_CLOEXEC", PPM_O_CLOEXEC},
115        {"O_NONE", PPM_O_NONE},
116        {"O_TMPFILE", PPM_O_TMPFILE},
117        {"O_F_CREATED", PPM_O_F_CREATED},
118        {"FD_UPPER_LAYER", PPM_FD_UPPER_LAYER},
119        {"FD_LOWER_LAYER", PPM_FD_LOWER_LAYER},
120        {0, 0},
121};
122
123const struct ppm_name_value creat_flags[] = {
124        {"FD_UPPER_LAYER_CREAT", PPM_FD_UPPER_LAYER_CREAT},
125        {"FD_LOWER_LAYER_CREAT", PPM_FD_LOWER_LAYER_CREAT},
126        {0, 0},
127};
128
129const struct ppm_name_value flock_flags[] = {
130        {"LOCK_SH", PPM_LOCK_SH},
131        {"LOCK_EX", PPM_LOCK_EX},
132        {"LOCK_NB", PPM_LOCK_NB},
133        {"LOCK_UN", PPM_LOCK_UN},
134        {"LOCK_NONE", PPM_LOCK_NONE},
135        {0, 0},
136};
137
138const struct ppm_name_value clone_flags[] = {
139        {"CLONE_FILES", PPM_CL_CLONE_FILES},
140        {"CLONE_FS", PPM_CL_CLONE_FS},
141        {"CLONE_IO", PPM_CL_CLONE_IO},
142        {"CLONE_NEWIPC", PPM_CL_CLONE_NEWIPC},
143        {"CLONE_NEWNET", PPM_CL_CLONE_NEWNET},
144        {"CLONE_NEWNS", PPM_CL_CLONE_NEWNS},
145        {"CLONE_NEWPID", PPM_CL_CLONE_NEWPID},
146        {"CLONE_NEWUTS", PPM_CL_CLONE_NEWUTS},
147        {"CLONE_PARENT", PPM_CL_CLONE_PARENT},
148        {"CLONE_PARENT_SETTID", PPM_CL_CLONE_PARENT_SETTID},
149        {"CLONE_PTRACE", PPM_CL_CLONE_PTRACE},
150        {"CLONE_SIGHAND", PPM_CL_CLONE_SIGHAND},
151        {"CLONE_SYSVSEM", PPM_CL_CLONE_SYSVSEM},
152        {"CLONE_THREAD", PPM_CL_CLONE_THREAD},
153        {"CLONE_UNTRACED", PPM_CL_CLONE_UNTRACED},
154        {"CLONE_VM", PPM_CL_CLONE_VM},
155        {"CLONE_INVERTED", PPM_CL_CLONE_INVERTED},
156        {"NAME_CHANGED", PPM_CL_NAME_CHANGED},
157        {"CLOSED", PPM_CL_CLOSED},
158        {"CLONE_NEWUSER", PPM_CL_CLONE_NEWUSER},
159        {"CLONE_CHILD_CLEARTID", PPM_CL_CLONE_CHILD_CLEARTID},
160        {"CLONE_CHILD_SETTID", PPM_CL_CLONE_CHILD_SETTID},
161        {"CLONE_SETTLS", PPM_CL_CLONE_SETTLS},
162        {"CLONE_STOPPED", PPM_CL_CLONE_STOPPED},
163        {"CLONE_VFORK", PPM_CL_CLONE_VFORK},
164        {"CLONE_NEWCGROUP", PPM_CL_CLONE_NEWCGROUP},
165        {0, 0},
166};
167
168const struct ppm_name_value futex_operations[] = {
169        {"FUTEX_CLOCK_REALTIME", PPM_FU_FUTEX_CLOCK_REALTIME},
170        {"FUTEX_PRIVATE_FLAG", PPM_FU_FUTEX_PRIVATE_FLAG},
171        {"FUTEX_CMP_REQUEUE_PI", PPM_FU_FUTEX_CMP_REQUEUE_PI},
172        {"FUTEX_WAIT_REQUEUE_PI", PPM_FU_FUTEX_WAIT_REQUEUE_PI},
173        {"FUTEX_WAKE_BITSET", PPM_FU_FUTEX_WAKE_BITSET},
174        {"FUTEX_WAIT_BITSET", PPM_FU_FUTEX_WAIT_BITSET},
175        {"FUTEX_TRYLOCK_PI", PPM_FU_FUTEX_TRYLOCK_PI},
176        {"FUTEX_UNLOCK_PI", PPM_FU_FUTEX_UNLOCK_PI},
177        {"FUTEX_LOCK_PI", PPM_FU_FUTEX_LOCK_PI},
178        {"FUTEX_WAKE_OP", PPM_FU_FUTEX_WAKE_OP},
179        {"FUTEX_CMP_REQUEUE", PPM_FU_FUTEX_CMP_REQUEUE},
180        {"FUTEX_REQUEUE", PPM_FU_FUTEX_REQUEUE},
181        {"FUTEX_FD", PPM_FU_FUTEX_FD},
182        {"FUTEX_WAKE", PPM_FU_FUTEX_WAKE},
183        {"FUTEX_WAIT", PPM_FU_FUTEX_WAIT},
184        {0, 0},
185};
186
187const struct ppm_name_value poll_flags[] = {
188        {"POLLIN", PPM_POLLIN},
189        {"POLLPRI", PPM_POLLPRI},
190        {"POLLOUT", PPM_POLLOUT},
191        {"POLLRDHUP", PPM_POLLRDHUP},
192        {"POLLERR", PPM_POLLERR},
193        {"POLLHUP", PPM_POLLHUP},
194        {"POLLNVAL", PPM_POLLNVAL},
195        {"POLLRDNORM", PPM_POLLRDNORM},
196        {"POLLRDBAND", PPM_POLLRDBAND},
197        {"POLLWRNORM", PPM_POLLWRNORM},
198        {"POLLWRBAND", PPM_POLLWRBAND},
199        {0, 0},
200};
201
202/* http://lxr.free-electrons.com/source/include/uapi/linux/fs.h?v=4.2#L65 */
203const struct ppm_name_value mount_flags[] = {
204        {"RDONLY", PPM_MS_RDONLY},
205        {"NOSUID", PPM_MS_NOSUID},
206        {"NODEV", PPM_MS_NODEV},
207        {"NOEXEC", PPM_MS_NOEXEC},
208        {"SYNCHRONOUS", PPM_MS_SYNCHRONOUS},
209        {"REMOUNT", PPM_MS_REMOUNT},
210        {"MANDLOCK", PPM_MS_MANDLOCK},
211        {"DIRSYNC", PPM_MS_DIRSYNC},
212        {"NOATIME", PPM_MS_NOATIME},
213        {"NODIRATIME", PPM_MS_NODIRATIME},
214        {"BIND", PPM_MS_BIND},
215        {"MOVE", PPM_MS_MOVE},
216        {"REC", PPM_MS_REC},
217        {"SILENT", PPM_MS_SILENT},
218        {"POSIXACL", PPM_MS_POSIXACL},
219        {"UNBINDABLE", PPM_MS_UNBINDABLE},
220        {"PRIVATE", PPM_MS_PRIVATE},
221        {"SLAVE", PPM_MS_SLAVE},
222        {"SHARED", PPM_MS_SHARED},
223        {"RELATIME", PPM_MS_RELATIME},
224        {"KERNMOUNT", PPM_MS_KERNMOUNT},
225        {"I_VERSION", PPM_MS_I_VERSION},
226        {"STRICTATIME", PPM_MS_STRICTATIME},
227        {"LAZYTIME", PPM_MS_LAZYTIME},
228        {"NOSEC", PPM_MS_NOSEC},
229        {"BORN", PPM_MS_BORN},
230        {"ACTIVE", PPM_MS_ACTIVE},
231        {"NOUSER", PPM_MS_NOUSER},  // NOTE: we are at 1 << 31 -> and we have an uint32_t value.
232        {0, 0},
233};
234
235/* There is a 1:1 mapping between `umount2` flags and our `PPM` notation, so we don't
236 * need a dedicated helper for the conversion.
237 */
238const struct ppm_name_value umount_flags[] = {
239        {"FORCE", PPM_MNT_FORCE},
240        {"DETACH", PPM_MNT_DETACH},
241        {"EXPIRE", PPM_MNT_EXPIRE},
242        {"NOFOLLOW", PPM_UMOUNT_NOFOLLOW},
243        {0, 0},
244};
245
246const struct ppm_name_value lseek_whence[] = {
247        {"SEEK_END", PPM_SEEK_END},
248        {"SEEK_CUR", PPM_SEEK_CUR},
249        {"SEEK_SET", PPM_SEEK_SET},
250        {0, 0},
251};
252
253const struct ppm_name_value shutdown_how[] = {
254        {"SHUT_UNKNOWN", PPM_SHUT_UNKNOWN},
255        {"SHUT_RDWR", PPM_SHUT_RDWR},
256        {"SHUT_WR", PPM_SHUT_WR},
257        {"SHUT_RD", PPM_SHUT_RD},
258        {0, 0},
259};
260
261const struct ppm_name_value rlimit_resources[] = {
262        {"RLIMIT_UNKNOWN", PPM_RLIMIT_UNKNOWN},
263        {"RLIMIT_RTTIME", PPM_RLIMIT_RTTIME},
264        {"RLIMIT_RTPRIO", PPM_RLIMIT_RTPRIO},
265        {"RLIMIT_NICE", PPM_RLIMIT_NICE},
266        {"RLIMIT_MSGQUEUE", PPM_RLIMIT_MSGQUEUE},
267        {"RLIMIT_SIGPENDING", PPM_RLIMIT_SIGPENDING},
268        {"RLIMIT_LOCKS", PPM_RLIMIT_LOCKS},
269        {"RLIMIT_AS", PPM_RLIMIT_AS},
270        {"RLIMIT_MEMLOCK", PPM_RLIMIT_MEMLOCK},
271        {"RLIMIT_NOFILE", PPM_RLIMIT_NOFILE},
272        {"RLIMIT_NPROC", PPM_RLIMIT_NPROC},
273        {"RLIMIT_RSS", PPM_RLIMIT_RSS},
274        {"RLIMIT_CORE", PPM_RLIMIT_CORE},
275        {"RLIMIT_STACK", PPM_RLIMIT_STACK},
276        {"RLIMIT_DATA", PPM_RLIMIT_DATA},
277        {"RLIMIT_FSIZE", PPM_RLIMIT_FSIZE},
278        {"RLIMIT_CPU", PPM_RLIMIT_CPU},
279        {0, 0},
280};
281
282const struct ppm_name_value fcntl_commands[] = {
283        {"F_GETPIPE_SZ", PPM_FCNTL_F_GETPIPE_SZ},
284        {"F_SETPIPE_SZ", PPM_FCNTL_F_SETPIPE_SZ},
285        {"F_NOTIFY", PPM_FCNTL_F_NOTIFY},
286        {"F_DUPFD_CLOEXEC", PPM_FCNTL_F_DUPFD_CLOEXEC},
287        {"F_CANCELLK", PPM_FCNTL_F_CANCELLK},
288        {"F_GETLEASE", PPM_FCNTL_F_GETLEASE},
289        {"F_SETLEASE", PPM_FCNTL_F_SETLEASE},
290        {"F_GETOWN_EX", PPM_FCNTL_F_GETOWN_EX},
291        {"F_SETOWN_EX", PPM_FCNTL_F_SETOWN_EX},
292        {"F_SETLKW64", PPM_FCNTL_F_SETLKW64},
293        {"F_SETLK64", PPM_FCNTL_F_SETLK64},
294        {"F_GETLK64", PPM_FCNTL_F_GETLK64},
295        {"F_GETSIG", PPM_FCNTL_F_GETSIG},
296        {"F_SETSIG", PPM_FCNTL_F_SETSIG},
297        {"F_GETOWN", PPM_FCNTL_F_GETOWN},
298        {"F_SETOWN", PPM_FCNTL_F_SETOWN},
299        {"F_SETLKW", PPM_FCNTL_F_SETLKW},
300        {"F_SETLK", PPM_FCNTL_F_SETLK},
301        {"F_GETLK", PPM_FCNTL_F_GETLK},
302        {"F_SETFL", PPM_FCNTL_F_SETFL},
303        {"F_GETFL", PPM_FCNTL_F_GETFL},
304        {"F_SETFD", PPM_FCNTL_F_SETFD},
305        {"F_GETFD", PPM_FCNTL_F_GETFD},
306        {"F_DUPFD", PPM_FCNTL_F_DUPFD},
307        {"F_OFD_GETLK", PPM_FCNTL_F_OFD_GETLK},
308        {"F_OFD_SETLK", PPM_FCNTL_F_OFD_SETLK},
309        {"F_OFD_SETLKW", PPM_FCNTL_F_OFD_SETLKW},
310        {"UNKNOWN", PPM_FCNTL_UNKNOWN},
311        {0, 0},
312};
313
314const struct ppm_name_value sockopt_levels[] = {
315        {"SOL_SOCKET", PPM_SOCKOPT_LEVEL_SOL_SOCKET},
316        {"SOL_TCP", PPM_SOCKOPT_LEVEL_SOL_TCP},
317        {"UNKNOWN", PPM_SOCKOPT_LEVEL_UNKNOWN},
318        {0, 0},
319};
320
321const struct ppm_name_value sockopt_options[] = {
322        {"SO_COOKIE", PPM_SOCKOPT_SO_COOKIE},
323        {"SO_MEMINFO", PPM_SOCKOPT_SO_MEMINFO},
324        {"SO_PEERGROUPS", PPM_SOCKOPT_SO_PEERGROUPS},
325        {"SO_ATTACH_BPF", PPM_SOCKOPT_SO_ATTACH_BPF},
326        {"SO_INCOMING_CPU", PPM_SOCKOPT_SO_INCOMING_CPU},
327        {"SO_BPF_EXTENSIONS", PPM_SOCKOPT_SO_BPF_EXTENSIONS},
328        {"SO_MAX_PACING_RATE", PPM_SOCKOPT_SO_MAX_PACING_RATE},
329        {"SO_BUSY_POLL", PPM_SOCKOPT_SO_BUSY_POLL},
330        {"SO_SELECT_ERR_QUEUE", PPM_SOCKOPT_SO_SELECT_ERR_QUEUE},
331        {"SO_LOCK_FILTER", PPM_SOCKOPT_SO_LOCK_FILTER},
332        {"SO_NOFCS", PPM_SOCKOPT_SO_NOFCS},
333        {"SO_PEEK_OFF", PPM_SOCKOPT_SO_PEEK_OFF},
334        {"SO_WIFI_STATUS", PPM_SOCKOPT_SO_WIFI_STATUS},
335        {"SO_RXQ_OVFL", PPM_SOCKOPT_SO_RXQ_OVFL},
336        {"SO_DOMAIN", PPM_SOCKOPT_SO_DOMAIN},
337        {"SO_PROTOCOL", PPM_SOCKOPT_SO_PROTOCOL},
338        {"SO_TIMESTAMPING", PPM_SOCKOPT_SO_TIMESTAMPING},
339        {"SO_MARK", PPM_SOCKOPT_SO_MARK},
340        {"SO_TIMESTAMPNS", PPM_SOCKOPT_SO_TIMESTAMPNS},
341        {"SO_PASSSEC", PPM_SOCKOPT_SO_PASSSEC},
342        {"SO_PEERSEC", PPM_SOCKOPT_SO_PEERSEC},
343        {"SO_ACCEPTCONN", PPM_SOCKOPT_SO_ACCEPTCONN},
344        {"SO_TIMESTAMP", PPM_SOCKOPT_SO_TIMESTAMP},
345        {"SO_PEERNAME", PPM_SOCKOPT_SO_PEERNAME},
346        {"SO_DETACH_FILTER", PPM_SOCKOPT_SO_DETACH_FILTER},
347        {"SO_ATTACH_FILTER", PPM_SOCKOPT_SO_ATTACH_FILTER},
348        {"SO_BINDTODEVICE", PPM_SOCKOPT_SO_BINDTODEVICE},
349        {"SO_SECURITY_ENCRYPTION_NETWORK", PPM_SOCKOPT_SO_SECURITY_ENCRYPTION_NETWORK},
350        {"SO_SECURITY_ENCRYPTION_TRANSPORT", PPM_SOCKOPT_SO_SECURITY_ENCRYPTION_TRANSPORT},
351        {"SO_SECURITY_AUTHENTICATION", PPM_SOCKOPT_SO_SECURITY_AUTHENTICATION},
352        {"SO_SNDTIMEO", PPM_SOCKOPT_SO_SNDTIMEO},
353        {"SO_RCVTIMEO", PPM_SOCKOPT_SO_RCVTIMEO},
354        {"SO_SNDLOWAT", PPM_SOCKOPT_SO_SNDLOWAT},
355        {"SO_RCVLOWAT", PPM_SOCKOPT_SO_RCVLOWAT},
356        {"SO_PEERCRED", PPM_SOCKOPT_SO_PEERCRED},
357        {"SO_PASSCRED", PPM_SOCKOPT_SO_PASSCRED},
358        {"SO_REUSEPORT", PPM_SOCKOPT_SO_REUSEPORT},
359        {"SO_BSDCOMPAT", PPM_SOCKOPT_SO_BSDCOMPAT},
360        {"SO_LINGER", PPM_SOCKOPT_SO_LINGER},
361        {"SO_PRIORITY", PPM_SOCKOPT_SO_PRIORITY},
362        {"SO_NO_CHECK", PPM_SOCKOPT_SO_NO_CHECK},
363        {"SO_OOBINLINE", PPM_SOCKOPT_SO_OOBINLINE},
364        {"SO_KEEPALIVE", PPM_SOCKOPT_SO_KEEPALIVE},
365        {"SO_RCVBUFFORCE", PPM_SOCKOPT_SO_RCVBUFFORCE},
366        {"SO_SNDBUFFORCE", PPM_SOCKOPT_SO_SNDBUFFORCE},
367        {"SO_RCVBUF", PPM_SOCKOPT_SO_RCVBUF},
368        {"SO_SNDBUF", PPM_SOCKOPT_SO_SNDBUF},
369        {"SO_BROADCAST", PPM_SOCKOPT_SO_BROADCAST},
370        {"SO_DONTROUTE", PPM_SOCKOPT_SO_DONTROUTE},
371        {"SO_ERROR", PPM_SOCKOPT_SO_ERROR},
372        {"SO_TYPE", PPM_SOCKOPT_SO_TYPE},
373        {"SO_REUSEADDR", PPM_SOCKOPT_SO_REUSEADDR},
374        {"SO_DEBUG", PPM_SOCKOPT_SO_DEBUG},
375        {"UNKNOWN", PPM_SOCKOPT_UNKNOWN},
376        {0, 0},
377};
378
379const struct ppm_name_value ptrace_requests[] = {
380        {"PTRACE_SINGLEBLOCK", PPM_PTRACE_SINGLEBLOCK},
381        {"PTRACE_SYSEMU_SINGLESTEP", PPM_PTRACE_SYSEMU_SINGLESTEP},
382        {"PTRACE_SYSEMU", PPM_PTRACE_SYSEMU},
383        {"PTRACE_ARCH_PRCTL", PPM_PTRACE_ARCH_PRCTL},
384        {"PTRACE_SET_THREAD_AREA", PPM_PTRACE_SET_THREAD_AREA},
385        {"PTRACE_GET_THREAD_AREA", PPM_PTRACE_GET_THREAD_AREA},
386        {"PTRACE_OLDSETOPTIONS", PPM_PTRACE_OLDSETOPTIONS},
387        {"PTRACE_SETFPXREGS", PPM_PTRACE_SETFPXREGS},
388        {"PTRACE_GETFPXREGS", PPM_PTRACE_GETFPXREGS},
389        {"PTRACE_SETFPREGS", PPM_PTRACE_SETFPREGS},
390        {"PTRACE_GETFPREGS", PPM_PTRACE_GETFPREGS},
391        {"PTRACE_SETREGS", PPM_PTRACE_SETREGS},
392        {"PTRACE_GETREGS", PPM_PTRACE_GETREGS},
393        {"PTRACE_SETSIGMASK", PPM_PTRACE_SETSIGMASK},
394        {"PTRACE_GETSIGMASK", PPM_PTRACE_GETSIGMASK},
395        {"PTRACE_PEEKSIGINFO", PPM_PTRACE_PEEKSIGINFO},
396        {"PTRACE_LISTEN", PPM_PTRACE_LISTEN},
397        {"PTRACE_INTERRUPT", PPM_PTRACE_INTERRUPT},
398        {"PTRACE_SEIZE", PPM_PTRACE_SEIZE},
399        {"PTRACE_SETREGSET", PPM_PTRACE_SETREGSET},
400        {"PTRACE_GETREGSET", PPM_PTRACE_GETREGSET},
401        {"PTRACE_SETSIGINFO", PPM_PTRACE_SETSIGINFO},
402        {"PTRACE_GETSIGINFO", PPM_PTRACE_GETSIGINFO},
403        {"PTRACE_GETEVENTMSG", PPM_PTRACE_GETEVENTMSG},
404        {"PTRACE_SETOPTIONS", PPM_PTRACE_SETOPTIONS},
405        {"PTRACE_SYSCALL", PPM_PTRACE_SYSCALL},
406        {"PTRACE_DETACH", PPM_PTRACE_DETACH},
407        {"PTRACE_ATTACH", PPM_PTRACE_ATTACH},
408        {"PTRACE_SINGLESTEP", PPM_PTRACE_SINGLESTEP},
409        {"PTRACE_KILL", PPM_PTRACE_KILL},
410        {"PTRACE_CONT", PPM_PTRACE_CONT},
411        {"PTRACE_POKEUSR", PPM_PTRACE_POKEUSR},
412        {"PTRACE_POKEDATA", PPM_PTRACE_POKEDATA},
413        {"PTRACE_POKETEXT", PPM_PTRACE_POKETEXT},
414        {"PTRACE_PEEKUSR", PPM_PTRACE_PEEKUSR},
415        {"PTRACE_PEEKDATA", PPM_PTRACE_PEEKDATA},
416        {"PTRACE_PEEKTEXT", PPM_PTRACE_PEEKTEXT},
417        {"PTRACE_TRACEME", PPM_PTRACE_TRACEME},
418        {"PTRACE_UNKNOWN", PPM_PTRACE_UNKNOWN},
419        {0, 0},
420};
421
422const struct ppm_name_value prot_flags[] = {
423        {"PROT_READ", PPM_PROT_READ},
424        {"PROT_WRITE", PPM_PROT_WRITE},
425        {"PROT_EXEC", PPM_PROT_EXEC},
426        {"PROT_SEM", PPM_PROT_SEM},
427        {"PROT_GROWSDOWN", PPM_PROT_GROWSDOWN},
428        {"PROT_GROWSUP", PPM_PROT_GROWSUP},
429        {"PROT_SAO", PPM_PROT_SAO},
430        {"PROT_NONE", PPM_PROT_NONE},
431        {0, 0},
432};
433
434const struct ppm_name_value mmap_flags[] = {
435        {"MAP_SHARED", PPM_MAP_SHARED},
436        {"MAP_PRIVATE", PPM_MAP_PRIVATE},
437        {"MAP_FIXED", PPM_MAP_FIXED},
438        {"MAP_ANONYMOUS", PPM_MAP_ANONYMOUS},
439        {"MAP_32BIT", PPM_MAP_32BIT},
440        {"MAP_RENAME", PPM_MAP_RENAME},
441        {"MAP_NORESERVE", PPM_MAP_NORESERVE},
442        {"MAP_POPULATE", PPM_MAP_POPULATE},
443        {"MAP_NONBLOCK", PPM_MAP_NONBLOCK},
444        {"MAP_GROWSDOWN", PPM_MAP_GROWSDOWN},
445        {"MAP_DENYWRITE", PPM_MAP_DENYWRITE},
446        {"MAP_EXECUTABLE", PPM_MAP_EXECUTABLE},
447        {"MAP_INHERIT", PPM_MAP_INHERIT},
448        {"MAP_FILE", PPM_MAP_FILE},
449        {"MAP_LOCKED", PPM_MAP_LOCKED},
450        {0, 0},
451};
452
453const struct ppm_name_value splice_flags[] = {
454        {"SPLICE_F_MOVE", PPM_SPLICE_F_MOVE},
455        {"SPLICE_F_NONBLOCK", PPM_SPLICE_F_NONBLOCK},
456        {"SPLICE_F_MORE", PPM_SPLICE_F_MORE},
457        {"SPLICE_F_GIFT", PPM_SPLICE_F_GIFT},
458        {0, 0},
459};
460
461const struct ppm_name_value quotactl_dqi_flags[] = {
462        {"DQF_NONE", PPM_DQF_NONE},
463        {"V1_DQF_RSQUASH", PPM_V1_DQF_RSQUASH},
464        {0, 0},
465};
466
467const struct ppm_name_value quotactl_cmds[] = {
468        {"Q_QUOTAON", PPM_Q_QUOTAON},
469        {"Q_QUOTAOFF", PPM_Q_QUOTAOFF},
470        {"Q_GETFMT", PPM_Q_GETFMT},
471        {"Q_GETINFO", PPM_Q_GETINFO},
472        {"Q_SETINFO", PPM_Q_SETINFO},
473        {"Q_GETQUOTA", PPM_Q_GETQUOTA},
474        {"Q_SETQUOTA", PPM_Q_SETQUOTA},
475        {"Q_SYNC", PPM_Q_SYNC},
476        {"Q_XQUOTAON", PPM_Q_XQUOTAON},
477        {"Q_XQUOTAOFF", PPM_Q_XQUOTAOFF},
478        {"Q_XGETQUOTA", PPM_Q_XGETQUOTA},
479        {"Q_XSETQLIM", PPM_Q_XSETQLIM},
480        {"Q_XGETQSTAT", PPM_Q_XGETQSTAT},
481        {"Q_XQUOTARM", PPM_Q_XQUOTARM},
482        {"Q_XQUOTASYNC", PPM_Q_XQUOTASYNC},
483        {0, 0},
484};
485
486const struct ppm_name_value quotactl_types[] = {
487        {"USRQUOTA", PPM_USRQUOTA},
488        {"GRPQUOTA", PPM_GRPQUOTA},
489        {0, 0},
490};
491
492const struct ppm_name_value quotactl_quota_fmts[] = {
493        {"QFMT_NOT_USED", PPM_QFMT_NOT_USED},
494        {"QFMT_VFS_OLD", PPM_QFMT_VFS_OLD},
495        {"QFMT_VFS_V0", PPM_QFMT_VFS_V0},
496        {"QFMT_VFS_V1", PPM_QFMT_VFS_V1},
497        {0, 0},
498};
499
500const struct ppm_name_value semop_flags[] = {
501        {"IPC_NOWAIT", PPM_IPC_NOWAIT},
502        {"SEM_UNDO", PPM_SEM_UNDO},
503        {0, 0},
504};
505
506const struct ppm_name_value semget_flags[] = {
507        {"IPC_EXCL", PPM_IPC_EXCL},
508        {"IPC_CREAT", PPM_IPC_CREAT},
509        {0, 0},
510};
511
512const struct ppm_name_value semctl_commands[] = {
513        {"IPC_STAT", PPM_IPC_STAT},
514        {"IPC_SET", PPM_IPC_SET},
515        {"IPC_RMID", PPM_IPC_RMID},
516        {"IPC_INFO", PPM_IPC_INFO},
517        {"SEM_INFO", PPM_SEM_INFO},
518        {"SEM_STAT", PPM_SEM_STAT},
519        {"GETALL", PPM_GETALL},
520        {"GETNCNT", PPM_GETNCNT},
521        {"GETPID", PPM_GETPID},
522        {"GETVAL", PPM_GETVAL},
523        {"GETZCNT", PPM_GETZCNT},
524        {"SETALL", PPM_SETALL},
525        {"SETVAL", PPM_SETVAL},
526        {0, 0},
527};
528
529const struct ppm_name_value access_flags[] = {
530        {"F_OK", PPM_F_OK},
531        {"R_OK", PPM_R_OK},
532        {"W_OK", PPM_W_OK},
533        {"X_OK", PPM_X_OK},
534        {0, 0},
535};
536
537const struct ppm_name_value pf_flags[] = {
538        {"PROTECTION_VIOLATION", PPM_PF_PROTECTION_VIOLATION},
539        {"PAGE_NOT_PRESENT", PPM_PF_PAGE_NOT_PRESENT},
540        {"WRITE_ACCESS", PPM_PF_WRITE_ACCESS},
541        {"READ_ACCESS", PPM_PF_READ_ACCESS},
542        {"USER_FAULT", PPM_PF_USER_FAULT},
543        {"SUPERVISOR_FAULT", PPM_PF_SUPERVISOR_FAULT},
544        {"RESERVED_PAGE", PPM_PF_RESERVED_PAGE},
545        {"INSTRUCTION_FETCH", PPM_PF_INSTRUCTION_FETCH},
546        {0, 0},
547};
548
549const struct ppm_name_value unlinkat_flags[] = {
550        {"AT_REMOVEDIR", PPM_AT_REMOVEDIR},
551        {0, 0},
552};
553
554const struct ppm_name_value linkat_flags[] = {
555        {"AT_SYMLINK_FOLLOW", PPM_AT_SYMLINK_FOLLOW},
556        {"AT_EMPTY_PATH", PPM_AT_EMPTY_PATH},
557        {0, 0},
558};
559
560const struct ppm_name_value newfstatat_flags[] = {
561        {"AT_EMPTY_PATH", PPM_AT_EMPTY_PATH},
562        {"AT_NO_AUTOMOUNT", PPM_AT_NO_AUTOMOUNT},
563        {"AT_SYMLINK_NOFOLLOW", PPM_AT_SYMLINK_NOFOLLOW},
564        {0, 0},
565};
566
567const struct ppm_name_value chmod_mode[] = {
568        {"S_IXOTH", PPM_S_IXOTH},
569        {"S_IWOTH", PPM_S_IWOTH},
570        {"S_IROTH", PPM_S_IROTH},
571        {"S_IXGRP", PPM_S_IXGRP},
572        {"S_IWGRP", PPM_S_IWGRP},
573        {"S_IRGRP", PPM_S_IRGRP},
574        {"S_IXUSR", PPM_S_IXUSR},
575        {"S_IWUSR", PPM_S_IWUSR},
576        {"S_IRUSR", PPM_S_IRUSR},
577        {"S_ISVTX", PPM_S_ISVTX},
578        {"S_ISGID", PPM_S_ISGID},
579        {"S_ISUID", PPM_S_ISUID},
580        {0, 0},
581};
582
583const struct ppm_name_value fchownat_flags[] = {
584        {"AT_SYMLINK_NOFOLLOW", PPM_AT_SYMLINK_FOLLOW},
585        {"AT_EMPTY_PATH", PPM_AT_EMPTY_PATH},
586        {0, 0},
587};
588
589const struct ppm_name_value renameat2_flags[] = {
590        {"RENAME_NOREPLACE", PPM_RENAME_NOREPLACE},
591        {"RENAME_EXCHANGE", PPM_RENAME_EXCHANGE},
592        {"RENAME_WHITEOUT", PPM_RENAME_WHITEOUT},
593        {0, 0},
594};
595
596const struct ppm_name_value openat2_flags[] = {
597        {"RESOLVE_BENEATH", PPM_RESOLVE_BENEATH},
598        {"RESOLVE_IN_ROOT", PPM_RESOLVE_IN_ROOT},
599        {"RESOLVE_NO_MAGICLINKS", PPM_RESOLVE_NO_MAGICLINKS},
600        {"RESOLVE_NO_SYMLINKS", PPM_RESOLVE_NO_SYMLINKS},
601        {"RESOLVE_NO_XDEV", PPM_RESOLVE_NO_XDEV},
602        {"RESOLVE_CACHED", PPM_RESOLVE_CACHED},
603        {0, 0},
604};
605
606const struct ppm_name_value execve_flags[] = {
607        {"EXE_WRITABLE", PPM_EXE_WRITABLE},
608        {"EXE_UPPER_LAYER", PPM_EXE_UPPER_LAYER},
609        {"EXE_FROM_MEMFD", PPM_EXE_FROM_MEMFD},
610        {"EXE_LOWER_LAYER", PPM_EXE_LOWER_LAYER},
611        {0, 0},
612};
613
614const struct ppm_name_value execveat_flags[] = {
615        {"AT_EMPTY_PATH", PPM_EXVAT_AT_EMPTY_PATH},
616        {"AT_SYMLINK_NOFOLLOW", PPM_EXVAT_AT_SYMLINK_NOFOLLOW},
617        {0, 0},
618};
619
620const struct ppm_name_value io_uring_setup_flags[] = {
621        {"IORING_SETUP_IOPOLL", PPM_IORING_SETUP_IOPOLL},
622        {"IORING_SETUP_SQPOLL", PPM_IORING_SETUP_SQPOLL},
623        {"IORING_SQ_NEED_WAKEUP", PPM_IORING_SQ_NEED_WAKEUP},
624        {"IORING_SETUP_SQ_AFF", PPM_IORING_SETUP_SQ_AFF},
625        {"IORING_SETUP_CQSIZE", PPM_IORING_SETUP_CQSIZE},
626        {"IORING_SETUP_CLAMP", PPM_IORING_SETUP_CLAMP},
627        {"IORING_SETUP_ATTACH_RW", PPM_IORING_SETUP_ATTACH_WQ},
628        {"IORING_SETUP_R_DISABLED", PPM_IORING_SETUP_R_DISABLED},
629        {0, 0},
630};
631
632const struct ppm_name_value io_uring_setup_feats[] = {
633        {"IORING_FEAT_SINGLE_MMAP", PPM_IORING_FEAT_SINGLE_MMAP},
634        {"IORING_FEAT_NODROP", PPM_IORING_FEAT_NODROP},
635        {"IORING_FEAT_SUBMIT_STABLE", PPM_IORING_FEAT_SUBMIT_STABLE},
636        {"IORING_FEAT_RW_CUR_POS", PPM_IORING_FEAT_RW_CUR_POS},
637        {"IORING_FEAT_CUR_PERSONALITY", PPM_IORING_FEAT_CUR_PERSONALITY},
638        {"IORING_FEAT_FAST_POLL", PPM_IORING_FEAT_FAST_POLL},
639        {"IORING_FEAT_POLL_32BITS", PPM_IORING_FEAT_POLL_32BITS},
640        {"IORING_FEAT_SQPOLL_NONFIXED", PPM_IORING_FEAT_SQPOLL_NONFIXED},
641        {"IORING_FEAT_ENTER_EXT_ARG", PPM_IORING_FEAT_ENTER_EXT_ARG},
642        {"IORING_FEAT_NATIVE_WORKERS", PPM_IORING_FEAT_NATIVE_WORKERS},
643        {"IORING_FEAT_RSRC_TAGS", PPM_IORING_FEAT_RSRC_TAGS},
644        {0, 0},
645};
646
647const struct ppm_name_value io_uring_enter_flags[] = {
648        {"IORING_ENTER_GETEVENTS", PPM_IORING_ENTER_GETEVENTS},
649        {"IORING_ENTER_SQ_WAKEUP", PPM_IORING_ENTER_SQ_WAKEUP},
650        {"IORING_ENTER_SQ_WAIT", PPM_IORING_ENTER_SQ_WAIT},
651        {"IORING_ENTER_EXT_ARG", PPM_IORING_ENTER_EXT_ARG},
652        {0, 0},
653};
654
655const struct ppm_name_value io_uring_register_opcodes[] = {
656        {"IORING_REGISTER_BUFFERS", PPM_IORING_REGISTER_BUFFERS},
657        {"IORING_UNREGISTER_BUFFERS", PPM_IORING_UNREGISTER_BUFFERS},
658        {"IORING_REGISTER_FILES", PPM_IORING_REGISTER_FILES},
659        {"IORING_UNREGISTER_FILES", PPM_IORING_UNREGISTER_FILES},
660        {"IORING_REGISTER_EVENTFD", PPM_IORING_REGISTER_EVENTFD},
661        {"IORING_UNREGISTER_EVENTFD", PPM_IORING_UNREGISTER_EVENTFD},
662        {"IORING_REGISTER_FILES_UPDATE", PPM_IORING_REGISTER_FILES_UPDATE},
663        {"IORING_REGISTER_EVENTFD_ASYNC", PPM_IORING_REGISTER_EVENTFD_ASYNC},
664        {"IORING_REGISTER_PROBE", PPM_IORING_REGISTER_PROBE},
665        {"IORING_REGISTER_PERSONALITY", PPM_IORING_REGISTER_PERSONALITY},
666        {"IORING_UNREGISTER_PERSONALITY", PPM_IORING_UNREGISTER_PERSONALITY},
667        {"IORING_REGISTER_RESTRICTIONS", PPM_IORING_REGISTER_RESTRICTIONS},
668        {"IORING_REGISTER_ENABLE_RINGS", PPM_IORING_REGISTER_ENABLE_RINGS},
669        {"IORING_REGISTER_FILES2", PPM_IORING_REGISTER_FILES2},
670        {"IORING_REGISTER_FILES_UPDATE2", PPM_IORING_REGISTER_FILES_UPDATE2},
671        {"IORING_REGISTER_BUFFERS2", PPM_IORING_REGISTER_BUFFERS2},
672        {"IORING_REGISTER_BUFFERS_UPDATE", PPM_IORING_REGISTER_BUFFERS_UPDATE},
673        {"IORING_REGISTER_IOWQ_AFF", PPM_IORING_REGISTER_IOWQ_AFF},
674        {"IORING_UNREGISTER_IOWQ_AFF", PPM_IORING_UNREGISTER_IOWQ_AFF},
675        {"IORING_REGISTER_IOWQ_MAX_WORKERS", PPM_IORING_REGISTER_IOWQ_MAX_WORKERS},
676        {"IORING_REGISTER_RING_FDS", PPM_IORING_REGISTER_RING_FDS},
677        {"IORING_UNREGISTER_RING_FDS", PPM_IORING_UNREGISTER_RING_FDS},
678        {0, 0}};
679
680const struct ppm_name_value mlockall_flags[] = {
681        {"MCL_CURRENT", PPM_MLOCKALL_MCL_CURRENT},
682        {"MCL_FUTURE", PPM_MLOCKALL_MCL_FUTURE},
683        {"MCL_ONFAULT", PPM_MLOCKALL_MCL_ONFAULT},
684        {0, 0},
685};
686
687const struct ppm_name_value mlock2_flags[] = {
688        {"MLOCK_ONFAULT", PPM_MLOCK_ONFAULT},
689        {0, 0},
690};
691
692const struct ppm_name_value fsconfig_cmds[] = {
693        {"FSCONFIG_SET_FLAG", PPM_FSCONFIG_SET_FLAG},
694        {"FSCONFIG_SET_STRING", PPM_FSCONFIG_SET_STRING},
695        {"FSCONFIG_SET_BINARY", PPM_FSCONFIG_SET_BINARY},
696        {"FSCONFIG_SET_PATH", PPM_FSCONFIG_SET_PATH},
697        {"FSCONFIG_SET_PATH_EMPTY", PPM_FSCONFIG_SET_PATH_EMPTY},
698        {"FSCONFIG_SET_FD", PPM_FSCONFIG_SET_FD},
699        {"FSCONFIG_CMD_CREATE", PPM_FSCONFIG_CMD_CREATE},
700        {"FSCONFIG_CMD_RECONFIGURE", PPM_FSCONFIG_CMD_RECONFIGURE},
701        {0, 0},
702};
703
704const struct ppm_name_value epoll_create1_flags[] = {
705        {"EPOLL_CLOEXEC", PPM_EPOLL_CLOEXEC},
706        {0, 0},
707};
708
709const struct ppm_name_value prctl_options[] = {
710        {"PR_GET_DUMPABLE", PPM_PR_GET_DUMPABLE},
711        {"PR_SET_DUMPABLE", PPM_PR_SET_DUMPABLE},
712        {"PR_GET_KEEPCAPS", PPM_PR_GET_KEEPCAPS},
713        {"PR_SET_KEEPCAPS", PPM_PR_SET_KEEPCAPS},
714        {"PR_SET_NAME", PPM_PR_SET_NAME},
715        {"PR_GET_NAME", PPM_PR_GET_NAME},
716        {"PR_GET_SECCOMP", PPM_PR_GET_SECCOMP},
717        {"PR_SET_SECCOMP", PPM_PR_SET_SECCOMP},
718        {"PR_CAPBSET_READ", PPM_PR_CAPBSET_READ},
719        {"PR_CAPBSET_DROP", PPM_PR_CAPBSET_DROP},
720        {"PR_GET_SECUREBITS", PPM_PR_GET_SECUREBITS},
721        {"PR_SET_SECUREBITS", PPM_PR_SET_SECUREBITS},
722        {"PR_MCE_KILL", PPM_PR_MCE_KILL},
723        {"PR_SET_MM", PPM_PR_SET_MM},
724        {"PR_SET_CHILD_SUBREAPER", PPM_PR_SET_CHILD_SUBREAPER},
725        {"PR_GET_CHILD_SUBREAPER", PPM_PR_GET_CHILD_SUBREAPER},
726        {"PR_SET_NO_NEW_PRIVS", PPM_PR_SET_NO_NEW_PRIVS},
727        {"PR_GET_NO_NEW_PRIVS", PPM_PR_GET_NO_NEW_PRIVS},
728        {"PR_GET_TID_ADDRESS", PPM_PR_GET_TID_ADDRESS},
729        {"PR_SET_THP_DISABLE", PPM_PR_SET_THP_DISABLE},
730        {"PR_GET_THP_DISABLE", PPM_PR_GET_THP_DISABLE},
731        {"PR_CAP_AMBIENT", PPM_PR_CAP_AMBIENT},
732        {0, 0},
733};
734
735const struct ppm_name_value memfd_create_flags[] = {
736        {"MFD_CLOEXEC", PPM_MFD_CLOEXEC},
737        {"MFD_ALLOW_SEALING", PPM_MFD_ALLOW_SEALING},
738        {"MFD_HUGETLB", PPM_MFD_HUGETLB},
739        {0, 0},
740};
741
742const struct ppm_name_value pidfd_open_flags[] = {
743        {"PIDFD_NONBLOCK", PPM_PIDFD_NONBLOCK},
744        {0, 0},
745};
746
747const struct ppm_name_value mknod_mode[] = {
748        {"S_IXOTH", PPM_S_IXOTH},
749        {"S_IWOTH", PPM_S_IWOTH},
750        {"S_IROTH", PPM_S_IROTH},
751        {"S_IXGRP", PPM_S_IXGRP},
752        {"S_IWGRP", PPM_S_IWGRP},
753        {"S_IRGRP", PPM_S_IRGRP},
754        {"S_IXUSR", PPM_S_IXUSR},
755        {"S_IWUSR", PPM_S_IWUSR},
756        {"S_IRUSR", PPM_S_IRUSR},
757        {"S_ISVTX", PPM_S_ISVTX},
758        {"S_ISGID", PPM_S_ISGID},
759        {"S_ISUID", PPM_S_ISUID},
760        {"S_IFREG", PPM_S_IFREG},
761        {"S_IFCHR", PPM_S_IFCHR},
762        {"S_IFBLK", PPM_S_IFBLK},
763        {"S_IFIFO", PPM_S_IFIFO},
764        {"S_IFSOCK", PPM_S_IFSOCK},
765        {0, 0},
766};
767
768const struct ppm_name_value bpf_commands[] = {
769        {"BPF_MAP_CREATE", PPM_BPF_MAP_CREATE},
770        {"BPF_MAP_LOOKUP_ELEM", PPM_BPF_MAP_LOOKUP_ELEM},
771        {"BPF_MAP_UPDATE_ELEM", PPM_BPF_MAP_UPDATE_ELEM},
772        {"BPF_MAP_DELETE_ELEM", PPM_BPF_MAP_DELETE_ELEM},
773        {"BPF_MAP_GET_NEXT_KEY", PPM_BPF_MAP_GET_NEXT_KEY},
774        {"BPF_PROG_LOAD", PPM_BPF_PROG_LOAD},
775        {"BPF_OBJ_PIN", PPM_BPF_OBJ_PIN},
776        {"BPF_OBJ_GET", PPM_BPF_OBJ_GET},
777        {"BPF_PROG_ATTACH", PPM_BPF_PROG_ATTACH},
778        {"BPF_PROG_DETACH", PPM_BPF_PROG_DETACH},
779        {"BPF_PROG_TEST_RUN", PPM_BPF_PROG_TEST_RUN},
780        {"BPF_PROG_RUN", PPM_BPF_PROG_RUN},
781        {"BPF_PROG_GET_NEXT_ID", PPM_BPF_PROG_GET_NEXT_ID},
782        {"BPF_MAP_GET_NEXT_ID", PPM_BPF_MAP_GET_NEXT_ID},
783        {"BPF_PROG_GET_FD_BY_ID", PPM_BPF_PROG_GET_FD_BY_ID},
784        {"BPF_MAP_GET_FD_BY_ID", PPM_BPF_MAP_GET_FD_BY_ID},
785        {"BPF_OBJ_GET_INFO_BY_FD", PPM_BPF_OBJ_GET_INFO_BY_FD},
786        {"BPF_PROG_QUERY", PPM_BPF_PROG_QUERY},
787        {"BPF_RAW_TRACEPOINT_OPEN", PPM_BPF_RAW_TRACEPOINT_OPEN},
788        {"BPF_BTF_LOAD", PPM_BPF_BTF_LOAD},
789        {"BPF_BTF_GET_FD_BY_ID", PPM_BPF_BTF_GET_FD_BY_ID},
790        {"BPF_TASK_FD_QUERY", PPM_BPF_TASK_FD_QUERY},
791        {"BPF_MAP_LOOKUP_AND_DELETE_ELEM", PPM_BPF_MAP_LOOKUP_AND_DELETE_ELEM},
792        {"BPF_MAP_FREEZE", PPM_BPF_MAP_FREEZE},
793        {"BPF_BTF_GET_NEXT_ID", PPM_BPF_BTF_GET_NEXT_ID},
794        {"BPF_MAP_LOOKUP_BATCH", PPM_BPF_MAP_LOOKUP_BATCH},
795        {"BPF_MAP_LOOKUP_AND_DELETE_BATCH", PPM_BPF_MAP_LOOKUP_AND_DELETE_BATCH},
796        {"BPF_MAP_UPDATE_BATCH", PPM_BPF_MAP_UPDATE_BATCH},
797        {"BPF_MAP_DELETE_BATCH", PPM_BPF_MAP_DELETE_BATCH},
798        {"BPF_LINK_CREATE", PPM_BPF_LINK_CREATE},
799        {"BPF_LINK_UPDATE", PPM_BPF_LINK_UPDATE},
800        {"BPF_LINK_GET_FD_BY_ID", PPM_BPF_LINK_GET_FD_BY_ID},
801        {"BPF_LINK_GET_NEXT_ID", PPM_BPF_LINK_GET_NEXT_ID},
802        {"BPF_ENABLE_STATS", PPM_BPF_ENABLE_STATS},
803        {"BPF_ITER_CREATE", PPM_BPF_ITER_CREATE},
804        {"BPF_LINK_DETACH", PPM_BPF_LINK_DETACH},
805        {"BPF_PROG_BIND_MAP", PPM_BPF_PROG_BIND_MAP},
806        {0, 0},
807};
808
809const struct ppm_name_value delete_module_flags[] = {
810        {"O_NONBLOCK", PPM_DELETE_MODULE_O_NONBLOCK},
811        {"O_TRUNC", PPM_DELETE_MODULE_O_TRUNC},
812        {0, 0},
813};
814
815const struct ppm_name_value finit_module_flags[] = {
816        {"MODULE_INIT_IGNORE_MODVERSIONS", PPM_MODULE_INIT_IGNORE_MODVERSIONS},
817        {"MODULE_INIT_IGNORE_VERMAGIC", PPM_MODULE_INIT_IGNORE_VERMAGIC},
818        {"MODULE_INIT_COMPRESSED_FILE", PPM_MODULE_INIT_COMPRESSED_FILE},
819        {0, 0},
820};
821}