Skip to content

Commit a1224a8

Browse files
committed
add syscall consts
1 parent 138943a commit a1224a8

File tree

8 files changed

+673
-3
lines changed

8 files changed

+673
-3
lines changed

.rubocop.yml

+3
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ Metrics/LineLength:
2727
Metrics/MethodLength:
2828
Enabled: false
2929

30+
Metrics/PerceivedComplexity:
31+
Enabled: false
32+
3033
Rails:
3134
Enabled: false
3235

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Usage: seccomp-tools dump [exec] [options]
5959
6060
### dump
6161
62-
Dump the seccomp bpf from a execution file.
62+
Dump the seccomp bpf from an execution file.
6363
This work is done by the `ptrace` syscall.
6464
6565
NOTICE: beware of the execution file will be executed.

README.tpl

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ SHELL_OUTPUT_OF(seccomp-tools --help dump)
3535

3636
### dump
3737

38-
Dump the seccomp bpf from a execution file.
38+
Dump the seccomp bpf from an execution file.
3939
This work is done by the `ptrace` syscall.
4040

4141
NOTICE: beware of the execution file will be executed.

lib/seccomp-tools/bpf.rb

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def initialize(raw, line)
1919
end
2020

2121
# Pretty display the disassemble result.
22+
# @return [String]
2223
def disasm
2324
format(' %04d: 0x%02x 0x%02x 0x%02x 0x%08x %s',
2425
line, code, jt, jf, k, decompile)

lib/seccomp-tools/const.rb

+17
Original file line numberDiff line numberDiff line change
@@ -80,5 +80,22 @@ module BPF
8080
txa: 0x80
8181
}.freeze
8282
end
83+
84+
# Define syscall numbers for all architectures.
85+
# Since the list is too long, split it to files in consts/*.rb and load them in this module.
86+
module Syscall
87+
module_function
88+
89+
def const_missing(cons)
90+
load_const(cons) || super
91+
end
92+
93+
def load_const(cons)
94+
arch = cons.to_s.downcase
95+
filename = File.join(__dir__, 'consts', "#{arch}.rb")
96+
return unless File.exist?(filename)
97+
const_set(cons, instance_eval(IO.read(filename)))
98+
end
99+
end
83100
end
84101
end

lib/seccomp-tools/consts/amd64.rb

+305
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,305 @@
1+
{
2+
read: 0,
3+
write: 1,
4+
open: 2,
5+
close: 3,
6+
stat: 4,
7+
fstat: 5,
8+
lstat: 6,
9+
poll: 7,
10+
lseek: 8,
11+
mmap: 9,
12+
mprotect: 10,
13+
munmap: 11,
14+
brk: 12,
15+
rt_sigaction: 13,
16+
rt_sigprocmask: 14,
17+
rt_sigreturn: 15,
18+
ioctl: 16,
19+
pread: 17,
20+
pwrite: 18,
21+
readv: 19,
22+
writev: 20,
23+
access: 21,
24+
pipe: 22,
25+
select: 23,
26+
sched_yield: 24,
27+
mremap: 25,
28+
msync: 26,
29+
mincore: 27,
30+
madvise: 28,
31+
shmget: 29,
32+
shmat: 30,
33+
shmctl: 31,
34+
dup: 32,
35+
dup2: 33,
36+
pause: 34,
37+
nanosleep: 35,
38+
getitimer: 36,
39+
alarm: 37,
40+
setitimer: 38,
41+
getpid: 39,
42+
sendfile: 40,
43+
socket: 41,
44+
connect: 42,
45+
accept: 43,
46+
sendto: 44,
47+
recvfrom: 45,
48+
sendmsg: 46,
49+
recvmsg: 47,
50+
shutdown: 48,
51+
bind: 49,
52+
listen: 50,
53+
getsockname: 51,
54+
getpeername: 52,
55+
socketpair: 53,
56+
setsockopt: 54,
57+
getsockopt: 55,
58+
clone: 56,
59+
fork: 57,
60+
vfork: 58,
61+
execve: 59,
62+
exit: 60,
63+
wait4: 61,
64+
kill: 62,
65+
uname: 63,
66+
semget: 64,
67+
semop: 65,
68+
semctl: 66,
69+
shmdt: 67,
70+
msgget: 68,
71+
msgsnd: 69,
72+
msgrcv: 70,
73+
msgctl: 71,
74+
fcntl: 72,
75+
flock: 73,
76+
fsync: 74,
77+
fdatasync: 75,
78+
truncate: 76,
79+
ftruncate: 77,
80+
getdents: 78,
81+
getcwd: 79,
82+
chdir: 80,
83+
fchdir: 81,
84+
rename: 82,
85+
mkdir: 83,
86+
rmdir: 84,
87+
creat: 85,
88+
link: 86,
89+
unlink: 87,
90+
symlink: 88,
91+
readlink: 89,
92+
chmod: 90,
93+
fchmod: 91,
94+
chown: 92,
95+
fchown: 93,
96+
lchown: 94,
97+
umask: 95,
98+
gettimeofday: 96,
99+
getrlimit: 97,
100+
getrusage: 98,
101+
sysinfo: 99,
102+
times: 100,
103+
ptrace: 101,
104+
getuid: 102,
105+
syslog: 103,
106+
getgid: 104,
107+
setuid: 105,
108+
setgid: 106,
109+
geteuid: 107,
110+
getegid: 108,
111+
setpgid: 109,
112+
getppid: 110,
113+
getpgrp: 111,
114+
setsid: 112,
115+
setreuid: 113,
116+
setregid: 114,
117+
getgroups: 115,
118+
setgroups: 116,
119+
setresuid: 117,
120+
getresuid: 118,
121+
setresgid: 119,
122+
getresgid: 120,
123+
getpgid: 121,
124+
setfsuid: 122,
125+
setfsgid: 123,
126+
getsid: 124,
127+
capget: 125,
128+
capset: 126,
129+
rt_sigpending: 127,
130+
rt_sigtimedwait: 128,
131+
rt_sigqueueinfo: 129,
132+
rt_sigsuspend: 130,
133+
sigaltstack: 131,
134+
utime: 132,
135+
mknod: 133,
136+
uselib: 134,
137+
personality: 135,
138+
ustat: 136,
139+
statfs: 137,
140+
fstatfs: 138,
141+
sysfs: 139,
142+
getpriority: 140,
143+
setpriority: 141,
144+
sched_setparam: 142,
145+
sched_getparam: 143,
146+
sched_setscheduler: 144,
147+
sched_getscheduler: 145,
148+
sched_get_priority_max: 146,
149+
sched_get_priority_min: 147,
150+
sched_rr_get_interval: 148,
151+
mlock: 149,
152+
munlock: 150,
153+
mlockall: 151,
154+
munlockall: 152,
155+
vhangup: 153,
156+
modify_ldt: 154,
157+
pivot_root: 155,
158+
_sysctl: 156,
159+
prctl: 157,
160+
arch_prctl: 158,
161+
adjtimex: 159,
162+
setrlimit: 160,
163+
chroot: 161,
164+
sync: 162,
165+
acct: 163,
166+
settimeofday: 164,
167+
mount: 165,
168+
umount2: 166,
169+
swapon: 167,
170+
swapoff: 168,
171+
reboot: 169,
172+
sethostname: 170,
173+
setdomainname: 171,
174+
iopl: 172,
175+
ioperm: 173,
176+
create_module: 174,
177+
init_module: 175,
178+
delete_module: 176,
179+
get_kernel_syms: 177,
180+
query_module: 178,
181+
quotactl: 179,
182+
nfsservctl: 180,
183+
getpmsg: 181,
184+
putpmsg: 182,
185+
afs_syscall: 183,
186+
tuxcall: 184,
187+
security: 185,
188+
gettid: 186,
189+
readahead: 187,
190+
setxattr: 188,
191+
lsetxattr: 189,
192+
fsetxattr: 190,
193+
getxattr: 191,
194+
lgetxattr: 192,
195+
fgetxattr: 193,
196+
listxattr: 194,
197+
llistxattr: 195,
198+
flistxattr: 196,
199+
removexattr: 197,
200+
lremovexattr: 198,
201+
fremovexattr: 199,
202+
tkill: 200,
203+
time: 201,
204+
futex: 202,
205+
sched_setaffinity: 203,
206+
sched_getaffinity: 204,
207+
set_thread_area: 205,
208+
io_setup: 206,
209+
io_destroy: 207,
210+
io_getevents: 208,
211+
io_submit: 209,
212+
io_cancel: 210,
213+
get_thread_area: 211,
214+
lookup_dcookie: 212,
215+
epoll_create: 213,
216+
epoll_ctl_old: 214,
217+
epoll_wait_old: 215,
218+
remap_file_pages: 216,
219+
getdents64: 217,
220+
set_tid_address: 218,
221+
restart_syscall: 219,
222+
semtimedop: 220,
223+
fadvise64: 221,
224+
timer_create: 222,
225+
timer_settime: 223,
226+
timer_gettime: 224,
227+
timer_getoverrun: 225,
228+
timer_delete: 226,
229+
clock_settime: 227,
230+
clock_gettime: 228,
231+
clock_getres: 229,
232+
clock_nanosleep: 230,
233+
exit_group: 231,
234+
epoll_wait: 232,
235+
epoll_ctl: 233,
236+
tgkill: 234,
237+
utimes: 235,
238+
vserver: 236,
239+
mbind: 237,
240+
set_mempolicy: 238,
241+
get_mempolicy: 239,
242+
mq_open: 240,
243+
mq_unlink: 241,
244+
mq_timedsend: 242,
245+
mq_timedreceive: 243,
246+
mq_notify: 244,
247+
mq_getsetattr: 245,
248+
kexec_load: 246,
249+
waitid: 247,
250+
add_key: 248,
251+
request_key: 249,
252+
keyctl: 250,
253+
ioprio_set: 251,
254+
ioprio_get: 252,
255+
inotify_init: 253,
256+
inotify_add_watch: 254,
257+
inotify_rm_watch: 255,
258+
migrate_pages: 256,
259+
openat: 257,
260+
mkdirat: 258,
261+
mknodat: 259,
262+
fchownat: 260,
263+
futimesat: 261,
264+
newfstatat: 262,
265+
unlinkat: 263,
266+
renameat: 264,
267+
linkat: 265,
268+
symlinkat: 266,
269+
readlinkat: 267,
270+
fchmodat: 268,
271+
faccessat: 269,
272+
pselect6: 270,
273+
ppoll: 271,
274+
unshare: 272,
275+
set_robust_list: 273,
276+
get_robust_list: 274,
277+
splice: 275,
278+
tee: 276,
279+
sync_file_range: 277,
280+
vmsplice: 278,
281+
move_pages: 279,
282+
utimensat: 280,
283+
epoll_pwait: 281,
284+
signalfd: 282,
285+
timerfd: 283,
286+
eventfd: 284,
287+
fallocate: 285,
288+
timerfd_settime: 286,
289+
timerfd_gettime: 287,
290+
accept4: 288,
291+
signalfd4: 289,
292+
eventfd2: 290,
293+
epoll_create1: 291,
294+
dup3: 292,
295+
pipe2: 293,
296+
inotify_init1: 294,
297+
preadv: 295,
298+
pwritev: 296,
299+
rt_tgsigqueueinfo: 297,
300+
perf_event_open: 298,
301+
recvmmsg: 299,
302+
fanotify_init: 300,
303+
fanotify_mark: 301,
304+
prlimit64: 302
305+
}

0 commit comments

Comments
 (0)