aboutsummaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/sys/unix/mksysnum_linux.pl')
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_linux.pl12
1 files changed, 11 insertions, 1 deletions
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_linux.pl b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
index 4d4017d..52b1613 100755
--- a/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
+++ b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
@@ -23,6 +23,8 @@ package unix
const(
EOF
+my $offset = 0;
+
sub fmt {
my ($name, $num) = @_;
if($num > 999){
@@ -31,13 +33,18 @@ sub fmt {
return;
}
$name =~ y/a-z/A-Z/;
+ $num = $num + $offset;
print " SYS_$name = $num;\n";
}
my $prev;
open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc";
while(<GCC>){
- if(/^#define __NR_syscalls\s+/) {
+ 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]+)/){
@@ -51,6 +58,9 @@ while(<GCC>){
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);
+ }
}
print <<EOF;