From 8ef71e14d511d0b85bc9e419aee4c43147a4eefa Mon Sep 17 00:00:00 2001 From: Ophestra Date: Mon, 30 Jun 2025 20:34:33 +0900 Subject: [PATCH] sandbox/seccomp: emit syscall constants Signed-off-by: Ophestra --- sandbox/seccomp/mksysnum_linux.pl | 23 ++- sandbox/seccomp/syscall_linux_amd64.go | 219 +++++++++++++++++-------- 2 files changed, 166 insertions(+), 76 deletions(-) diff --git a/sandbox/seccomp/mksysnum_linux.pl b/sandbox/seccomp/mksysnum_linux.pl index 0df511c..50b88b6 100755 --- a/sandbox/seccomp/mksysnum_linux.pl +++ b/sandbox/seccomp/mksysnum_linux.pl @@ -19,6 +19,7 @@ var syscallNum = map[string]int{ EOF my $offset = 0; +my $state = -1; sub fmt { my ($name, $num) = @_; @@ -30,13 +31,23 @@ sub fmt { (my $name_upper = $name) =~ y/a-z/A-Z/; $num = $num + $offset; if($num > 302){ # not wired in Go standard library - print " \"$name\": $num,\n"; + if($state < 0){ + print " \"$name\": SYS_$name_upper,\n"; + } + else{ + print " SYS_$name_upper = $num;\n"; + } + } + elsif($state < 0){ + print " \"$name\": SYS_$name_upper,\n"; } else{ - print " \"$name\": SYS_$name_upper,\n"; + return; } } +GENERATE: + my $prev; open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc"; while(){ @@ -63,6 +74,10 @@ while(){ } } -print <