summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-02-19 13:41:10 +0200
committerPaul Buetow <paul@buetow.org>2024-02-19 13:41:10 +0200
commit4a21229d5a21030acac1669eebf80740c9bd339b (patch)
treef4d428284b0307ab760fbf116ebc441d1540c4a2
parent0084186483d2590b136da7b3c085f1f3514b9ec4 (diff)
refactor generated code into its own package
-rw-r--r--Makefile15
-rw-r--r--internal/generated/Makefile10
-rw-r--r--internal/generated/generated.go2
-rw-r--r--internal/generated/tracepoint_list.go (renamed from internal/tracepoints/tracepoint_list.go)5
-rw-r--r--internal/tracepoints/tracepoints.go3
5 files changed, 20 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index 291e6f5..76f2ee1 100644
--- a/Makefile
+++ b/Makefile
@@ -14,19 +14,12 @@ bpfbuild:
make -C ./internal/c redo
cp -v ./internal/c/ioriotng.bpf.o .
-.PHONY: tracepoint_list.go
-tracepoint_list.go:
- # Fetch tracepoint probes from C code and generate list for Go userland code to auto-attach to.
- echo "// Auto-generated from C, don't change manually!" > ./internal/tracepoints/tracepoint_list.go
- echo 'package tracepoints' >> ./internal/tracepoints/tracepoint_list.go
- echo >> ./internal/tracepoints/tracepoint_list.go
- echo 'var tracepointList = []string{' >> ./internal/tracepoints/tracepoint_list.go
- sed -n -E '/^SEC.*sys_(enter|exit)_/ { s/[")]//g; s/.*sys_(.*)/\t"\1",/; p; }' \
- ./internal/c/tracepoints/*.c >> ./internal/tracepoints/tracepoint_list.go
- echo '}' >> ./internal/tracepoints/tracepoint_list.go
+.PHONY: generated
+generated:
+ make -C ./internal/generated
.PHONY: gobuild
-gobuild: tracepoint_list.go
+gobuild: generated
go build -tags netgo -ldflags '-w -extldflags "-static"' -o ioriotng ./cmd/ioriotng/main.go
.PHONY: clean
diff --git a/internal/generated/Makefile b/internal/generated/Makefile
new file mode 100644
index 0000000..dd3c780
--- /dev/null
+++ b/internal/generated/Makefile
@@ -0,0 +1,10 @@
+all: generate
+
+.PHONY: generate
+generate:
+ echo 'package generated' > tracepoint_list.go
+ echo '' >> tracepoint_list.go
+ echo 'var TracepointList = []string{' >> tracepoint_list.go
+ sed -n -E '/^SEC.*sys_(enter|exit)_/ { s/[")]//g; s/.*sys_(.*)/\t"\1",/; p; }' \
+ ../c/tracepoints/*.c >> tracepoint_list.go
+ echo '}' >> tracepoint_list.go
diff --git a/internal/generated/generated.go b/internal/generated/generated.go
new file mode 100644
index 0000000..731aee8
--- /dev/null
+++ b/internal/generated/generated.go
@@ -0,0 +1,2 @@
+// All Go code in this package is auto-generated. Don't change manually!
+package generated
diff --git a/internal/tracepoints/tracepoint_list.go b/internal/generated/tracepoint_list.go
index 3d654b8..f8fbac2 100644
--- a/internal/tracepoints/tracepoint_list.go
+++ b/internal/generated/tracepoint_list.go
@@ -1,7 +1,6 @@
-// Auto-generated from C, don't change manually!
-package tracepoints
+package generated
-var tracepointList = []string{
+var TracepointList = []string{
"enter_close",
"exit_close",
"enter_openat",
diff --git a/internal/tracepoints/tracepoints.go b/internal/tracepoints/tracepoints.go
index 1b6cf56..bf6323f 100644
--- a/internal/tracepoints/tracepoints.go
+++ b/internal/tracepoints/tracepoints.go
@@ -2,12 +2,13 @@ package tracepoints
import (
"fmt"
+ "ioriotng/internal/generated"
bpf "github.com/aquasecurity/libbpfgo"
)
func AttachSyscalls(bpfModule *bpf.Module) error {
- for _, name := range tracepointList {
+ for _, name := range generated.TracepointList {
// Attach to tracepoint
prog, err := bpfModule.GetProgram(fmt.Sprintf("handle_%s", name))
if err != nil {