aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/cover/backend/backend.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-12-06 10:08:26 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-12-13 18:56:36 +0100
commit3e671cc5ce6612d8a67495a107df5ff8091113ea (patch)
tree2cd9b52eb5a63d3672ae5276c8456492430d687f /pkg/cover/backend/backend.go
parentbca53db974f570410921f59b8c2c59a3d263cb44 (diff)
pkg/cover: split into ELF-dependent/independent parts
Diffstat (limited to 'pkg/cover/backend/backend.go')
-rw-r--r--pkg/cover/backend/backend.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkg/cover/backend/backend.go b/pkg/cover/backend/backend.go
new file mode 100644
index 000000000..c99e40893
--- /dev/null
+++ b/pkg/cover/backend/backend.go
@@ -0,0 +1,35 @@
+// Copyright 2020 syzkaller project authors. All rights reserved.
+// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+package backend
+
+import (
+ "github.com/google/syzkaller/pkg/symbolizer"
+ "github.com/google/syzkaller/sys/targets"
+)
+
+type Impl struct {
+ Units []*CompileUnit
+ Symbols []*Symbol
+ Frames []symbolizer.Frame
+ Symbolize func(pcs []uint64) ([]symbolizer.Frame, error)
+}
+
+type CompileUnit struct {
+ Name string
+ Path string
+ PCs []uint64
+}
+
+type Symbol struct {
+ Unit *CompileUnit
+ Name string
+ Start uint64
+ End uint64
+ PCs []uint64
+ Symbolized bool
+}
+
+func Make(target *targets.Target, kernelObject, srcDir, buildDir string) (*Impl, error) {
+ return makeELF(target, kernelObject, srcDir, buildDir)
+}