From 9c04290738141669bf76cc2d861ffd633c90c73c Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 16 Mar 2021 16:47:30 +0100 Subject: pkg/cover/backend: rename KernelModule to Module We don't have any other modules. Move definition below Impl, KernelModule is not the most important thing. --- pkg/cover/backend/backend.go | 16 ++++++++-------- pkg/cover/backend/elf.go | 22 +++++++++++----------- pkg/cover/backend/gvisor.go | 2 +- pkg/cover/report.go | 4 ++-- 4 files changed, 22 insertions(+), 22 deletions(-) (limited to 'pkg') diff --git a/pkg/cover/backend/backend.go b/pkg/cover/backend/backend.go index 659a37a60..1ccb10755 100644 --- a/pkg/cover/backend/backend.go +++ b/pkg/cover/backend/backend.go @@ -7,12 +7,6 @@ import ( "github.com/google/syzkaller/sys/targets" ) -type KernelModule struct { - Name string - Path string - Addr uint64 -} - type Impl struct { Units []*CompileUnit Symbols []*Symbol @@ -21,6 +15,12 @@ type Impl struct { RestorePC func(pc uint32) uint64 } +type Module struct { + Name string + Path string + Addr uint64 +} + type CompileUnit struct { ObjectUnit Path string @@ -42,7 +42,7 @@ type ObjectUnit struct { } type Frame struct { - Module *KernelModule + Module *Module PC uint64 Name string Path string @@ -59,7 +59,7 @@ type Range struct { const LineEnd = 1 << 30 func Make(target *targets.Target, vm, srcDir, buildDir string, - moduleObj []string, modules []*KernelModule) (*Impl, error) { + moduleObj []string, modules []*Module) (*Impl, error) { if vm == "gvisor" { return makeGvisor(target, srcDir, buildDir, modules) } diff --git a/pkg/cover/backend/elf.go b/pkg/cover/backend/elf.go index 03e209bcb..ddc024f75 100644 --- a/pkg/cover/backend/elf.go +++ b/pkg/cover/backend/elf.go @@ -26,14 +26,14 @@ import ( ) func makeELF(target *targets.Target, srcDir, buildDir string, - moduleObj []string, modules []*KernelModule) (*Impl, error) { + moduleObj []string, modules []*Module) (*Impl, error) { var allCoverPoints [2][]uint64 var allSymbols []*Symbol var allRanges []pcRange var allUnits []*CompileUnit if target.OS == targets.Linux { - getKernelModules(moduleObj, modules) + getModules(moduleObj, modules) } for _, module := range modules { if module.Path == "" { @@ -141,8 +141,8 @@ func makeELF(target *targets.Target, srcDir, buildDir string, return impl, nil } -func getKernelModules(dirs []string, modules []*KernelModule) { - byName := make(map[string]*KernelModule) +func getModules(dirs []string, modules []*Module) { + byName := make(map[string]*Module) for _, mod := range modules { byName[mod.Name] = mod } @@ -311,7 +311,7 @@ func buildSymbols(symbols []*Symbol, ranges []pcRange, coverPoints [2][]uint64) return symbols } -func readSymbols(file *elf.File, module *KernelModule) ([]*Symbol, uint64, uint64, map[uint64]bool, error) { +func readSymbols(file *elf.File, module *Module) ([]*Symbol, uint64, uint64, map[uint64]bool, error) { text := file.Section(".text") if text == nil { return nil, 0, 0, nil, fmt.Errorf("no .text section in the object file") @@ -355,7 +355,7 @@ func readSymbols(file *elf.File, module *KernelModule) ([]*Symbol, uint64, uint6 return symbols, text.Addr, tracePC, traceCmp, nil } -func readTextRanges(file *elf.File, module *KernelModule) ([]pcRange, []*CompileUnit, error) { +func readTextRanges(file *elf.File, module *Module) ([]pcRange, []*CompileUnit, error) { text := file.Section(".text") if text == nil { return nil, nil, fmt.Errorf("no .text section in the object file") @@ -426,10 +426,10 @@ func readTextRanges(file *elf.File, module *KernelModule) ([]pcRange, []*Compile return ranges, units, nil } -func symbolize(target *targets.Target, srcDir, buildDir string, modules []*KernelModule, pcs []uint64) ( +func symbolize(target *targets.Target, srcDir, buildDir string, modules []*Module, pcs []uint64) ( []Frame, error) { - groupPCs := make(map[*KernelModule][]uint64) - smodules := append([]*KernelModule{}, modules...) + groupPCs := make(map[*Module][]uint64) + smodules := append([]*Module{}, modules...) sort.Slice(smodules, func(i, j int) bool { return smodules[i].Addr > smodules[j].Addr }) @@ -463,7 +463,7 @@ func symbolize(target *targets.Target, srcDir, buildDir string, modules []*Kerne return frames, nil } -func symbolizeModule(target *targets.Target, objDir, srcDir, buildDir string, mod *KernelModule, pcs []uint64) ( +func symbolizeModule(target *targets.Target, objDir, srcDir, buildDir string, mod *Module, pcs []uint64) ( []Frame, error) { procs := runtime.GOMAXPROCS(0) / 2 if need := len(pcs) / 1000; procs > need { @@ -590,7 +590,7 @@ func getRelSymbolName(file *elf.File, index uint32) (string, error) { // Currently it is amd64-specific: looks for e8 opcode and correct offset. // Running objdump on the whole object file is too slow. func readCoverPoints(file *elf.File, tracePC uint64, traceCmp map[uint64]bool, - module *KernelModule) ([2][]uint64, error) { + module *Module) ([2][]uint64, error) { var pcs [2][]uint64 const callLen = 5 if module.Name == "" { diff --git a/pkg/cover/backend/gvisor.go b/pkg/cover/backend/gvisor.go index e4170ffb6..22f07a88b 100644 --- a/pkg/cover/backend/gvisor.go +++ b/pkg/cover/backend/gvisor.go @@ -14,7 +14,7 @@ import ( "github.com/google/syzkaller/sys/targets" ) -func makeGvisor(target *targets.Target, srcDir, buildDir string, modules []*KernelModule) (*Impl, error) { +func makeGvisor(target *targets.Target, srcDir, buildDir string, modules []*Module) (*Impl, error) { if len(modules) != 1 { return nil, fmt.Errorf("gvisor coverage does not support modules") } diff --git a/pkg/cover/report.go b/pkg/cover/report.go index feb5069cf..651bc62f2 100644 --- a/pkg/cover/report.go +++ b/pkg/cover/report.go @@ -35,13 +35,13 @@ func MakeReportGenerator(target *targets.Target, vm, objDir, srcDir, buildDir st return nil, fmt.Errorf("kernel obj directory is not specified") } moduleObj = append([]string{objDir}, moduleObj...) - modules := []*backend.KernelModule{ + modules := []*backend.Module{ { Path: filepath.Join(objDir, target.KernelObject), }, } for _, mod := range hostModules { - modules = append(modules, &backend.KernelModule{ + modules = append(modules, &backend.Module{ Name: mod.Name, Addr: mod.Addr, }) -- cgit mrf-deployment