aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/host/syscalls_linux.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-10-26 10:51:06 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-10-26 15:44:28 +0100
commite6e35dba937599d098fc034eff2686e5ddc409e9 (patch)
tree802be708d0bc84dee01b9285639690a53f1f6f94 /pkg/host/syscalls_linux.go
parentd46bc75207fea1d7671c1277dd660cf1a4d7847b (diff)
sys/targets: add OS/Arch name consts
We use strings to identify OS/Arch. These strings are duplicated throughout the code base massively. golangci-lint points to possiblity of typos and duplication. We already had to define these names in pkg/csource and disable checking for prog package. A future change triggers such warnings in another package. Add OS/Arch name consts to sys/targets so that they can be used to refer to OS/Arch. Use the consts everywhere.
Diffstat (limited to 'pkg/host/syscalls_linux.go')
-rw-r--r--pkg/host/syscalls_linux.go17
1 files changed, 9 insertions, 8 deletions
diff --git a/pkg/host/syscalls_linux.go b/pkg/host/syscalls_linux.go
index ff41da68b..16cfbfa46 100644
--- a/pkg/host/syscalls_linux.go
+++ b/pkg/host/syscalls_linux.go
@@ -18,6 +18,7 @@ import (
"github.com/google/syzkaller/pkg/osutil"
"github.com/google/syzkaller/prog"
+ "github.com/google/syzkaller/sys/targets"
)
func isSupported(c *prog.Syscall, target *prog.Target, sandbox string) (bool, string) {
@@ -74,17 +75,17 @@ func parseKallsyms(kallsyms []byte, arch string) map[string]bool {
set := make(map[string]bool)
var re *regexp.Regexp
switch arch {
- case "386", "amd64":
+ case targets.I386, targets.AMD64:
re = regexp.MustCompile(` T (__ia32_|__x64_)?sys_([^\n]+)\n`)
- case "arm", "arm64":
+ case targets.ARM, targets.ARM64:
re = regexp.MustCompile(` T (__arm64_)?sys_([^\n]+)\n`)
- case "ppc64le":
+ case targets.PPC64LE:
re = regexp.MustCompile(` T ()?sys_([^\n]+)\n`)
- case "mips64le":
+ case targets.MIPS64LE:
re = regexp.MustCompile(` T sys_(mips_)?([^\n]+)\n`)
- case "s390x":
+ case targets.S390x:
re = regexp.MustCompile(` T (__s390_|__s390x_)?sys_([^\n]+)\n`)
- case "riscv64":
+ case targets.RiscV64:
re = regexp.MustCompile(` T sys_(riscv_)?([^\n]+)\n`)
default:
panic("unsupported arch for kallsyms parsing")
@@ -191,11 +192,11 @@ func isWifiEmulationSupported(c *prog.Syscall, target *prog.Target, sandbox stri
func isSyzKvmSetupCPUSupported(c *prog.Syscall, target *prog.Target, sandbox string) (bool, string) {
switch c.Name {
case "syz_kvm_setup_cpu$x86":
- if runtime.GOARCH == "amd64" || runtime.GOARCH == "386" {
+ if runtime.GOARCH == targets.AMD64 || runtime.GOARCH == targets.I386 {
return true, ""
}
case "syz_kvm_setup_cpu$arm64":
- if runtime.GOARCH == "arm64" {
+ if runtime.GOARCH == targets.ARM64 {
return true, ""
}
}