From 21f2569f6feb83b68a25c98c1b20eca5d4e1e6ae Mon Sep 17 00:00:00 2001 From: Joe Richey Date: Tue, 28 Feb 2017 00:49:33 +0000 Subject: [PATCH] unix: update syscall numbers to 4.10 kernel The syscall numbers for Linux were out of date, so with the release of the 4.10 kernel, now seemed like a reasonable time to update them. Note that this change is mostly additive except that it removes some invalid syscalls for arm, and it removes all constants that refer to either the syscall base or total number of syscalls. Previous versions had only removed some of them. The updated syscall numbers were pulled directly from a header build of the 4.10 kernel. This required some minor adjustements to the sysnum generating perl script and is why the comments at the tops of the generated files look slightly different. I could include the script I used to do this, but right now it cannot generate the zerrors and ztypes files. Change-Id: Id94b967eb917f8f87500f818f2e494df9bccf2e0 Reviewed-on: https://go-review.googlesource.com/37570 Reviewed-by: Ian Lance Taylor --- unix/mksysnum_linux.pl | 12 ++++++++++- unix/zsysnum_linux_386.go | 37 ++++++++++++++++++++++++++++++++-- unix/zsysnum_linux_amd64.go | 22 +++++++++++++++++++- unix/zsysnum_linux_arm.go | 35 ++++++++++++++++++-------------- unix/zsysnum_linux_arm64.go | 15 +++++++++++++- unix/zsysnum_linux_mips.go | 25 ++++++++++++++++++----- unix/zsysnum_linux_mips64.go | 9 ++++++++- unix/zsysnum_linux_mips64le.go | 9 ++++++++- unix/zsysnum_linux_mipsle.go | 25 ++++++++++++++++++----- unix/zsysnum_linux_ppc64.go | 11 +++++++++- unix/zsysnum_linux_ppc64le.go | 18 ++++++++++++++++- unix/zsysnum_linux_s390x.go | 5 ++++- unix/zsysnum_linux_sparc64.go | 2 +- 13 files changed, 189 insertions(+), 36 deletions(-) diff --git a/unix/mksysnum_linux.pl b/unix/mksysnum_linux.pl index 52b16139..872ae8c5 100755 --- a/unix/mksysnum_linux.pl +++ b/unix/mksysnum_linux.pl @@ -38,15 +38,22 @@ sub fmt { } my $prev; -open(GCC, "gcc -E -dD $ARGV[0] |") || die "can't run gcc"; +open(GCC, "gcc -E -dD @ARGV |") || die "can't run gcc"; while(){ if(/^#define __NR_Linux\s+([0-9]+)/){ # mips/mips64: extract offset $offset = $1; } + elsif(/^#define __NR(\w*)_SYSCALL_BASE\s+([0-9]+)/){ + # arm: extract offset + $offset = $1; + } elsif(/^#define __NR_syscalls\s+/) { # ignore redefinitions of __NR_syscalls } + elsif(/^#define __NR_(\w*)Linux_syscalls\s+/) { + # mips/mips64: ignore definitions about the number of syscalls + } elsif(/^#define __NR_(\w+)\s+([0-9]+)/){ $prev = $2; fmt($1, $2); @@ -61,6 +68,9 @@ while(){ elsif(/^#define __NR_(\w+)\s+\(__NR_Linux \+ ([0-9]+)/){ fmt($1, $2); } + elsif(/^#define __NR_(\w+)\s+\(__NR_SYSCALL_BASE \+ ([0-9]+)/){ + fmt($1, $2); + } } print <