diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-11-05 04:48:05 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-11-05 04:48:05 +0900 |
| commit | becaf8b6d7151971907ff65f338afa038f021c92 (patch) | |
| tree | 4130439807baa92b11d85ad1199d0f2f5e27f001 /container/seccomp/mksysnum_linux.pl | |
| parent | 54c0d6bf48fdfade3aaf7741ec3d3cbc302c8b82 (diff) | |
std: relocate seccomp lookup tables
This should enable resolving NativeRule in hst.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'container/seccomp/mksysnum_linux.pl')
| -rwxr-xr-x | container/seccomp/mksysnum_linux.pl | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/container/seccomp/mksysnum_linux.pl b/container/seccomp/mksysnum_linux.pl deleted file mode 100755 index 2dbd12fd..00000000 --- a/container/seccomp/mksysnum_linux.pl +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env perl -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. - -use strict; -use POSIX (); - -my $command = "mksysnum_linux.pl ". join(' ', @ARGV); -my $uname_arch = (POSIX::uname)[4]; -my %syscall_cutoff_arch = ( - "x86_64" => 302, - "aarch64" => 281, -); - -print <<EOF; -// $command -// Code generated by the command above; DO NOT EDIT. - -package seccomp - -import . "syscall" - -var syscallNum = map[string]int{ -EOF - -my $offset = 0; -my $state = -1; - -sub fmt { - my ($name, $num) = @_; - if($num > 999){ - # ignore deprecated syscalls that are no longer implemented - # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h?id=refs/heads/master#n716 - return; - } - (my $name_upper = $name) =~ y/a-z/A-Z/; - $num = $num + $offset; - if($num > $syscall_cutoff_arch{$uname_arch}){ # not wired in Go standard library - 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{ - return; - } -} - -GENERATE: - -my $prev; -open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc"; -while(<GCC>){ - if(/^#define __NR_Linux\s+([0-9]+)/){ - # mips/mips64: extract offset - $offset = $1; - } - elsif(/^#define __NR_syscalls\s+/) { - # ignore redefinitions of __NR_syscalls - } - elsif(/^#define __NR_(\w+)\s+([0-9]+)/){ - $prev = $2; - fmt($1, $2); - } - elsif(/^#define __NR3264_(\w+)\s+([0-9]+)/){ - $prev = $2; - fmt($1, $2); - } - elsif(/^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)/){ - fmt($1, $prev+$2) - } - elsif(/^#define __NR_(\w+)\s+\(__NR_Linux \+ ([0-9]+)/){ - fmt($1, $2); - } -} - -if($state < 0){ - $state = $state + 1; - print "}\n\nconst (\n"; - goto GENERATE; -} - -print ")"; |
