linux_api/
syscall.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
use crate::bindings;

/// Linux x86-64 syscall number.
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
pub struct SyscallNum(u32);

#[allow(non_upper_case_globals)]
impl SyscallNum {
    pub const NR_read: Self = Self::new(bindings::LINUX___NR_read);
    pub const NR_write: Self = Self::new(bindings::LINUX___NR_write);
    pub const NR_open: Self = Self::new(bindings::LINUX___NR_open);
    pub const NR_close: Self = Self::new(bindings::LINUX___NR_close);
    pub const NR_stat: Self = Self::new(bindings::LINUX___NR_stat);
    pub const NR_fstat: Self = Self::new(bindings::LINUX___NR_fstat);
    pub const NR_lstat: Self = Self::new(bindings::LINUX___NR_lstat);
    pub const NR_poll: Self = Self::new(bindings::LINUX___NR_poll);
    pub const NR_lseek: Self = Self::new(bindings::LINUX___NR_lseek);
    pub const NR_mmap: Self = Self::new(bindings::LINUX___NR_mmap);
    pub const NR_mprotect: Self = Self::new(bindings::LINUX___NR_mprotect);
    pub const NR_munmap: Self = Self::new(bindings::LINUX___NR_munmap);
    pub const NR_brk: Self = Self::new(bindings::LINUX___NR_brk);
    pub const NR_rt_sigaction: Self = Self::new(bindings::LINUX___NR_rt_sigaction);
    pub const NR_rt_sigprocmask: Self = Self::new(bindings::LINUX___NR_rt_sigprocmask);
    pub const NR_rt_sigreturn: Self = Self::new(bindings::LINUX___NR_rt_sigreturn);
    pub const NR_ioctl: Self = Self::new(bindings::LINUX___NR_ioctl);
    pub const NR_pread64: Self = Self::new(bindings::LINUX___NR_pread64);
    pub const NR_pwrite64: Self = Self::new(bindings::LINUX___NR_pwrite64);
    pub const NR_readv: Self = Self::new(bindings::LINUX___NR_readv);
    pub const NR_writev: Self = Self::new(bindings::LINUX___NR_writev);
    pub const NR_access: Self = Self::new(bindings::LINUX___NR_access);
    pub const NR_pipe: Self = Self::new(bindings::LINUX___NR_pipe);
    pub const NR_select: Self = Self::new(bindings::LINUX___NR_select);
    pub const NR_sched_yield: Self = Self::new(bindings::LINUX___NR_sched_yield);
    pub const NR_mremap: Self = Self::new(bindings::LINUX___NR_mremap);
    pub const NR_msync: Self = Self::new(bindings::LINUX___NR_msync);
    pub const NR_mincore: Self = Self::new(bindings::LINUX___NR_mincore);
    pub const NR_madvise: Self = Self::new(bindings::LINUX___NR_madvise);
    pub const NR_shmget: Self = Self::new(bindings::LINUX___NR_shmget);
    pub const NR_shmat: Self = Self::new(bindings::LINUX___NR_shmat);
    pub const NR_shmctl: Self = Self::new(bindings::LINUX___NR_shmctl);
    pub const NR_dup: Self = Self::new(bindings::LINUX___NR_dup);
    pub const NR_dup2: Self = Self::new(bindings::LINUX___NR_dup2);
    pub const NR_pause: Self = Self::new(bindings::LINUX___NR_pause);
    pub const NR_nanosleep: Self = Self::new(bindings::LINUX___NR_nanosleep);
    pub const NR_getitimer: Self = Self::new(bindings::LINUX___NR_getitimer);
    pub const NR_alarm: Self = Self::new(bindings::LINUX___NR_alarm);
    pub const NR_setitimer: Self = Self::new(bindings::LINUX___NR_setitimer);
    pub const NR_getpid: Self = Self::new(bindings::LINUX___NR_getpid);
    pub const NR_sendfile: Self = Self::new(bindings::LINUX___NR_sendfile);
    pub const NR_socket: Self = Self::new(bindings::LINUX___NR_socket);
    pub const NR_connect: Self = Self::new(bindings::LINUX___NR_connect);
    pub const NR_accept: Self = Self::new(bindings::LINUX___NR_accept);
    pub const NR_sendto: Self = Self::new(bindings::LINUX___NR_sendto);
    pub const NR_recvfrom: Self = Self::new(bindings::LINUX___NR_recvfrom);
    pub const NR_sendmsg: Self = Self::new(bindings::LINUX___NR_sendmsg);
    pub const NR_recvmsg: Self = Self::new(bindings::LINUX___NR_recvmsg);
    pub const NR_shutdown: Self = Self::new(bindings::LINUX___NR_shutdown);
    pub const NR_bind: Self = Self::new(bindings::LINUX___NR_bind);
    pub const NR_listen: Self = Self::new(bindings::LINUX___NR_listen);
    pub const NR_getsockname: Self = Self::new(bindings::LINUX___NR_getsockname);
    pub const NR_getpeername: Self = Self::new(bindings::LINUX___NR_getpeername);
    pub const NR_socketpair: Self = Self::new(bindings::LINUX___NR_socketpair);
    pub const NR_setsockopt: Self = Self::new(bindings::LINUX___NR_setsockopt);
    pub const NR_getsockopt: Self = Self::new(bindings::LINUX___NR_getsockopt);
    pub const NR_clone: Self = Self::new(bindings::LINUX___NR_clone);
    pub const NR_fork: Self = Self::new(bindings::LINUX___NR_fork);
    pub const NR_vfork: Self = Self::new(bindings::LINUX___NR_vfork);
    pub const NR_execve: Self = Self::new(bindings::LINUX___NR_execve);
    pub const NR_exit: Self = Self::new(bindings::LINUX___NR_exit);
    pub const NR_wait4: Self = Self::new(bindings::LINUX___NR_wait4);
    pub const NR_kill: Self = Self::new(bindings::LINUX___NR_kill);
    pub const NR_uname: Self = Self::new(bindings::LINUX___NR_uname);
    pub const NR_semget: Self = Self::new(bindings::LINUX___NR_semget);
    pub const NR_semop: Self = Self::new(bindings::LINUX___NR_semop);
    pub const NR_semctl: Self = Self::new(bindings::LINUX___NR_semctl);
    pub const NR_shmdt: Self = Self::new(bindings::LINUX___NR_shmdt);
    pub const NR_msgget: Self = Self::new(bindings::LINUX___NR_msgget);
    pub const NR_msgsnd: Self = Self::new(bindings::LINUX___NR_msgsnd);
    pub const NR_msgrcv: Self = Self::new(bindings::LINUX___NR_msgrcv);
    pub const NR_msgctl: Self = Self::new(bindings::LINUX___NR_msgctl);
    pub const NR_fcntl: Self = Self::new(bindings::LINUX___NR_fcntl);
    pub const NR_flock: Self = Self::new(bindings::LINUX___NR_flock);
    pub const NR_fsync: Self = Self::new(bindings::LINUX___NR_fsync);
    pub const NR_fdatasync: Self = Self::new(bindings::LINUX___NR_fdatasync);
    pub const NR_truncate: Self = Self::new(bindings::LINUX___NR_truncate);
    pub const NR_ftruncate: Self = Self::new(bindings::LINUX___NR_ftruncate);
    pub const NR_getdents: Self = Self::new(bindings::LINUX___NR_getdents);
    pub const NR_getcwd: Self = Self::new(bindings::LINUX___NR_getcwd);
    pub const NR_chdir: Self = Self::new(bindings::LINUX___NR_chdir);
    pub const NR_fchdir: Self = Self::new(bindings::LINUX___NR_fchdir);
    pub const NR_rename: Self = Self::new(bindings::LINUX___NR_rename);
    pub const NR_mkdir: Self = Self::new(bindings::LINUX___NR_mkdir);
    pub const NR_rmdir: Self = Self::new(bindings::LINUX___NR_rmdir);
    pub const NR_creat: Self = Self::new(bindings::LINUX___NR_creat);
    pub const NR_link: Self = Self::new(bindings::LINUX___NR_link);
    pub const NR_unlink: Self = Self::new(bindings::LINUX___NR_unlink);
    pub const NR_symlink: Self = Self::new(bindings::LINUX___NR_symlink);
    pub const NR_readlink: Self = Self::new(bindings::LINUX___NR_readlink);
    pub const NR_chmod: Self = Self::new(bindings::LINUX___NR_chmod);
    pub const NR_fchmod: Self = Self::new(bindings::LINUX___NR_fchmod);
    pub const NR_chown: Self = Self::new(bindings::LINUX___NR_chown);
    pub const NR_fchown: Self = Self::new(bindings::LINUX___NR_fchown);
    pub const NR_lchown: Self = Self::new(bindings::LINUX___NR_lchown);
    pub const NR_umask: Self = Self::new(bindings::LINUX___NR_umask);
    pub const NR_gettimeofday: Self = Self::new(bindings::LINUX___NR_gettimeofday);
    pub const NR_getrlimit: Self = Self::new(bindings::LINUX___NR_getrlimit);
    pub const NR_getrusage: Self = Self::new(bindings::LINUX___NR_getrusage);
    pub const NR_sysinfo: Self = Self::new(bindings::LINUX___NR_sysinfo);
    pub const NR_times: Self = Self::new(bindings::LINUX___NR_times);
    pub const NR_ptrace: Self = Self::new(bindings::LINUX___NR_ptrace);
    pub const NR_getuid: Self = Self::new(bindings::LINUX___NR_getuid);
    pub const NR_syslog: Self = Self::new(bindings::LINUX___NR_syslog);
    pub const NR_getgid: Self = Self::new(bindings::LINUX___NR_getgid);
    pub const NR_setuid: Self = Self::new(bindings::LINUX___NR_setuid);
    pub const NR_setgid: Self = Self::new(bindings::LINUX___NR_setgid);
    pub const NR_geteuid: Self = Self::new(bindings::LINUX___NR_geteuid);
    pub const NR_getegid: Self = Self::new(bindings::LINUX___NR_getegid);
    pub const NR_setpgid: Self = Self::new(bindings::LINUX___NR_setpgid);
    pub const NR_getppid: Self = Self::new(bindings::LINUX___NR_getppid);
    pub const NR_getpgrp: Self = Self::new(bindings::LINUX___NR_getpgrp);
    pub const NR_setsid: Self = Self::new(bindings::LINUX___NR_setsid);
    pub const NR_setreuid: Self = Self::new(bindings::LINUX___NR_setreuid);
    pub const NR_setregid: Self = Self::new(bindings::LINUX___NR_setregid);
    pub const NR_getgroups: Self = Self::new(bindings::LINUX___NR_getgroups);
    pub const NR_setgroups: Self = Self::new(bindings::LINUX___NR_setgroups);
    pub const NR_setresuid: Self = Self::new(bindings::LINUX___NR_setresuid);
    pub const NR_getresuid: Self = Self::new(bindings::LINUX___NR_getresuid);
    pub const NR_setresgid: Self = Self::new(bindings::LINUX___NR_setresgid);
    pub const NR_getresgid: Self = Self::new(bindings::LINUX___NR_getresgid);
    pub const NR_getpgid: Self = Self::new(bindings::LINUX___NR_getpgid);
    pub const NR_setfsuid: Self = Self::new(bindings::LINUX___NR_setfsuid);
    pub const NR_setfsgid: Self = Self::new(bindings::LINUX___NR_setfsgid);
    pub const NR_getsid: Self = Self::new(bindings::LINUX___NR_getsid);
    pub const NR_capget: Self = Self::new(bindings::LINUX___NR_capget);
    pub const NR_capset: Self = Self::new(bindings::LINUX___NR_capset);
    pub const NR_rt_sigpending: Self = Self::new(bindings::LINUX___NR_rt_sigpending);
    pub const NR_rt_sigtimedwait: Self = Self::new(bindings::LINUX___NR_rt_sigtimedwait);
    pub const NR_rt_sigqueueinfo: Self = Self::new(bindings::LINUX___NR_rt_sigqueueinfo);
    pub const NR_rt_sigsuspend: Self = Self::new(bindings::LINUX___NR_rt_sigsuspend);
    pub const NR_sigaltstack: Self = Self::new(bindings::LINUX___NR_sigaltstack);
    pub const NR_utime: Self = Self::new(bindings::LINUX___NR_utime);
    pub const NR_mknod: Self = Self::new(bindings::LINUX___NR_mknod);
    pub const NR_uselib: Self = Self::new(bindings::LINUX___NR_uselib);
    pub const NR_personality: Self = Self::new(bindings::LINUX___NR_personality);
    pub const NR_ustat: Self = Self::new(bindings::LINUX___NR_ustat);
    pub const NR_statfs: Self = Self::new(bindings::LINUX___NR_statfs);
    pub const NR_fstatfs: Self = Self::new(bindings::LINUX___NR_fstatfs);
    pub const NR_sysfs: Self = Self::new(bindings::LINUX___NR_sysfs);
    pub const NR_getpriority: Self = Self::new(bindings::LINUX___NR_getpriority);
    pub const NR_setpriority: Self = Self::new(bindings::LINUX___NR_setpriority);
    pub const NR_sched_setparam: Self = Self::new(bindings::LINUX___NR_sched_setparam);
    pub const NR_sched_getparam: Self = Self::new(bindings::LINUX___NR_sched_getparam);
    pub const NR_sched_setscheduler: Self = Self::new(bindings::LINUX___NR_sched_setscheduler);
    pub const NR_sched_getscheduler: Self = Self::new(bindings::LINUX___NR_sched_getscheduler);
    pub const NR_sched_get_priority_max: Self =
        Self::new(bindings::LINUX___NR_sched_get_priority_max);
    pub const NR_sched_get_priority_min: Self =
        Self::new(bindings::LINUX___NR_sched_get_priority_min);
    pub const NR_sched_rr_get_interval: Self =
        Self::new(bindings::LINUX___NR_sched_rr_get_interval);
    pub const NR_mlock: Self = Self::new(bindings::LINUX___NR_mlock);
    pub const NR_munlock: Self = Self::new(bindings::LINUX___NR_munlock);
    pub const NR_mlockall: Self = Self::new(bindings::LINUX___NR_mlockall);
    pub const NR_munlockall: Self = Self::new(bindings::LINUX___NR_munlockall);
    pub const NR_vhangup: Self = Self::new(bindings::LINUX___NR_vhangup);
    pub const NR_modify_ldt: Self = Self::new(bindings::LINUX___NR_modify_ldt);
    pub const NR_pivot_root: Self = Self::new(bindings::LINUX___NR_pivot_root);
    pub const NR__sysctl: Self = Self::new(bindings::LINUX___NR__sysctl);
    pub const NR_prctl: Self = Self::new(bindings::LINUX___NR_prctl);
    pub const NR_arch_prctl: Self = Self::new(bindings::LINUX___NR_arch_prctl);
    pub const NR_adjtimex: Self = Self::new(bindings::LINUX___NR_adjtimex);
    pub const NR_setrlimit: Self = Self::new(bindings::LINUX___NR_setrlimit);
    pub const NR_chroot: Self = Self::new(bindings::LINUX___NR_chroot);
    pub const NR_sync: Self = Self::new(bindings::LINUX___NR_sync);
    pub const NR_acct: Self = Self::new(bindings::LINUX___NR_acct);
    pub const NR_settimeofday: Self = Self::new(bindings::LINUX___NR_settimeofday);
    pub const NR_mount: Self = Self::new(bindings::LINUX___NR_mount);
    pub const NR_umount2: Self = Self::new(bindings::LINUX___NR_umount2);
    pub const NR_swapon: Self = Self::new(bindings::LINUX___NR_swapon);
    pub const NR_swapoff: Self = Self::new(bindings::LINUX___NR_swapoff);
    pub const NR_reboot: Self = Self::new(bindings::LINUX___NR_reboot);
    pub const NR_sethostname: Self = Self::new(bindings::LINUX___NR_sethostname);
    pub const NR_setdomainname: Self = Self::new(bindings::LINUX___NR_setdomainname);
    pub const NR_iopl: Self = Self::new(bindings::LINUX___NR_iopl);
    pub const NR_ioperm: Self = Self::new(bindings::LINUX___NR_ioperm);
    pub const NR_create_module: Self = Self::new(bindings::LINUX___NR_create_module);
    pub const NR_init_module: Self = Self::new(bindings::LINUX___NR_init_module);
    pub const NR_delete_module: Self = Self::new(bindings::LINUX___NR_delete_module);
    pub const NR_get_kernel_syms: Self = Self::new(bindings::LINUX___NR_get_kernel_syms);
    pub const NR_query_module: Self = Self::new(bindings::LINUX___NR_query_module);
    pub const NR_quotactl: Self = Self::new(bindings::LINUX___NR_quotactl);
    pub const NR_nfsservctl: Self = Self::new(bindings::LINUX___NR_nfsservctl);
    pub const NR_getpmsg: Self = Self::new(bindings::LINUX___NR_getpmsg);
    pub const NR_putpmsg: Self = Self::new(bindings::LINUX___NR_putpmsg);
    pub const NR_afs_syscall: Self = Self::new(bindings::LINUX___NR_afs_syscall);
    pub const NR_tuxcall: Self = Self::new(bindings::LINUX___NR_tuxcall);
    pub const NR_security: Self = Self::new(bindings::LINUX___NR_security);
    pub const NR_gettid: Self = Self::new(bindings::LINUX___NR_gettid);
    pub const NR_readahead: Self = Self::new(bindings::LINUX___NR_readahead);
    pub const NR_setxattr: Self = Self::new(bindings::LINUX___NR_setxattr);
    pub const NR_lsetxattr: Self = Self::new(bindings::LINUX___NR_lsetxattr);
    pub const NR_fsetxattr: Self = Self::new(bindings::LINUX___NR_fsetxattr);
    pub const NR_getxattr: Self = Self::new(bindings::LINUX___NR_getxattr);
    pub const NR_lgetxattr: Self = Self::new(bindings::LINUX___NR_lgetxattr);
    pub const NR_fgetxattr: Self = Self::new(bindings::LINUX___NR_fgetxattr);
    pub const NR_listxattr: Self = Self::new(bindings::LINUX___NR_listxattr);
    pub const NR_llistxattr: Self = Self::new(bindings::LINUX___NR_llistxattr);
    pub const NR_flistxattr: Self = Self::new(bindings::LINUX___NR_flistxattr);
    pub const NR_removexattr: Self = Self::new(bindings::LINUX___NR_removexattr);
    pub const NR_lremovexattr: Self = Self::new(bindings::LINUX___NR_lremovexattr);
    pub const NR_fremovexattr: Self = Self::new(bindings::LINUX___NR_fremovexattr);
    pub const NR_tkill: Self = Self::new(bindings::LINUX___NR_tkill);
    pub const NR_time: Self = Self::new(bindings::LINUX___NR_time);
    pub const NR_futex: Self = Self::new(bindings::LINUX___NR_futex);
    pub const NR_sched_setaffinity: Self = Self::new(bindings::LINUX___NR_sched_setaffinity);
    pub const NR_sched_getaffinity: Self = Self::new(bindings::LINUX___NR_sched_getaffinity);
    pub const NR_set_thread_area: Self = Self::new(bindings::LINUX___NR_set_thread_area);
    pub const NR_io_setup: Self = Self::new(bindings::LINUX___NR_io_setup);
    pub const NR_io_destroy: Self = Self::new(bindings::LINUX___NR_io_destroy);
    pub const NR_io_getevents: Self = Self::new(bindings::LINUX___NR_io_getevents);
    pub const NR_io_submit: Self = Self::new(bindings::LINUX___NR_io_submit);
    pub const NR_io_cancel: Self = Self::new(bindings::LINUX___NR_io_cancel);
    pub const NR_get_thread_area: Self = Self::new(bindings::LINUX___NR_get_thread_area);
    pub const NR_lookup_dcookie: Self = Self::new(bindings::LINUX___NR_lookup_dcookie);
    pub const NR_epoll_create: Self = Self::new(bindings::LINUX___NR_epoll_create);
    pub const NR_epoll_ctl_old: Self = Self::new(bindings::LINUX___NR_epoll_ctl_old);
    pub const NR_epoll_wait_old: Self = Self::new(bindings::LINUX___NR_epoll_wait_old);
    pub const NR_remap_file_pages: Self = Self::new(bindings::LINUX___NR_remap_file_pages);
    pub const NR_getdents64: Self = Self::new(bindings::LINUX___NR_getdents64);
    pub const NR_set_tid_address: Self = Self::new(bindings::LINUX___NR_set_tid_address);
    pub const NR_restart_syscall: Self = Self::new(bindings::LINUX___NR_restart_syscall);
    pub const NR_semtimedop: Self = Self::new(bindings::LINUX___NR_semtimedop);
    pub const NR_fadvise64: Self = Self::new(bindings::LINUX___NR_fadvise64);
    pub const NR_timer_create: Self = Self::new(bindings::LINUX___NR_timer_create);
    pub const NR_timer_settime: Self = Self::new(bindings::LINUX___NR_timer_settime);
    pub const NR_timer_gettime: Self = Self::new(bindings::LINUX___NR_timer_gettime);
    pub const NR_timer_getoverrun: Self = Self::new(bindings::LINUX___NR_timer_getoverrun);
    pub const NR_timer_delete: Self = Self::new(bindings::LINUX___NR_timer_delete);
    pub const NR_clock_settime: Self = Self::new(bindings::LINUX___NR_clock_settime);
    pub const NR_clock_gettime: Self = Self::new(bindings::LINUX___NR_clock_gettime);
    pub const NR_clock_getres: Self = Self::new(bindings::LINUX___NR_clock_getres);
    pub const NR_clock_nanosleep: Self = Self::new(bindings::LINUX___NR_clock_nanosleep);
    pub const NR_exit_group: Self = Self::new(bindings::LINUX___NR_exit_group);
    pub const NR_epoll_wait: Self = Self::new(bindings::LINUX___NR_epoll_wait);
    pub const NR_epoll_ctl: Self = Self::new(bindings::LINUX___NR_epoll_ctl);
    pub const NR_tgkill: Self = Self::new(bindings::LINUX___NR_tgkill);
    pub const NR_utimes: Self = Self::new(bindings::LINUX___NR_utimes);
    pub const NR_vserver: Self = Self::new(bindings::LINUX___NR_vserver);
    pub const NR_mbind: Self = Self::new(bindings::LINUX___NR_mbind);
    pub const NR_set_mempolicy: Self = Self::new(bindings::LINUX___NR_set_mempolicy);
    pub const NR_get_mempolicy: Self = Self::new(bindings::LINUX___NR_get_mempolicy);
    pub const NR_mq_open: Self = Self::new(bindings::LINUX___NR_mq_open);
    pub const NR_mq_unlink: Self = Self::new(bindings::LINUX___NR_mq_unlink);
    pub const NR_mq_timedsend: Self = Self::new(bindings::LINUX___NR_mq_timedsend);
    pub const NR_mq_timedreceive: Self = Self::new(bindings::LINUX___NR_mq_timedreceive);
    pub const NR_mq_notify: Self = Self::new(bindings::LINUX___NR_mq_notify);
    pub const NR_mq_getsetattr: Self = Self::new(bindings::LINUX___NR_mq_getsetattr);
    pub const NR_kexec_load: Self = Self::new(bindings::LINUX___NR_kexec_load);
    pub const NR_waitid: Self = Self::new(bindings::LINUX___NR_waitid);
    pub const NR_add_key: Self = Self::new(bindings::LINUX___NR_add_key);
    pub const NR_request_key: Self = Self::new(bindings::LINUX___NR_request_key);
    pub const NR_keyctl: Self = Self::new(bindings::LINUX___NR_keyctl);
    pub const NR_ioprio_set: Self = Self::new(bindings::LINUX___NR_ioprio_set);
    pub const NR_ioprio_get: Self = Self::new(bindings::LINUX___NR_ioprio_get);
    pub const NR_inotify_init: Self = Self::new(bindings::LINUX___NR_inotify_init);
    pub const NR_inotify_add_watch: Self = Self::new(bindings::LINUX___NR_inotify_add_watch);
    pub const NR_inotify_rm_watch: Self = Self::new(bindings::LINUX___NR_inotify_rm_watch);
    pub const NR_migrate_pages: Self = Self::new(bindings::LINUX___NR_migrate_pages);
    pub const NR_openat: Self = Self::new(bindings::LINUX___NR_openat);
    pub const NR_mkdirat: Self = Self::new(bindings::LINUX___NR_mkdirat);
    pub const NR_mknodat: Self = Self::new(bindings::LINUX___NR_mknodat);
    pub const NR_fchownat: Self = Self::new(bindings::LINUX___NR_fchownat);
    pub const NR_futimesat: Self = Self::new(bindings::LINUX___NR_futimesat);
    pub const NR_newfstatat: Self = Self::new(bindings::LINUX___NR_newfstatat);
    pub const NR_unlinkat: Self = Self::new(bindings::LINUX___NR_unlinkat);
    pub const NR_renameat: Self = Self::new(bindings::LINUX___NR_renameat);
    pub const NR_linkat: Self = Self::new(bindings::LINUX___NR_linkat);
    pub const NR_symlinkat: Self = Self::new(bindings::LINUX___NR_symlinkat);
    pub const NR_readlinkat: Self = Self::new(bindings::LINUX___NR_readlinkat);
    pub const NR_fchmodat: Self = Self::new(bindings::LINUX___NR_fchmodat);
    pub const NR_faccessat: Self = Self::new(bindings::LINUX___NR_faccessat);
    pub const NR_pselect6: Self = Self::new(bindings::LINUX___NR_pselect6);
    pub const NR_ppoll: Self = Self::new(bindings::LINUX___NR_ppoll);
    pub const NR_unshare: Self = Self::new(bindings::LINUX___NR_unshare);
    pub const NR_set_robust_list: Self = Self::new(bindings::LINUX___NR_set_robust_list);
    pub const NR_get_robust_list: Self = Self::new(bindings::LINUX___NR_get_robust_list);
    pub const NR_splice: Self = Self::new(bindings::LINUX___NR_splice);
    pub const NR_tee: Self = Self::new(bindings::LINUX___NR_tee);
    pub const NR_sync_file_range: Self = Self::new(bindings::LINUX___NR_sync_file_range);
    pub const NR_vmsplice: Self = Self::new(bindings::LINUX___NR_vmsplice);
    pub const NR_move_pages: Self = Self::new(bindings::LINUX___NR_move_pages);
    pub const NR_utimensat: Self = Self::new(bindings::LINUX___NR_utimensat);
    pub const NR_epoll_pwait: Self = Self::new(bindings::LINUX___NR_epoll_pwait);
    pub const NR_signalfd: Self = Self::new(bindings::LINUX___NR_signalfd);
    pub const NR_timerfd_create: Self = Self::new(bindings::LINUX___NR_timerfd_create);
    pub const NR_eventfd: Self = Self::new(bindings::LINUX___NR_eventfd);
    pub const NR_fallocate: Self = Self::new(bindings::LINUX___NR_fallocate);
    pub const NR_timerfd_settime: Self = Self::new(bindings::LINUX___NR_timerfd_settime);
    pub const NR_timerfd_gettime: Self = Self::new(bindings::LINUX___NR_timerfd_gettime);
    pub const NR_accept4: Self = Self::new(bindings::LINUX___NR_accept4);
    pub const NR_signalfd4: Self = Self::new(bindings::LINUX___NR_signalfd4);
    pub const NR_eventfd2: Self = Self::new(bindings::LINUX___NR_eventfd2);
    pub const NR_epoll_create1: Self = Self::new(bindings::LINUX___NR_epoll_create1);
    pub const NR_dup3: Self = Self::new(bindings::LINUX___NR_dup3);
    pub const NR_pipe2: Self = Self::new(bindings::LINUX___NR_pipe2);
    pub const NR_inotify_init1: Self = Self::new(bindings::LINUX___NR_inotify_init1);
    pub const NR_preadv: Self = Self::new(bindings::LINUX___NR_preadv);
    pub const NR_pwritev: Self = Self::new(bindings::LINUX___NR_pwritev);
    pub const NR_rt_tgsigqueueinfo: Self = Self::new(bindings::LINUX___NR_rt_tgsigqueueinfo);
    pub const NR_perf_event_open: Self = Self::new(bindings::LINUX___NR_perf_event_open);
    pub const NR_recvmmsg: Self = Self::new(bindings::LINUX___NR_recvmmsg);
    pub const NR_fanotify_init: Self = Self::new(bindings::LINUX___NR_fanotify_init);
    pub const NR_fanotify_mark: Self = Self::new(bindings::LINUX___NR_fanotify_mark);
    pub const NR_prlimit64: Self = Self::new(bindings::LINUX___NR_prlimit64);
    pub const NR_name_to_handle_at: Self = Self::new(bindings::LINUX___NR_name_to_handle_at);
    pub const NR_open_by_handle_at: Self = Self::new(bindings::LINUX___NR_open_by_handle_at);
    pub const NR_clock_adjtime: Self = Self::new(bindings::LINUX___NR_clock_adjtime);
    pub const NR_syncfs: Self = Self::new(bindings::LINUX___NR_syncfs);
    pub const NR_sendmmsg: Self = Self::new(bindings::LINUX___NR_sendmmsg);
    pub const NR_setns: Self = Self::new(bindings::LINUX___NR_setns);
    pub const NR_getcpu: Self = Self::new(bindings::LINUX___NR_getcpu);
    pub const NR_process_vm_readv: Self = Self::new(bindings::LINUX___NR_process_vm_readv);
    pub const NR_process_vm_writev: Self = Self::new(bindings::LINUX___NR_process_vm_writev);
    pub const NR_kcmp: Self = Self::new(bindings::LINUX___NR_kcmp);
    pub const NR_finit_module: Self = Self::new(bindings::LINUX___NR_finit_module);
    pub const NR_sched_setattr: Self = Self::new(bindings::LINUX___NR_sched_setattr);
    pub const NR_sched_getattr: Self = Self::new(bindings::LINUX___NR_sched_getattr);
    pub const NR_renameat2: Self = Self::new(bindings::LINUX___NR_renameat2);
    pub const NR_seccomp: Self = Self::new(bindings::LINUX___NR_seccomp);
    pub const NR_getrandom: Self = Self::new(bindings::LINUX___NR_getrandom);
    pub const NR_memfd_create: Self = Self::new(bindings::LINUX___NR_memfd_create);
    pub const NR_kexec_file_load: Self = Self::new(bindings::LINUX___NR_kexec_file_load);
    pub const NR_bpf: Self = Self::new(bindings::LINUX___NR_bpf);
    pub const NR_execveat: Self = Self::new(bindings::LINUX___NR_execveat);
    pub const NR_userfaultfd: Self = Self::new(bindings::LINUX___NR_userfaultfd);
    pub const NR_membarrier: Self = Self::new(bindings::LINUX___NR_membarrier);
    pub const NR_mlock2: Self = Self::new(bindings::LINUX___NR_mlock2);
    pub const NR_copy_file_range: Self = Self::new(bindings::LINUX___NR_copy_file_range);
    pub const NR_preadv2: Self = Self::new(bindings::LINUX___NR_preadv2);
    pub const NR_pwritev2: Self = Self::new(bindings::LINUX___NR_pwritev2);
    pub const NR_pkey_mprotect: Self = Self::new(bindings::LINUX___NR_pkey_mprotect);
    pub const NR_pkey_alloc: Self = Self::new(bindings::LINUX___NR_pkey_alloc);
    pub const NR_pkey_free: Self = Self::new(bindings::LINUX___NR_pkey_free);
    pub const NR_statx: Self = Self::new(bindings::LINUX___NR_statx);
    pub const NR_io_pgetevents: Self = Self::new(bindings::LINUX___NR_io_pgetevents);
    pub const NR_rseq: Self = Self::new(bindings::LINUX___NR_rseq);
    pub const NR_uretprobe: Self = Self::new(bindings::LINUX___NR_uretprobe);
    pub const NR_pidfd_send_signal: Self = Self::new(bindings::LINUX___NR_pidfd_send_signal);
    pub const NR_io_uring_setup: Self = Self::new(bindings::LINUX___NR_io_uring_setup);
    pub const NR_io_uring_enter: Self = Self::new(bindings::LINUX___NR_io_uring_enter);
    pub const NR_io_uring_register: Self = Self::new(bindings::LINUX___NR_io_uring_register);
    pub const NR_open_tree: Self = Self::new(bindings::LINUX___NR_open_tree);
    pub const NR_move_mount: Self = Self::new(bindings::LINUX___NR_move_mount);
    pub const NR_fsopen: Self = Self::new(bindings::LINUX___NR_fsopen);
    pub const NR_fsconfig: Self = Self::new(bindings::LINUX___NR_fsconfig);
    pub const NR_fsmount: Self = Self::new(bindings::LINUX___NR_fsmount);
    pub const NR_fspick: Self = Self::new(bindings::LINUX___NR_fspick);
    pub const NR_pidfd_open: Self = Self::new(bindings::LINUX___NR_pidfd_open);
    pub const NR_clone3: Self = Self::new(bindings::LINUX___NR_clone3);
    pub const NR_close_range: Self = Self::new(bindings::LINUX___NR_close_range);
    pub const NR_openat2: Self = Self::new(bindings::LINUX___NR_openat2);
    pub const NR_pidfd_getfd: Self = Self::new(bindings::LINUX___NR_pidfd_getfd);
    pub const NR_faccessat2: Self = Self::new(bindings::LINUX___NR_faccessat2);
    pub const NR_process_madvise: Self = Self::new(bindings::LINUX___NR_process_madvise);
    pub const NR_epoll_pwait2: Self = Self::new(bindings::LINUX___NR_epoll_pwait2);
    pub const NR_mount_setattr: Self = Self::new(bindings::LINUX___NR_mount_setattr);
    pub const NR_quotactl_fd: Self = Self::new(bindings::LINUX___NR_quotactl_fd);
    pub const NR_landlock_create_ruleset: Self =
        Self::new(bindings::LINUX___NR_landlock_create_ruleset);
    pub const NR_landlock_add_rule: Self = Self::new(bindings::LINUX___NR_landlock_add_rule);
    pub const NR_landlock_restrict_self: Self =
        Self::new(bindings::LINUX___NR_landlock_restrict_self);
    pub const NR_memfd_secret: Self = Self::new(bindings::LINUX___NR_memfd_secret);
    pub const NR_process_mrelease: Self = Self::new(bindings::LINUX___NR_process_mrelease);
    pub const NR_futex_waitv: Self = Self::new(bindings::LINUX___NR_futex_waitv);
    pub const NR_set_mempolicy_home_node: Self =
        Self::new(bindings::LINUX___NR_set_mempolicy_home_node);
    pub const NR_cachestat: Self = Self::new(bindings::LINUX___NR_cachestat);
    pub const NR_fchmodat2: Self = Self::new(bindings::LINUX___NR_fchmodat2);
    pub const NR_map_shadow_stack: Self = Self::new(bindings::LINUX___NR_map_shadow_stack);
    pub const NR_futex_wake: Self = Self::new(bindings::LINUX___NR_futex_wake);
    pub const NR_futex_wait: Self = Self::new(bindings::LINUX___NR_futex_wait);
    pub const NR_futex_requeue: Self = Self::new(bindings::LINUX___NR_futex_requeue);
    pub const NR_statmount: Self = Self::new(bindings::LINUX___NR_statmount);
    pub const NR_listmount: Self = Self::new(bindings::LINUX___NR_listmount);
    pub const NR_lsm_get_self_attr: Self = Self::new(bindings::LINUX___NR_lsm_get_self_attr);
    pub const NR_lsm_set_self_attr: Self = Self::new(bindings::LINUX___NR_lsm_set_self_attr);
    pub const NR_lsm_list_modules: Self = Self::new(bindings::LINUX___NR_lsm_list_modules);
    pub const NR_mseal: Self = Self::new(bindings::LINUX___NR_mseal);
    // NOTE: add new entries to `to_str` below

    pub const fn new(val: u32) -> Self {
        Self(val)
    }

    pub const fn val(&self) -> u32 {
        self.0
    }

    pub const fn to_str(&self) -> Option<&'static str> {
        Some(match *self {
            Self::NR_read => "read",
            Self::NR_write => "write",
            Self::NR_open => "open",
            Self::NR_close => "close",
            Self::NR_stat => "stat",
            Self::NR_fstat => "fstat",
            Self::NR_lstat => "lstat",
            Self::NR_poll => "poll",
            Self::NR_lseek => "lseek",
            Self::NR_mmap => "mmap",
            Self::NR_mprotect => "mprotect",
            Self::NR_munmap => "munmap",
            Self::NR_brk => "brk",
            Self::NR_rt_sigaction => "rt_sigaction",
            Self::NR_rt_sigprocmask => "rt_sigprocmask",
            Self::NR_rt_sigreturn => "rt_sigreturn",
            Self::NR_ioctl => "ioctl",
            Self::NR_pread64 => "pread64",
            Self::NR_pwrite64 => "pwrite64",
            Self::NR_readv => "readv",
            Self::NR_writev => "writev",
            Self::NR_access => "access",
            Self::NR_pipe => "pipe",
            Self::NR_select => "select",
            Self::NR_sched_yield => "sched_yield",
            Self::NR_mremap => "mremap",
            Self::NR_msync => "msync",
            Self::NR_mincore => "mincore",
            Self::NR_madvise => "madvise",
            Self::NR_shmget => "shmget",
            Self::NR_shmat => "shmat",
            Self::NR_shmctl => "shmctl",
            Self::NR_dup => "dup",
            Self::NR_dup2 => "dup2",
            Self::NR_pause => "pause",
            Self::NR_nanosleep => "nanosleep",
            Self::NR_getitimer => "getitimer",
            Self::NR_alarm => "alarm",
            Self::NR_setitimer => "setitimer",
            Self::NR_getpid => "getpid",
            Self::NR_sendfile => "sendfile",
            Self::NR_socket => "socket",
            Self::NR_connect => "connect",
            Self::NR_accept => "accept",
            Self::NR_sendto => "sendto",
            Self::NR_recvfrom => "recvfrom",
            Self::NR_sendmsg => "sendmsg",
            Self::NR_recvmsg => "recvmsg",
            Self::NR_shutdown => "shutdown",
            Self::NR_bind => "bind",
            Self::NR_listen => "listen",
            Self::NR_getsockname => "getsockname",
            Self::NR_getpeername => "getpeername",
            Self::NR_socketpair => "socketpair",
            Self::NR_setsockopt => "setsockopt",
            Self::NR_getsockopt => "getsockopt",
            Self::NR_clone => "clone",
            Self::NR_fork => "fork",
            Self::NR_vfork => "vfork",
            Self::NR_execve => "execve",
            Self::NR_exit => "exit",
            Self::NR_wait4 => "wait4",
            Self::NR_kill => "kill",
            Self::NR_uname => "uname",
            Self::NR_semget => "semget",
            Self::NR_semop => "semop",
            Self::NR_semctl => "semctl",
            Self::NR_shmdt => "shmdt",
            Self::NR_msgget => "msgget",
            Self::NR_msgsnd => "msgsnd",
            Self::NR_msgrcv => "msgrcv",
            Self::NR_msgctl => "msgctl",
            Self::NR_fcntl => "fcntl",
            Self::NR_flock => "flock",
            Self::NR_fsync => "fsync",
            Self::NR_fdatasync => "fdatasync",
            Self::NR_truncate => "truncate",
            Self::NR_ftruncate => "ftruncate",
            Self::NR_getdents => "getdents",
            Self::NR_getcwd => "getcwd",
            Self::NR_chdir => "chdir",
            Self::NR_fchdir => "fchdir",
            Self::NR_rename => "rename",
            Self::NR_mkdir => "mkdir",
            Self::NR_rmdir => "rmdir",
            Self::NR_creat => "creat",
            Self::NR_link => "link",
            Self::NR_unlink => "unlink",
            Self::NR_symlink => "symlink",
            Self::NR_readlink => "readlink",
            Self::NR_chmod => "chmod",
            Self::NR_fchmod => "fchmod",
            Self::NR_chown => "chown",
            Self::NR_fchown => "fchown",
            Self::NR_lchown => "lchown",
            Self::NR_umask => "umask",
            Self::NR_gettimeofday => "gettimeofday",
            Self::NR_getrlimit => "getrlimit",
            Self::NR_getrusage => "getrusage",
            Self::NR_sysinfo => "sysinfo",
            Self::NR_times => "times",
            Self::NR_ptrace => "ptrace",
            Self::NR_getuid => "getuid",
            Self::NR_syslog => "syslog",
            Self::NR_getgid => "getgid",
            Self::NR_setuid => "setuid",
            Self::NR_setgid => "setgid",
            Self::NR_geteuid => "geteuid",
            Self::NR_getegid => "getegid",
            Self::NR_setpgid => "setpgid",
            Self::NR_getppid => "getppid",
            Self::NR_getpgrp => "getpgrp",
            Self::NR_setsid => "setsid",
            Self::NR_setreuid => "setreuid",
            Self::NR_setregid => "setregid",
            Self::NR_getgroups => "getgroups",
            Self::NR_setgroups => "setgroups",
            Self::NR_setresuid => "setresuid",
            Self::NR_getresuid => "getresuid",
            Self::NR_setresgid => "setresgid",
            Self::NR_getresgid => "getresgid",
            Self::NR_getpgid => "getpgid",
            Self::NR_setfsuid => "setfsuid",
            Self::NR_setfsgid => "setfsgid",
            Self::NR_getsid => "getsid",
            Self::NR_capget => "capget",
            Self::NR_capset => "capset",
            Self::NR_rt_sigpending => "rt_sigpending",
            Self::NR_rt_sigtimedwait => "rt_sigtimedwait",
            Self::NR_rt_sigqueueinfo => "rt_sigqueueinfo",
            Self::NR_rt_sigsuspend => "rt_sigsuspend",
            Self::NR_sigaltstack => "sigaltstack",
            Self::NR_utime => "utime",
            Self::NR_mknod => "mknod",
            Self::NR_uselib => "uselib",
            Self::NR_personality => "personality",
            Self::NR_ustat => "ustat",
            Self::NR_statfs => "statfs",
            Self::NR_fstatfs => "fstatfs",
            Self::NR_sysfs => "sysfs",
            Self::NR_getpriority => "getpriority",
            Self::NR_setpriority => "setpriority",
            Self::NR_sched_setparam => "sched_setparam",
            Self::NR_sched_getparam => "sched_getparam",
            Self::NR_sched_setscheduler => "sched_setscheduler",
            Self::NR_sched_getscheduler => "sched_getscheduler",
            Self::NR_sched_get_priority_max => "sched_get_priority_max",
            Self::NR_sched_get_priority_min => "sched_get_priority_min",
            Self::NR_sched_rr_get_interval => "sched_rr_get_interval",
            Self::NR_mlock => "mlock",
            Self::NR_munlock => "munlock",
            Self::NR_mlockall => "mlockall",
            Self::NR_munlockall => "munlockall",
            Self::NR_vhangup => "vhangup",
            Self::NR_modify_ldt => "modify_ldt",
            Self::NR_pivot_root => "pivot_root",
            Self::NR__sysctl => "_sysctl",
            Self::NR_prctl => "prctl",
            Self::NR_arch_prctl => "arch_prctl",
            Self::NR_adjtimex => "adjtimex",
            Self::NR_setrlimit => "setrlimit",
            Self::NR_chroot => "chroot",
            Self::NR_sync => "sync",
            Self::NR_acct => "acct",
            Self::NR_settimeofday => "settimeofday",
            Self::NR_mount => "mount",
            Self::NR_umount2 => "umount2",
            Self::NR_swapon => "swapon",
            Self::NR_swapoff => "swapoff",
            Self::NR_reboot => "reboot",
            Self::NR_sethostname => "sethostname",
            Self::NR_setdomainname => "setdomainname",
            Self::NR_iopl => "iopl",
            Self::NR_ioperm => "ioperm",
            Self::NR_create_module => "create_module",
            Self::NR_init_module => "init_module",
            Self::NR_delete_module => "delete_module",
            Self::NR_get_kernel_syms => "get_kernel_syms",
            Self::NR_query_module => "query_module",
            Self::NR_quotactl => "quotactl",
            Self::NR_nfsservctl => "nfsservctl",
            Self::NR_getpmsg => "getpmsg",
            Self::NR_putpmsg => "putpmsg",
            Self::NR_afs_syscall => "afs_syscall",
            Self::NR_tuxcall => "tuxcall",
            Self::NR_security => "security",
            Self::NR_gettid => "gettid",
            Self::NR_readahead => "readahead",
            Self::NR_setxattr => "setxattr",
            Self::NR_lsetxattr => "lsetxattr",
            Self::NR_fsetxattr => "fsetxattr",
            Self::NR_getxattr => "getxattr",
            Self::NR_lgetxattr => "lgetxattr",
            Self::NR_fgetxattr => "fgetxattr",
            Self::NR_listxattr => "listxattr",
            Self::NR_llistxattr => "llistxattr",
            Self::NR_flistxattr => "flistxattr",
            Self::NR_removexattr => "removexattr",
            Self::NR_lremovexattr => "lremovexattr",
            Self::NR_fremovexattr => "fremovexattr",
            Self::NR_tkill => "tkill",
            Self::NR_time => "time",
            Self::NR_futex => "futex",
            Self::NR_sched_setaffinity => "sched_setaffinity",
            Self::NR_sched_getaffinity => "sched_getaffinity",
            Self::NR_set_thread_area => "set_thread_area",
            Self::NR_io_setup => "io_setup",
            Self::NR_io_destroy => "io_destroy",
            Self::NR_io_getevents => "io_getevents",
            Self::NR_io_submit => "io_submit",
            Self::NR_io_cancel => "io_cancel",
            Self::NR_get_thread_area => "get_thread_area",
            Self::NR_lookup_dcookie => "lookup_dcookie",
            Self::NR_epoll_create => "epoll_create",
            Self::NR_epoll_ctl_old => "epoll_ctl_old",
            Self::NR_epoll_wait_old => "epoll_wait_old",
            Self::NR_remap_file_pages => "remap_file_pages",
            Self::NR_getdents64 => "getdents64",
            Self::NR_set_tid_address => "set_tid_address",
            Self::NR_restart_syscall => "restart_syscall",
            Self::NR_semtimedop => "semtimedop",
            Self::NR_fadvise64 => "fadvise64",
            Self::NR_timer_create => "timer_create",
            Self::NR_timer_settime => "timer_settime",
            Self::NR_timer_gettime => "timer_gettime",
            Self::NR_timer_getoverrun => "timer_getoverrun",
            Self::NR_timer_delete => "timer_delete",
            Self::NR_clock_settime => "clock_settime",
            Self::NR_clock_gettime => "clock_gettime",
            Self::NR_clock_getres => "clock_getres",
            Self::NR_clock_nanosleep => "clock_nanosleep",
            Self::NR_exit_group => "exit_group",
            Self::NR_epoll_wait => "epoll_wait",
            Self::NR_epoll_ctl => "epoll_ctl",
            Self::NR_tgkill => "tgkill",
            Self::NR_utimes => "utimes",
            Self::NR_vserver => "vserver",
            Self::NR_mbind => "mbind",
            Self::NR_set_mempolicy => "set_mempolicy",
            Self::NR_get_mempolicy => "get_mempolicy",
            Self::NR_mq_open => "mq_open",
            Self::NR_mq_unlink => "mq_unlink",
            Self::NR_mq_timedsend => "mq_timedsend",
            Self::NR_mq_timedreceive => "mq_timedreceive",
            Self::NR_mq_notify => "mq_notify",
            Self::NR_mq_getsetattr => "mq_getsetattr",
            Self::NR_kexec_load => "kexec_load",
            Self::NR_waitid => "waitid",
            Self::NR_add_key => "add_key",
            Self::NR_request_key => "request_key",
            Self::NR_keyctl => "keyctl",
            Self::NR_ioprio_set => "ioprio_set",
            Self::NR_ioprio_get => "ioprio_get",
            Self::NR_inotify_init => "inotify_init",
            Self::NR_inotify_add_watch => "inotify_add_watch",
            Self::NR_inotify_rm_watch => "inotify_rm_watch",
            Self::NR_migrate_pages => "migrate_pages",
            Self::NR_openat => "openat",
            Self::NR_mkdirat => "mkdirat",
            Self::NR_mknodat => "mknodat",
            Self::NR_fchownat => "fchownat",
            Self::NR_futimesat => "futimesat",
            Self::NR_newfstatat => "newfstatat",
            Self::NR_unlinkat => "unlinkat",
            Self::NR_renameat => "renameat",
            Self::NR_linkat => "linkat",
            Self::NR_symlinkat => "symlinkat",
            Self::NR_readlinkat => "readlinkat",
            Self::NR_fchmodat => "fchmodat",
            Self::NR_faccessat => "faccessat",
            Self::NR_pselect6 => "pselect6",
            Self::NR_ppoll => "ppoll",
            Self::NR_unshare => "unshare",
            Self::NR_set_robust_list => "set_robust_list",
            Self::NR_get_robust_list => "get_robust_list",
            Self::NR_splice => "splice",
            Self::NR_tee => "tee",
            Self::NR_sync_file_range => "sync_file_range",
            Self::NR_vmsplice => "vmsplice",
            Self::NR_move_pages => "move_pages",
            Self::NR_utimensat => "utimensat",
            Self::NR_epoll_pwait => "epoll_pwait",
            Self::NR_signalfd => "signalfd",
            Self::NR_timerfd_create => "timerfd_create",
            Self::NR_eventfd => "eventfd",
            Self::NR_fallocate => "fallocate",
            Self::NR_timerfd_settime => "timerfd_settime",
            Self::NR_timerfd_gettime => "timerfd_gettime",
            Self::NR_accept4 => "accept4",
            Self::NR_signalfd4 => "signalfd4",
            Self::NR_eventfd2 => "eventfd2",
            Self::NR_epoll_create1 => "epoll_create1",
            Self::NR_dup3 => "dup3",
            Self::NR_pipe2 => "pipe2",
            Self::NR_inotify_init1 => "inotify_init1",
            Self::NR_preadv => "preadv",
            Self::NR_pwritev => "pwritev",
            Self::NR_rt_tgsigqueueinfo => "rt_tgsigqueueinfo",
            Self::NR_perf_event_open => "perf_event_open",
            Self::NR_recvmmsg => "recvmmsg",
            Self::NR_fanotify_init => "fanotify_init",
            Self::NR_fanotify_mark => "fanotify_mark",
            Self::NR_prlimit64 => "prlimit64",
            Self::NR_name_to_handle_at => "name_to_handle_at",
            Self::NR_open_by_handle_at => "open_by_handle_at",
            Self::NR_clock_adjtime => "clock_adjtime",
            Self::NR_syncfs => "syncfs",
            Self::NR_sendmmsg => "sendmmsg",
            Self::NR_setns => "setns",
            Self::NR_getcpu => "getcpu",
            Self::NR_process_vm_readv => "process_vm_readv",
            Self::NR_process_vm_writev => "process_vm_writev",
            Self::NR_kcmp => "kcmp",
            Self::NR_finit_module => "finit_module",
            Self::NR_sched_setattr => "sched_setattr",
            Self::NR_sched_getattr => "sched_getattr",
            Self::NR_renameat2 => "renameat2",
            Self::NR_seccomp => "seccomp",
            Self::NR_getrandom => "getrandom",
            Self::NR_memfd_create => "memfd_create",
            Self::NR_kexec_file_load => "kexec_file_load",
            Self::NR_bpf => "bpf",
            Self::NR_execveat => "execveat",
            Self::NR_userfaultfd => "userfaultfd",
            Self::NR_membarrier => "membarrier",
            Self::NR_mlock2 => "mlock2",
            Self::NR_copy_file_range => "copy_file_range",
            Self::NR_preadv2 => "preadv2",
            Self::NR_pwritev2 => "pwritev2",
            Self::NR_pkey_mprotect => "pkey_mprotect",
            Self::NR_pkey_alloc => "pkey_alloc",
            Self::NR_pkey_free => "pkey_free",
            Self::NR_statx => "statx",
            Self::NR_io_pgetevents => "io_pgetevents",
            Self::NR_rseq => "rseq",
            Self::NR_uretprobe => "uretprobe",
            Self::NR_pidfd_send_signal => "pidfd_send_signal",
            Self::NR_io_uring_setup => "io_uring_setup",
            Self::NR_io_uring_enter => "io_uring_enter",
            Self::NR_io_uring_register => "io_uring_register",
            Self::NR_open_tree => "open_tree",
            Self::NR_move_mount => "move_mount",
            Self::NR_fsopen => "fsopen",
            Self::NR_fsconfig => "fsconfig",
            Self::NR_fsmount => "fsmount",
            Self::NR_fspick => "fspick",
            Self::NR_pidfd_open => "pidfd_open",
            Self::NR_clone3 => "clone3",
            Self::NR_close_range => "close_range",
            Self::NR_openat2 => "openat2",
            Self::NR_pidfd_getfd => "pidfd_getfd",
            Self::NR_faccessat2 => "faccessat2",
            Self::NR_process_madvise => "process_madvise",
            Self::NR_epoll_pwait2 => "epoll_pwait2",
            Self::NR_mount_setattr => "mount_setattr",
            Self::NR_quotactl_fd => "quotactl_fd",
            Self::NR_landlock_create_ruleset => "landlock_create_ruleset",
            Self::NR_landlock_add_rule => "landlock_add_rule",
            Self::NR_landlock_restrict_self => "landlock_restrict_self",
            Self::NR_memfd_secret => "memfd_secret",
            Self::NR_process_mrelease => "process_mrelease",
            Self::NR_futex_waitv => "futex_waitv",
            Self::NR_set_mempolicy_home_node => "set_mempolicy_home_node",
            Self::NR_cachestat => "NR_cachestat",
            Self::NR_fchmodat2 => "NR_fchmodat2",
            Self::NR_map_shadow_stack => "NR_map_shadow_stack",
            Self::NR_futex_wake => "NR_futex_wake",
            Self::NR_futex_wait => "NR_futex_wait",
            Self::NR_futex_requeue => "NR_futex_requeue",
            Self::NR_statmount => "NR_statmount",
            Self::NR_listmount => "NR_listmount",
            Self::NR_lsm_get_self_attr => "NR_lsm_get_self_attr",
            Self::NR_lsm_set_self_attr => "NR_lsm_set_self_attr",
            Self::NR_lsm_list_modules => "NR_lsm_list_modules",
            Self::NR_mseal => "NR_mseal",
            _ => return None,
        })
    }
}

impl core::fmt::Display for SyscallNum {
    fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> {
        match self.to_str() {
            Some(s) => formatter.write_str(s),
            None => write!(formatter, "(unknown syscall {})", self.0),
        }
    }
}

impl core::fmt::Debug for SyscallNum {
    fn fmt(&self, formatter: &mut core::fmt::Formatter<'_>) -> Result<(), core::fmt::Error> {
        match self.to_str() {
            Some(s) => write!(formatter, "SyscallNum::{s}"),
            None => write!(formatter, "SyscallNum::<{}>", self.0),
        }
    }
}

impl From<SyscallNum> for u32 {
    #[inline]
    fn from(val: SyscallNum) -> Self {
        val.0
    }
}

impl From<u32> for SyscallNum {
    #[inline]
    fn from(val: u32) -> Self {
        Self::new(val)
    }
}