aboutsummaryrefslogtreecommitdiffhomepage
path: root/sandbox/seccomp/mksysnum_linux.pl
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/seccomp/mksysnum_linux.pl')
-rwxr-xr-xsandbox/seccomp/mksysnum_linux.pl23
1 files changed, 19 insertions, 4 deletions
diff --git a/sandbox/seccomp/mksysnum_linux.pl b/sandbox/seccomp/mksysnum_linux.pl
index 0df511ca..50b88b62 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(<GCC>){
@@ -63,6 +74,10 @@ while(<GCC>){
}
}
-print <<EOF;
+if($state < 0){
+ $state = $state + 1;
+ print "}\n\nconst (\n";
+ goto GENERATE;
}
-EOF
+
+print ")";