aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/seccomp/mksysnum_linux.pl
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2025-11-05 04:48:05 +0900
committerOphestra <cat@gensokyo.uk>2025-11-05 04:48:05 +0900
commitbecaf8b6d7151971907ff65f338afa038f021c92 (patch)
tree4130439807baa92b11d85ad1199d0f2f5e27f001 /container/seccomp/mksysnum_linux.pl
parent54c0d6bf48fdfade3aaf7741ec3d3cbc302c8b82 (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-xcontainer/seccomp/mksysnum_linux.pl89
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 ")";