From e6e35dba937599d098fc034eff2686e5ddc409e9 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 26 Oct 2020 10:51:06 +0100 Subject: 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. --- pkg/csource/csource.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'pkg/csource/csource.go') diff --git a/pkg/csource/csource.go b/pkg/csource/csource.go index 488d277e1..49babbf41 100644 --- a/pkg/csource/csource.go +++ b/pkg/csource/csource.go @@ -166,7 +166,7 @@ func (ctx *context) generateSyscallDefines() string { fmt.Fprintf(buf, "#define %v%v %v\n", prefix, name, ctx.calls[name]) fmt.Fprintf(buf, "#endif\n") } - if ctx.target.OS == "linux" && ctx.target.PtrSize == 4 { + if ctx.target.OS == targets.Linux && ctx.target.PtrSize == 4 { // This is a dirty hack. // On 32-bit linux mmap translated to old_mmap syscall which has a different signature. // mmap2 has the right signature. syz-extract translates mmap to mmap2, do the same here. @@ -403,7 +403,7 @@ func (ctx *context) copyinVal(w *bytes.Buffer, addr, size uint64, val string, bf } func (ctx *context) copyout(w *bytes.Buffer, call prog.ExecCall, resCopyout bool) { - if ctx.sysTarget.OS == "fuchsia" { + if ctx.sysTarget.OS == targets.Fuchsia { // On fuchsia we have real system calls that return ZX_OK on success, // and libc calls that are casted to function returning intptr_t, // as the result int -1 is returned as 0x00000000ffffffff rather than full -1. @@ -523,7 +523,7 @@ func (ctx *context) hoistIncludes(result []byte) []byte { sortedBottom = append(sortedBottom, include) } else if strings.Contains(include, "") { sortedBottom = append(sortedBottom, include) - } else if ctx.target.OS == freebsd && strings.Contains(include, "") { + } else if ctx.target.OS == targets.FreeBSD && strings.Contains(include, "") { sortedTop = append(sortedTop, include) } else { sorted = append(sorted, include) -- cgit mrf-deployment