diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-07-01 00:35:27 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-07-01 00:35:27 +0900 |
| commit | e03d702d088ad78645d1cce448713ef71b12e803 (patch) | |
| tree | d7ccb51bb009a8a22dfc17ebc79b499d25dbe7ac /sandbox/seccomp/syscall.go | |
| parent | 241dc964a6bb2116cd95a78dbbc35f9792dad554 (diff) | |
sandbox/seccomp: implement syscall lookup
This uses the Go map and is verified against libseccomp.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'sandbox/seccomp/syscall.go')
| -rw-r--r-- | sandbox/seccomp/syscall.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/sandbox/seccomp/syscall.go b/sandbox/seccomp/syscall.go new file mode 100644 index 00000000..36a988aa --- /dev/null +++ b/sandbox/seccomp/syscall.go @@ -0,0 +1,28 @@ +package seccomp + +import "iter" + +// Syscalls returns an iterator over all wired syscalls. +func Syscalls() iter.Seq2[string, int] { + return func(yield func(string, int) bool) { + for name, num := range syscallNum { + if !yield(name, num) { + return + } + } + for name, num := range syscallNumExtra { + if !yield(name, num) { + return + } + } + } +} + +// SyscallResolveName resolves a syscall number from its string representation. +func SyscallResolveName(name string) (num int, ok bool) { + if num, ok = syscallNum[name]; ok { + return + } + num, ok = syscallNumExtra[name] + return +} |
