aboutsummaryrefslogtreecommitdiffstats
path: root/sys/syz-extract
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 /sys/syz-extract
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 'sys/syz-extract')
-rw-r--r--sys/syz-extract/extract.go24
-rw-r--r--sys/syz-extract/linux.go4
2 files changed, 15 insertions, 13 deletions
diff --git a/sys/syz-extract/extract.go b/sys/syz-extract/extract.go
index 10b8b6541..a1ddaa86c 100644
--- a/sys/syz-extract/extract.go
+++ b/sys/syz-extract/extract.go
@@ -57,15 +57,15 @@ type Extractor interface {
}
var extractors = map[string]Extractor{
- "akaros": new(akaros),
- "linux": new(linux),
- "freebsd": new(freebsd),
- "netbsd": new(netbsd),
- "openbsd": new(openbsd),
- "android": new(linux),
- "fuchsia": new(fuchsia),
- "windows": new(windows),
- "trusty": new(trusty),
+ targets.Akaros: new(akaros),
+ targets.Linux: new(linux),
+ targets.FreeBSD: new(freebsd),
+ targets.NetBSD: new(netbsd),
+ targets.OpenBSD: new(openbsd),
+ "android": new(linux),
+ targets.Fuchsia: new(fuchsia),
+ targets.Windows: new(windows),
+ targets.Trusty: new(trusty),
}
func main() {
@@ -243,7 +243,7 @@ func archFileList(os, arch string, files []string) (string, []string, []string,
android := false
if os == "android" {
android = true
- os = "linux"
+ os = targets.Linux
}
var arches []string
if arch != "" {
@@ -253,7 +253,7 @@ func archFileList(os, arch string, files []string) (string, []string, []string,
arches = append(arches, arch)
}
if android {
- arches = []string{"386", "amd64", "arm", "arm64"}
+ arches = []string{targets.I386, targets.AMD64, targets.ARM, targets.ARM64}
}
sort.Strings(arches)
}
@@ -278,7 +278,7 @@ func archFileList(os, arch string, files []string) (string, []string, []string,
}
for _, f := range matches {
f = filepath.Base(f)
- if manualFiles[f] || os == "linux" && android != androidFiles[f] {
+ if manualFiles[f] || os == targets.Linux && android != androidFiles[f] {
continue
}
files = append(files, f)
diff --git a/sys/syz-extract/linux.go b/sys/syz-extract/linux.go
index 05789ef55..47e5d20e6 100644
--- a/sys/syz-extract/linux.go
+++ b/sys/syz-extract/linux.go
@@ -12,6 +12,7 @@ import (
"github.com/google/syzkaller/pkg/compiler"
"github.com/google/syzkaller/pkg/osutil"
+ "github.com/google/syzkaller/sys/targets"
)
type linux struct{}
@@ -134,7 +135,8 @@ func (*linux) prepareArch(arch *Arch) error {
}
func (*linux) processFile(arch *Arch, info *compiler.ConstInfo) (map[string]uint64, map[string]bool, error) {
- if strings.HasSuffix(info.File, "_kvm.txt") && (arch.target.Arch == "arm" || arch.target.Arch == "riscv64") {
+ if strings.HasSuffix(info.File, "_kvm.txt") &&
+ (arch.target.Arch == targets.ARM || arch.target.Arch == targets.RiscV64) {
// Hack: KVM is not supported on ARM anymore. We may want some more official support
// for marking descriptions arch-specific, but so far this combination is the only
// one. For riscv64, KVM is not supported yet but might be in the future.