diff options
| author | Paul Buetow <paul@buetow.org> | 2024-02-19 13:41:10 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-02-19 13:41:10 +0200 |
| commit | 4a21229d5a21030acac1669eebf80740c9bd339b (patch) | |
| tree | f4d428284b0307ab760fbf116ebc441d1540c4a2 | |
| parent | 0084186483d2590b136da7b3c085f1f3514b9ec4 (diff) | |
refactor generated code into its own package
| -rw-r--r-- | Makefile | 15 | ||||
| -rw-r--r-- | internal/generated/Makefile | 10 | ||||
| -rw-r--r-- | internal/generated/generated.go | 2 | ||||
| -rw-r--r-- | internal/generated/tracepoint_list.go (renamed from internal/tracepoints/tracepoint_list.go) | 5 | ||||
| -rw-r--r-- | internal/tracepoints/tracepoints.go | 3 |
5 files changed, 20 insertions, 15 deletions
@@ -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 { |
